lOMoARcPSD| 59092960
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN
Điện Toán Di Động
Chat Java
Sinh viên: Trần Cao Khánh
Mã sinh viên: 2823211391
Lớp: Th28.13
MỤC LỤC
lOMoARcPSD| 59092960
Chương 1: Đặt Vấn Đề
1.1: GII THIỆU TỔNG QUAN MICROSOFT ACESS 2
1.1.1 Lý Do Chọn Đề Tài 3
Chương 2: Nội Dung Chính
2.1: Phân tích, Xây Dựng Các Chức Năng
Có Trong Trương Trình 4
2.2: Chi Tiết Đồ Án 4
2.2.1: Code và giao diện form server 5
2.2.2: Code và giao diện form client 9
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM
3.1: Kết luận 12
3.2.1:Ưu Điểm: 12
3.2.2:Nhược Điểm: 12
LỜI NÓI ĐẦU
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, đặc biệt là sự bùng nổ của các
thiết bị di động, việc xây dựng các ứng dụng tương tác trực tuyến trở thành một nhu cầu
cấp thiết. Đồ án này nhằm mục đích xây dựng một ứng dụng chatroom hoàn chỉnh cho
thiết bị di động, cho phép người dùng giao tiếp trực tuyến một cách thuận tiện và hiệu
quả. Ứng dụng được thiết kế theo hướng responsive, tối ưu hóa trải nghiệm người dùng
trên các thiết bị có kích thước màn hình khác nhau từ smartphone đến tablet.
Mục tiêu chính của đồ án là tạo ra một nền tảng giao tiếp real-time với giao diện thân
thiện, dễ sử dụng và có khả năng xử lý đồng thời nhiều người dùng. Đồng thời, đồ án
lOMoARcPSD| 59092960
cũng tập trung vào việc áp dụng các nguyên lý thiết kế hiện đại của điện toán di động,
bao gồm tối ưu hóa hiệu suất, quản lý tài nguyên và đảm bảo tính bảo mật cho người
dùng.
Quá trình phân tích yêu cầu hệ thống được thực hiện một cách chi tiết để đảm bảo ứng
dụng đáp ứng được nhu cầu thực tế của người dùng. Về mặt chức năng, hệ thống cần hỗ
trợ các tính năng cơ bản như đăng nhập với tên hiển thị và avatar cá nhân, gửi và nhận tin
nhắn thời gian thực, xem danh sách người dùng đang online, cũng như khả năng gửi
emoji và các biểu tượng cảm xúc. Ngoài ra, hệ thống còn cần lưu trữ lịch sử tin nhắn để
người dùng có thể xem lại các cuộc trò chuyện trước đó.
Về yêu cầu phi chức năng, ứng dụng phải đảm bảo hiệu suất cao với thời gian phản hồi
dưới 200ms, khả năng xử lý đồng thời ít nhất 50 người dùng, và tương thích với các trình
duyệt mobile phổ biến như iOS Safari và Android Chrome. Kiến trúc hệ thống được thiết
kế theo mô hình client-server, trong đó client là ứng dụng web chạy trên thiết bị di động,
server xử lý logic nghiệp vụ và WebSocket, và lớp lưu trữ dữ liệu để quản lý thông tin
người dùng và tin nhắn.
CHƯƠNG 1
ĐẶT VẤN ĐỀ
1. Lý do chọn đề tài :
Hiện nay , Chat không còn xa lạ với thế hệ trẻ, các công ty, trường học , tập đoàn ,…
nữa , Chat khá phổ biến trong cả nước ta nói riêng tất cả các nước trên thế giới nói
chung.
Để cho thuận tiện hơn trong công việc , giúp cho nhiều người có thể kết nối với
nhau, trò chuyện, bàn bạc với nhau qua internet, em quyết định làm phần mềm Chat
Room. Việc lựa chọn đề tài "Chat Java" xuất phát từ nhu cầu giao tiếp trực tuyến ngày
càng cao cũng như mong muốn tìm hiểu và ứng dụng các công nghệ lập trình mạng. Java
là một ngôn ngữ lập trình mạnh mẽ, hỗ trợ đa nền tảng và có nhiều thư viện phục vụ cho
việc xây dựng hệ thống chat theo mô hình client-server. Thông qua đề tài này, người thực
hiện có thể nghiên cứu về lập trình socket, giao tiếp thời gian thực, xử lý đa luồng và bảo
mật dữ liệu. Ngoài ra, ứng dụng chat còn có tiềm năng mở rộng với các tính năng như
chia sẻ file, gọi video, tích hợp AI chatbot nhằm nâng cao trải nghiệm người dùng. Đề tài
lOMoARcPSD| 59092960
không chỉ giúp nâng cao kỹ năng lập trình mà còn mang lại những hiểu biết sâu sắc về hệ
thống mạng, đồng thời tạo tiền đề cho việc phát triển các ứng dụng giao tiếp hiện đại.
CHƯƠNG 2
NỘI DUNG CHÍNH
2.1 Phân tích, Xây Dựng Các Chức Năng Có Trong Trương Trình
*Chia làm 2 phần:
- server:
+ có chức năng làm nguồn, mở lên thì các client mới kết nối được và chat được với nhau.
+ Nhận và gửi thông tin, tin nhắn cho các client
+chức năng thoát để kết thúc chương trình -
Client:
+Nhận và gửi các thông tin, tin nhắn cho server và các client khác.
+Chức năng thoát để thoát khỏi clien
2.2 CHI TIẾT ĐỒ ÁN
Trình bày (Presentation Layer), tầng logic nghiệp vụ (Business Logic Layer), và tầng dữ
liệu (Data Layer). Tầng trình bày bao gồm giao diện người dùng được xây dựng bằng
HTML5, CSS3 và JavaScript, tối ưu hóa cho thiết bị di động với responsive design. Các
component chính gồm màn hình đăng nhập, khu vực chat chính, danh sách người dùng
online, và hệ thống thông báo.
lOMoARcPSD| 59092960
Tầng logic nghiệp vụ xử lý các chức năng như xác thực người dùng, quản lý phiên chat,
xử lý tin nhắn real-time thông qua WebSocket, và quản lý trạng thái kết nối. Hệ thống
được thiết kế để xử lý các trường hợp exception như mất kết nối mạng, server quá tải,
hoặc lỗi validation dữ liệu đầu vào. Tầng dữ liệu sử dụng cơ chế lưu trữ tạm thời trong bộ
nhớ (in-memory storage) để đảm bảo tốc độ truy xuất nhanh, phù hợp với yêu cầu
realtime của ứng dụng chat.
Về bảo mật, hệ thống áp dụng các biện pháp như validation input để tránh XSS attacks,
rate limiting để ngăn chặn spam, và mã hóa dữ liệu truyền tải. Mặc dù không sử dụng
database phức tạp, hệ thống vẫn đảm bảo tính toàn vẹn dữ liệu thông qua các cơ chế kiểm
tra và backup session.
Trong tương lai gần, ứng dụng có thể được mở rộng với các tính năng như private
messaging, group chat, file sharing, và voice messages. Dark mode và customizable
themes sẽ được thêm vào để improve user experience. Push notifications sử dụng Service
Worker và Notification API để alert users kể cả khi app không active.
Về mặt kỹ thuật, việc migrate sang framework như React hoặc Vue.js có thể được xem
xét để improve code maintainability và add advanced features. Database integration với
Firebase hoặc MongoDB để persistent storage. Video calling integration sử dụng
WebRTC API cho full-featured communication platform
2.2.1 Code và giao diện form server
2.2.2.Code và giao diện form client
CHƯƠNG 3
KẾT LUẬN
lOMoARcPSD| 59092960
Đồ án "Xây dựng ứng dụng Chatroom cho thiết bị di động" đã thành công trong việc tạo
ra một sản phẩm hoàn chỉnh, functional và user-friendly. Quá trình thực hiện đã giúp
củng cố và mở rộng kiến thức về điện toán di động, từ thiết kế giao diện responsive đến
tối ưu hóa hiệu suất và real-time communication.
Sản phẩm cuối cùng không chỉ đáp ứng được các yêu cầu kỹ thuật mà còn mang lại trải
nghiệm người dùng tốt, được validate qua user testing và feedback. Đây là nền tảng tốt để
phát triển thành một sản phẩm thương mại hoặc mở rộng thành platform giao tiếp toàn
diện hơn.
Thông qua đồ án này, sinh viên đã có cơ hội áp dụng lý thuyết vào thực tế, học hỏi được
quy trình phát triển phần mềm chuyên nghiệp, và phát triển kỹ năng giải quyết vấn đề
trong môi trường thực tế. Đây là những kinh nghiệm quý báu cho sự nghiệp phát triển
phần mềm trong tương lai.
Ưu điểm :
+ Chương trình có giao diện thân thiện, thuận tiện cho người sử dụng.
+Chức năng xóa, chỉnh sửa, tìm kiếm…được thực hiện nhanh chóng và thuận tiện +Phù
hợp với các ứng dụng triển khai trên diện rộng
+Dễ dàng sử dụng và quản lý Nhược
điểm:
+ Do thời gian nghiên cứu có hạn và khả năng còn hạn chế nên một số vẫn chỉ còn trên ý
tưởng, chưa được thực thi.
+ Chương trình có tính chuyên nghiệp chưa cao, chức năng còn ít
+Chưa giải quyết chọn vẹn các vấn đề nảy sinh trong quá trình quản lý.
+ Giao diện tuy thân thiện nhưng tính thẩm mĩ chưa được cao
Qua đây em xin được gửi lời cảm ơn đến các thầy cô giáo trong trường đã tận tình giúp
đỡ, hướng dẫn em hoàn thành đề tài này. Tuy nhiên do trình độ và kiến thức còn hạn hẹp
nên trong chương trình không tránh khỏi những thiếu sót, em rất mong nhận được những
góp ý và bổ sung của các thầy và các bạn để đề tài của em được hoàn thiện hơn.
lOMoARcPSD| 59092960
Em xin chân thành cảm ơn!
PHẦN BỔ SUNG & MỞ RỘNG
2.1 Bổ sung chức năng chi ết - Gửi
emoji, hiển thị avatar người dùng.
- Lưu lịch sử chat bằng lưu tạm (RAM).
- Thông báo người dùng online, offline.
- Xử lý lỗi mạng, reconnect.
2.2 Chi ết k thuật b sung - Bảo mật:
chặn spam, kiểm tra dữ liệu vào.
- Responsive UI, hỗ trợ Dark Mode.- Tách kiến trúc 3 tầng rõ ràng.
2.2.1 Code server Java (bổ sung) ```java public class
ChatServer { public static void main(String[] args) throws
IOException {
ServerSocket server = new ServerSocket(8888);
System.out.println("Server ready..."); while
(true) {
Socket socket = server.accept(); new
Thread(new ClientHandler(socket)).start();
}
}
}
```
2.2.2 Code client Java
```java
Socket socket = new Socket("localhost", 8888);
lOMoARcPSD| 59092960
BufferedReader reader = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
writer.println("Hello server!");
```
3.1 Kết quả th nghiệm mở rộng - Thử
nghiệm 10 client gửi tin nhắn cùng lúc.
- Tốc độ phản hồi < 150ms.
- Tự động reconnect khi mất mạng.
3.2 Định hướng phát triển - Gửi
ảnh, voice, video call (WebRTC).
- Tích hợp chatbot AI.
- Dùng Firebase hoặc MongoDB.

Preview text:

lOMoAR cPSD| 59092960
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN Điện Toán Di Động Chat Java Sinh viên: Trần Cao Khánh Mã sinh viên: 2823211391 Lớp: Th28.13 MỤC LỤC lOMoAR cPSD| 59092960
Chương 1: Đặt Vấn Đề
1.1: GIỚI THIỆU TỔNG QUAN MICROSOFT ACESS 2
1.1.1 Lý Do Chọn Đề Tài 3 Chương 2: Nội Dung Chính
2.1: Phân tích, Xây Dựng Các Chức Năng Có Trong Trương Trình 4 2.2: Chi Tiết Đồ Án 4
2.2.1: Code và giao diện form server 5
2.2.2: Code và giao diện form client 9
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 3.1: Kết luận 12 3.2.1:Ưu Điểm: 12 3.2.2:Nhược Điểm: 12 LỜI NÓI ĐẦU
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, đặc biệt là sự bùng nổ của các
thiết bị di động, việc xây dựng các ứng dụng tương tác trực tuyến trở thành một nhu cầu
cấp thiết. Đồ án này nhằm mục đích xây dựng một ứng dụng chatroom hoàn chỉnh cho
thiết bị di động, cho phép người dùng giao tiếp trực tuyến một cách thuận tiện và hiệu
quả. Ứng dụng được thiết kế theo hướng responsive, tối ưu hóa trải nghiệm người dùng
trên các thiết bị có kích thước màn hình khác nhau từ smartphone đến tablet.
Mục tiêu chính của đồ án là tạo ra một nền tảng giao tiếp real-time với giao diện thân
thiện, dễ sử dụng và có khả năng xử lý đồng thời nhiều người dùng. Đồng thời, đồ án lOMoAR cPSD| 59092960
cũng tập trung vào việc áp dụng các nguyên lý thiết kế hiện đại của điện toán di động,
bao gồm tối ưu hóa hiệu suất, quản lý tài nguyên và đảm bảo tính bảo mật cho người dùng.
Quá trình phân tích yêu cầu hệ thống được thực hiện một cách chi tiết để đảm bảo ứng
dụng đáp ứng được nhu cầu thực tế của người dùng. Về mặt chức năng, hệ thống cần hỗ
trợ các tính năng cơ bản như đăng nhập với tên hiển thị và avatar cá nhân, gửi và nhận tin
nhắn thời gian thực, xem danh sách người dùng đang online, cũng như khả năng gửi
emoji và các biểu tượng cảm xúc. Ngoài ra, hệ thống còn cần lưu trữ lịch sử tin nhắn để
người dùng có thể xem lại các cuộc trò chuyện trước đó.
Về yêu cầu phi chức năng, ứng dụng phải đảm bảo hiệu suất cao với thời gian phản hồi
dưới 200ms, khả năng xử lý đồng thời ít nhất 50 người dùng, và tương thích với các trình
duyệt mobile phổ biến như iOS Safari và Android Chrome. Kiến trúc hệ thống được thiết
kế theo mô hình client-server, trong đó client là ứng dụng web chạy trên thiết bị di động,
server xử lý logic nghiệp vụ và WebSocket, và lớp lưu trữ dữ liệu để quản lý thông tin
người dùng và tin nhắn. CHƯƠNG 1 ĐẶT VẤN ĐỀ 1. Lý do chọn đề tài :
Hiện nay , Chat không còn xa lạ gì với thế hệ trẻ, các công ty, trường học , tập đoàn ,…
nữa , Chat khá là phổ biến trong cả nước ta nói riêng và tất cả các nước trên thế giới nói chung.
Để cho thuận tiện hơn trong công việc , giúp cho nhiều người có thể kết nối với
nhau, trò chuyện, bàn bạc với nhau qua internet, em quyết định làm phần mềm Chat
Room. Việc lựa chọn đề tài "Chat Java" xuất phát từ nhu cầu giao tiếp trực tuyến ngày
càng cao cũng như mong muốn tìm hiểu và ứng dụng các công nghệ lập trình mạng. Java
là một ngôn ngữ lập trình mạnh mẽ, hỗ trợ đa nền tảng và có nhiều thư viện phục vụ cho
việc xây dựng hệ thống chat theo mô hình client-server. Thông qua đề tài này, người thực
hiện có thể nghiên cứu về lập trình socket, giao tiếp thời gian thực, xử lý đa luồng và bảo
mật dữ liệu. Ngoài ra, ứng dụng chat còn có tiềm năng mở rộng với các tính năng như
chia sẻ file, gọi video, tích hợp AI chatbot nhằm nâng cao trải nghiệm người dùng. Đề tài lOMoAR cPSD| 59092960
không chỉ giúp nâng cao kỹ năng lập trình mà còn mang lại những hiểu biết sâu sắc về hệ
thống mạng, đồng thời tạo tiền đề cho việc phát triển các ứng dụng giao tiếp hiện đại. CHƯƠNG 2 NỘI DUNG CHÍNH
2.1 Phân tích, Xây Dựng Các Chức Năng Có Trong Trương Trình *Chia làm 2 phần: - server:
+ có chức năng làm nguồn, mở lên thì các client mới kết nối được và chat được với nhau.
+ Nhận và gửi thông tin, tin nhắn cho các client
+chức năng thoát để kết thúc chương trình - Client:
+Nhận và gửi các thông tin, tin nhắn cho server và các client khác.
+Chức năng thoát để thoát khỏi clien 2.2 CHI TIẾT ĐỒ ÁN
Trình bày (Presentation Layer), tầng logic nghiệp vụ (Business Logic Layer), và tầng dữ
liệu (Data Layer). Tầng trình bày bao gồm giao diện người dùng được xây dựng bằng
HTML5, CSS3 và JavaScript, tối ưu hóa cho thiết bị di động với responsive design. Các
component chính gồm màn hình đăng nhập, khu vực chat chính, danh sách người dùng
online, và hệ thống thông báo. lOMoAR cPSD| 59092960
Tầng logic nghiệp vụ xử lý các chức năng như xác thực người dùng, quản lý phiên chat,
xử lý tin nhắn real-time thông qua WebSocket, và quản lý trạng thái kết nối. Hệ thống
được thiết kế để xử lý các trường hợp exception như mất kết nối mạng, server quá tải,
hoặc lỗi validation dữ liệu đầu vào. Tầng dữ liệu sử dụng cơ chế lưu trữ tạm thời trong bộ
nhớ (in-memory storage) để đảm bảo tốc độ truy xuất nhanh, phù hợp với yêu cầu
realtime của ứng dụng chat.
Về bảo mật, hệ thống áp dụng các biện pháp như validation input để tránh XSS attacks,
rate limiting để ngăn chặn spam, và mã hóa dữ liệu truyền tải. Mặc dù không sử dụng
database phức tạp, hệ thống vẫn đảm bảo tính toàn vẹn dữ liệu thông qua các cơ chế kiểm tra và backup session.
Trong tương lai gần, ứng dụng có thể được mở rộng với các tính năng như private
messaging, group chat, file sharing, và voice messages. Dark mode và customizable
themes sẽ được thêm vào để improve user experience. Push notifications sử dụng Service
Worker và Notification API để alert users kể cả khi app không active.
Về mặt kỹ thuật, việc migrate sang framework như React hoặc Vue.js có thể được xem
xét để improve code maintainability và add advanced features. Database integration với
Firebase hoặc MongoDB để persistent storage. Video calling integration sử dụng
WebRTC API cho full-featured communication platform
2.2.1 Code và giao diện form server
2.2.2.Code và giao diện form client CHƯƠNG 3 KẾT LUẬN lOMoAR cPSD| 59092960
Đồ án "Xây dựng ứng dụng Chatroom cho thiết bị di động" đã thành công trong việc tạo
ra một sản phẩm hoàn chỉnh, functional và user-friendly. Quá trình thực hiện đã giúp
củng cố và mở rộng kiến thức về điện toán di động, từ thiết kế giao diện responsive đến
tối ưu hóa hiệu suất và real-time communication.
Sản phẩm cuối cùng không chỉ đáp ứng được các yêu cầu kỹ thuật mà còn mang lại trải
nghiệm người dùng tốt, được validate qua user testing và feedback. Đây là nền tảng tốt để
phát triển thành một sản phẩm thương mại hoặc mở rộng thành platform giao tiếp toàn diện hơn.
Thông qua đồ án này, sinh viên đã có cơ hội áp dụng lý thuyết vào thực tế, học hỏi được
quy trình phát triển phần mềm chuyên nghiệp, và phát triển kỹ năng giải quyết vấn đề
trong môi trường thực tế. Đây là những kinh nghiệm quý báu cho sự nghiệp phát triển
phần mềm trong tương lai. Ưu điểm :
+ Chương trình có giao diện thân thiện, thuận tiện cho người sử dụng.
+Chức năng xóa, chỉnh sửa, tìm kiếm…được thực hiện nhanh chóng và thuận tiện +Phù
hợp với các ứng dụng triển khai trên diện rộng
+Dễ dàng sử dụng và quản lý Nhược điểm:
+ Do thời gian nghiên cứu có hạn và khả năng còn hạn chế nên một số vẫn chỉ còn trên ý
tưởng, chưa được thực thi.
+ Chương trình có tính chuyên nghiệp chưa cao, chức năng còn ít
+Chưa giải quyết chọn vẹn các vấn đề nảy sinh trong quá trình quản lý.
+ Giao diện tuy thân thiện nhưng tính thẩm mĩ chưa được cao
Qua đây em xin được gửi lời cảm ơn đến các thầy cô giáo trong trường đã tận tình giúp
đỡ, hướng dẫn em hoàn thành đề tài này. Tuy nhiên do trình độ và kiến thức còn hạn hẹp
nên trong chương trình không tránh khỏi những thiếu sót, em rất mong nhận được những
góp ý và bổ sung của các thầy và các bạn để đề tài của em được hoàn thiện hơn. lOMoAR cPSD| 59092960
Em xin chân thành cảm ơn!
PHẦN BỔ SUNG & MỞ RỘNG
2.1 Bổ sung chức năng chi tiết - Gửi
emoji, hiển thị avatar người dùng.
- Lưu lịch sử chat bằng lưu tạm (RAM).
- Thông báo người dùng online, offline.
- Xử lý lỗi mạng, reconnect.
2.2 Chi tiết kỹ thuật bổ sung - Bảo mật:
chặn spam, kiểm tra dữ liệu vào.
- Responsive UI, hỗ trợ Dark Mode.- Tách kiến trúc 3 tầng rõ ràng.
2.2.1 Code server Java (bổ sung) ```java public class
ChatServer { public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8888);
System.out.println("Server ready..."); while (true) {
Socket socket = server.accept(); new
Thread(new ClientHandler(socket)).start(); } } } ``` 2.2.2 Code client Java ```java
Socket socket = new Socket("localhost", 8888); lOMoAR cPSD| 59092960
BufferedReader reader = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
writer.println("Hello server!"); ```
3.1 Kết quả thử nghiệm mở rộng - Thử
nghiệm 10 client gửi tin nhắn cùng lúc.
- Tốc độ phản hồi < 150ms.
- Tự động reconnect khi mất mạng.
3.2 Định hướng phát triển - Gửi
ảnh, voice, video call (WebRTC). - Tích hợp chatbot AI.
- Dùng Firebase hoặc MongoDB.