🚀 Tính năng chính
Đăng ký/Đăng nhập: Email/password hoặc Google (Firebase).
Quản lý bạn bè: Tìm kiếm, thêm bạn, xem trạng thái online/offline.
Chat realtime: Nhắn tin tức thời, lưu lịch sử, trạng thái đã nhận/đã xem.
Gọi video 1-1: WebRTC, bật/tắt mic/camera, kết thúc cuộc gọi.
Thông báo: Popup, âm thanh, tự động ẩn, bật/tắt được.
Quản lý hồ sơ: Xem/sửa tên, email, đổi mật khẩu, đồng bộ realtime.
Giao diện hiện đại: Dark/Light mode, responsive.
🛠️ Công nghệ sử dụng
Frontend: ReactJS, Socket.io-client, WebRTC, Firebase Auth, CSS3
Backend: Node.js, Express, Socket.io, MongoDB, bcryptjs
Realtime: Socket.io, WebRTC
Xác thực: Firebase (Google), JWT (nếu có)
Thông báo: Custom Notification
📝 Sử dụng
Đăng ký hoặc đăng nhập (email/password hoặc Google)
Thêm bạn bè, chọn bạn để chat/gọi video
Nhắn tin realtime, xem lịch sử chat
Nhận/gửi cuộc gọi video, điều khiển mic/camera
Nhận popup thông báo khi có tin nhắn/cuộc gọi mới
Quản lý thông tin cá nhân, đổi mật khẩu, bật/tắt dark mode, bật/tắt thông báo
🔒 Bảo mật
Mật khẩu hash với bcryptjs
Không lưu mật khẩu dạng plain text
Xác thực đầu vào, kiểm tra trùng email
Sử dụng biến môi trường, không commit thông tin nhạy cảm
📌 API & Socket
REST API: Đăng ký, đăng nhập, cập nhật hồ sơ, lấy bạn bè, gửi/nhận tin nhắn
Socket.io: Nhắn tin realtime, trạng thái online, gọi video, thông báo
🛠️ Scripts
Backend: npm start (dùng nodemon)
Frontend: npm start, npm run build (React scripts)
XEM THÊM ==> Hướng dẫn cài đặt chi tiết
HƯỚNG DẪN CÀI ĐẶT
B1: Xem Demo và lấy các Key cần thiết
B2: Mở dự án -> Thay các Key đã có ở B1
B3: Mở 2 terminal và tải thư viện (nếu báo lỗi ko có thư viện)
- Terminal 1: npm install
- Terminal 2: cd client; npm install --legacy-peer-deps
B4: Chạy dự án sau khi tải xong thư viện
- Terminal 1: npm start
- Terminal 2: cd client; npm start
B5: Chia 2 tab đăng nhập và test dự án
Nếu có lỗi phát sinh hãy nhờ sự trợ giúp của ChatGPT, nó sẽ giải quyết giúp bạn!
Nguồn: Topcode.vn