I. Giới thiệu về Đồ án Xây dựng App Chat bằng Flutter NodeJS
Đồ án Xây dựng App Chat bằng Flutter & NodeJS là một dự án học thuật tiêu biểu tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP.HCM. Trong bối cảnh Internet trở thành yếu tố không thể thiếu trong cuộc sống hiện đại, nhu cầu trao đổi thông tin qua ứng dụng chat đã tăng đột biến. Đặc biệt, sau đại dịch, phần mềm chat thời gian thực đóng vai trò quan trọng trong giao tiếp công việc và cá nhân. Đồ án này hướng tới xây dựng một ứng dụng chat Android hoàn chỉnh với các tính năng hiện đại, giúp người dùng trao đổi thông tin một cách hiệu quả và an toàn. Các sinh viên thực hiện đã dành 4 tháng (từ tháng 9 đến tháng 12 năm 2022) để nghiên cứu, phát triển và hoàn thiện sản phẩm này dưới sự hướng dẫn của ThS. Trần Thị Hồng Yến.
1.1. Mục tiêu của Đồ án Chat Flutter NodeJS
Mục tiêu chính của đồ án là giúp sinh viên nắm vững công nghệ Flutter và NodeJS trong phát triển ứng dụng di động. Nhóm tập trung vào việc hiểu sâu về State Management BloC, kiến trúc ứng dụng hiện đại và các dịch vụ backend thời gian thực. Đồng thời, dự án nhằm xây dựng một phần mềm chat chuyên nghiệp với giao diện thân thiện, tính năng đa dạng và hiệu suất cao. Qua đó, sinh viên có thể ứng dụng những kiến thức này vào các dự án thực tế trong tương lai.
1.2. Nhu cầu và bối cảnh phát triển
Sự bùng nổ của smartphone và nền tảng Android tạo cơ hội phát triển ứng dụng mobile chat đa dạng. Các ứng dụng như Facebook Messenger, Telegram và Zalo đã chứng minh tính khả thi của mô hình này. Đồ án này khảo sát thực trạng các ứng dụng chat trên thị trường để xác định yêu cầu chức năng phù hợp, từ đó phát triển một sản phẩm có tính cạnh tranh cao với tính năng chat thời gian thực và trải nghiệm người dùng tốt.
II. Công nghệ và Stack Kỹ thuật sử dụng
Đồ án Xây dựng App Chat sử dụng một stack công nghệ hiện đại gồm Flutter cho phía mobile client và NodeJS cho backend. Flutter được lựa chọn vì khả năng phát triển ứng dụng đa nền tảng hiệu quả, với giao diện Material Design thẩm mỹ cao. Phía backend, NodeJS cung cấp API RESTful nhanh chóng và có khả năng xử lý kết nối thời gian thực tốt. Để quản lý trạng thái ứng dụng, nhóm áp dụng Pattern BloC giúp code dễ bảo trì và mở rộng. Firebase được tích hợp để xử lý tin nhắn real-time, xác thực người dùng và lưu trữ dữ liệu. Bên cạnh đó, MongoDB là cơ sở dữ liệu chính, Swagger được sử dụng cho tài liệu API, và GitHub quản lý source code trong suốt quá trình phát triển.
2.1. Frontend Flutter và Material Design
Flutter là framework cross-platform cho phép phát triển ứng dụng Android từ một codebase duy nhất. Sử dụng Material Design, giao diện ứng dụng chat được tối ưu hóa cho trải nghiệm người dùng tốt nhất. BloC Pattern được áp dụng để quản lý trạng thái ứng dụng một cách hiệu quả, giúp code modular, dễ test và bảo trì. Điều này cho phép nhóm phát triển các tính năng phức tạp như chat thời gian thực và quản lý danh bạ một cách linh hoạt.
2.2. Backend NodeJS Firebase và MongoDB
NodeJS cung cấp runtime JavaScript mạnh mẽ cho phía server, cho phép xây dựng API RESTful hiệu suất cao. Firebase được tích hợp để xử lý gửi tin nhắn thời gian thực, xác thực người dùng an toàn và lưu trữ dữ liệu đám mây. MongoDB đóng vai trò là cơ sở dữ liệu NoSQL linh hoạt, phù hợp với cấu trúc dữ liệu không cố định của ứng dụng chat. Swagger được sử dụng để tài liệu hóa API một cách rõ ràng, giúp dễ dàng bảo trì và mở rộng.
III. Các Tính năng Chính của Ứng dụng Chat
Ứng dụng chat được xây dựng với nhiều tính năng toàn diện để đáp ứng nhu cầu giao tiếp hiện đại. Tính năng xác thực người dùng bao gồm đăng nhập, đăng ký và quên mật khẩu với bảo mật cao. Quản lý hồ sơ người dùng cho phép cập nhật thông tin cá nhân, ảnh đại diện và trạng thái. Tính năng chat thời gian thực là inti của ứng dụng, hỗ trợ gửi tin nhắn tức thời với độ trễ tối thiểu. Quản lý bạn bè cho phép người dùng tìm, thêm và quản lý danh sách liên hệ. Quản lý nhóm chat hỗ trợ tạo và quản lý nhóm trò chuyện đa người. Đặc biệt, tính năng video call cho phép thực hiện cuộc gọi video giữa hai người dùng một cách đơn giản.
3.1. Tính năng Xác thực và Quản lý Tài khoản
Hệ thống xác thực người dùng được xây dựng với bảo mật cao, hỗ trợ đăng nhập bằng tên đăng nhập/email và mật khẩu. Tính năng đăng ký cho phép người dùng mới tạo tài khoản một cách đơn giản. Quên mật khẩu sử dụng email xác minh để đặt lại mật khẩu an toàn. Quản lý hồ sơ cho phép người dùng cập nhật thông tin cá nhân, ảnh đại diện, và trạng thái online. Tất cả dữ liệu được mã hóa trước khi lưu trữ trên MongoDB.
3.2. Chat Thời gian Thực và Quản lý Nhóm
Chat thời gian thực là tính năng cốt lõi, sử dụng WebSocket hoặc Firebase Realtime Database để đồng bộ tin nhắn ngay lập tức. Người dùng có thể gửi tin nhắn text, chia sẻ hình ảnh, và xem trạng thái đã đọc. Quản lý nhóm chat cho phép tạo nhóm, thêm/xóa thành viên, đặt tên nhóm và quản lý quyền hạn. Tính năng video call cho phép thực hiện cuộc gọi video 1-1 với chất lượng tốt, dựa trên WebRTC hoặc dịch vụ của Firebase.
IV. Kết quả Đạt được và Hướng phát triển Tương lai
Sau 4 tháng phát triển, nhóm sinh viên đã thành công hoàn thành đồ án với toàn bộ tính năng chat cơ bản và nâng cao. Ứng dụng Android được xây dựng với giao diện thân thiện, hiệu suất ổn định và trải nghiệm người dùng tốt. Các sinh viên đã nắm vững công nghệ Flutter và NodeJS, hiểu rõ về State Management BloC và kiến trúc ứng dụng hiện đại. Phần mềm chat đáp ứng đầy đủ các yêu cầu về giao diện và chức năng, sẵn sàng mở rộng và phát triển thêm. Dự án này tạo tiền đề vàng cho đồ án 2, nơi có thể bổ sung các tính năng như tìm kiếm tin nhắn, mã hóa end-to-end, hỗ trợ iOS, hoặc phát triển web client.
4.1. Thành tựu và Kết quả Đạt được
Ứng dụng chat hoàn chỉnh đã được phát triển thành công, hỗ trợ Android với tính năng chat thời gian thực, video call 1-1, quản lý bạn bè và quản lý nhóm. Codebase tuân theo best practices với cấu trúc rõ ràng, comment chi tiết, và tài liệu API đầy đủ. Kiểm thử chức năng được thực hiện toàn diện trên các thiết bị Android thực tế. Sinh viên đã nắm vững công nghệ mới, không chỉ về công nghệ Flutter mà còn về quản lý dự án, làm việc nhóm và giải quyết vấn đề thực tế.
4.2. Hướng Phát triển và Mở rộng Tương lai
Đồ án 2 có thể mở rộng với tính năng tìm kiếm tin nhắn nâng cao, mã hóa end-to-end bảo vệ quyền riêng tư, và hỗ trợ iOS để phát triển cross-platform hoàn toàn. Có thể phát triển web client sử dụng React hoặc Vue.js cho người dùng web. Bổ sung tính năng chia sẻ tệp, voice message, emoji và sticker, và dark mode. Tối ưu hóa hiệu suất, độ bảo mật và thêm tính năng quản trị viên để quản lý người dùng và nhóm hiệu quả hơn.