I. Giới thiệu về Đồ án Xây dựng Ứng dụng Chat
Ứng dụng Chat là một giải pháp giao tiếp dựa trên văn bản được thực hiện trực tiếp theo thời gian thực. Đồ án này được thực hiện tại Trường Đại học Công nghệ Thông tin, dưới sự hướng dẫn của ThS. Trần Thị Hồng Yến. Mục tiêu chính là xây dựng một ứng dụng nhắn tin đa chức năng, tối ưu cho các thiết bị Windows và Mac. Ngày nay, chat là một phần không thể thiếu của cuộc sống hiện đại. Từ khi đại dịch Covid, các ứng dụng như Viber, Zalo, Telegram đã kết nối mọi người với nhau, hỗ trợ làm việc từ xa hiệu quả. Nhóm sinh viên thực hiện bao gồm Nguyễn Hữu An Nhiên (19520207) và Vũ Đặng Khương Duy (19520496), với thời gian thực hiện từ tháng 9 đến tháng 12 năm 2022.
1.1. Khái niệm và tầm quan trọng của Chat
Chat là giao tiếp dựa trên văn bản thời gian thực, cho phép người dùng trao đổi thông tin tức thì. Ứng dụng nhắn tin hiện đại đã thay thế phần lớn các hoạt động giao tiếp truyền thống. Tầm quan trọng của ứng dụng chat được thể hiện rõ qua việc hỗ trợ công việc từ xa, kết nối gia đình và cộng đồng, đặc biệt trong bối cảnh chuyển đổi số.
1.2. Mục tiêu và ý nghĩa của Đồ án
Đồ án này nhằm hiểu rõ cấu trúc ReactJS và áp dụng vào thực tế. Mục tiêu là xây dựng ứng dụng chat chuyên nghiệp với đa tính năng, phục vụ công việc và đời sống. Sinh viên sẽ nắm bắt công nghệ ReactJS, NodeJS, NestJS, MongoDB để phát triển ứng dụng chất lượng cao, dễ nâng cấp và chỉnh sửa.
II. Các tính năng chính của Ứng dụng Chat
Ứng dụng Chat được thiết kế với nhiều tính năng nâng cao để đáp ứng nhu cầu giao tiếp đa dạng. Bao gồm nhắn tin P2P (người với người) và nhắn tin nhóm cho phép trao đổi thông tin linh hoạt. Ngoài ra, chia sẻ file, ảnh, video giúp người dùng trao đổi nội dung phong phú. Ứng dụng còn cung cấp thư viện ảnh tích hợp, tìm kiếm hội thoại và tìm kiếm tin nhắn để quản lý thông tin hiệu quả. Tính năng kết bạn mở rộng mạng lưới giao tiếp, còn chỉnh sửa ảnh và quản lý thông tin người dùng tạo trải nghiệm người dùng tối ưu. Toàn bộ hệ thống được thiết kế để đảm bảo tin nhắn luôn được gửi thành công với thứ tự chính xác.
2.1. Các tính năng cơ bản
Nhắn tin P2P cho phép giao tiếp riêng tư giữa hai người. Nhắn tin nhóm hỗ trợ trao đổi với nhiều người cùng lúc. Kết bạn giúp mở rộng danh bạ. Quản lý thông tin người dùng cho phép chỉnh sửa hồ sơ cá nhân. Những tính năng này tạo nền tảng cho ứng dụng nhắn tin chuyên nghiệp.
2.2. Các tính năng nâng cao
Chia sẻ file, ảnh, video mở rộng khả năng giao tiếp. Thư viện ảnh tích hợp lưu trữ nội dung đa phương tiện. Tìm kiếm hội thoại và tìm kiếm tin nhắn giúp tìm lại nội dung cũ. Chỉnh sửa ảnh cung cấp công cụ sáng tạo. Hệ thống thông báo và retry gửi tin nhắn đảm bảo độ tin cậy cao.
III. Công nghệ và Stack sử dụng
Đồ án sử dụng ReactJS cho frontend để xây dựng giao diện người dùng hiện đại, đạp ứng yêu cầu về hiệu suất và khả năng mở rộng. ElectronJS được dùng để tương thích với Windows và Mac một cách seamless. Phía backend, nhóm sử dụng NodeJS cùng NestJS framework để xây dựng các API mạnh mẽ và TypeScript cho kiểm soát kiểu dữ liệu chặt chẽ. Về cơ sở dữ liệu, ứng dụng sử dụng MongoDB cho lưu trữ dữ liệu chính và IndexedDB cho lưu trữ cục bộ. Công nghệ WebSocket được tích hợp để đảm bảo tin nhắn thời gian thực. Toàn bộ stack công nghệ này được lựa chọn để đạt được hiệu suất tối ưu, độ tin cậy cao và khả năng mở rộng trong tương lai.
3.1. Frontend Technologies
ReactJS được phát triển bởi Facebook, cung cấp các component tái sử dụng và quản lý state hiệu quả. ElectronJS cho phép chạy ứng dụng trên Windows và Mac với cùng một codebase. TypeScript nâng cao chất lượng code với type safety. Những công nghệ này tạo nên giao diện ứng dụng chat mượt mà, phản hồi nhanh.
3.2. Backend và Database Technologies
NodeJS cung cấp runtime JavaScript phía server, NestJS framework mạnh cho API development. MongoDB lưu trữ dữ liệu linh hoạt, IndexedDB lưu trữ cục bộ. WebSocket thực hiện giao tiếp hai chiều thời gian thực, đảm bảo tin nhắn được gửi và nhận tức thì.
IV. Kết quả mong đợi và Quy trình triển khai
Kết quả mong đợi của đồ án bao gồm hiểu rõ và áp dụng thành công các công nghệ được sử dụng. Sinh viên sẽ nắm bắt cách sử dụng ReactJS, NodeJS, MongoDB để xây dựng ứng dụng chat chuyên nghiệp. Ứng dụng được thiết kế dễ dàng nâng cấp và chỉnh sửa, đồng thời tin nhắn đảm bảo thứ tự và luôn được gửi thành công. Ứng dụng hoạt động trơn tru với lỗi tối thiểu trong triển khai. Quy trình triển khai được chia thành giai đoạn từ tháng 9 đến tháng 12/2022, bao gồm khảo sát, thiết kế, phát triển, kiểm thử và hoàn thiện. Cuối cùng, nhóm sẽ thực hiện kiểm thử toàn diện để đảm bảo chất lượng trước khi triển khai chính thức.
4.1. Kết quả và Thành quả dự kiến
Sinh viên sẽ thành thạo ReactJS framework và NodeJS backend development. Ứng dụng chat được hoàn thiện với tất cả tính năng chính. Tin nhắn đảm bảo thứ tự và đạo lập gửi thành công. Ứng dụng hoạt động ổn định trên Windows và Mac với hiệu suất tối ưu. Codebase sạch, dễ dàng bảo trì và nâng cấp.
4.2. Quy trình triển khai và Kiểm thử
Quy trình chia thành 4 giai đoạn chính: tìm hiểu công nghệ, phân tích và thiết kế, phát triển, và kiểm thử. Kiểm thử ứng dụng được thực hiện từ tháng 10 đến tháng 12/2022. Nhóm sẽ ghép API, kiểm thử functionality và đảm bảo ứng dụng chạy không lỗi trên các thiết bị thực.