Đây là một website nhắn tin thời gian thực được xây dựng bằng các công nghệ web hiện đại. Nó cho phép người dùng tham gia vào các cuộc trò chuyện nhắn tin tức thời với nhau. Dự án này thể hiện việc sử dụng React, Redux Toolkit, Ant Design, Tailwind CSS, TypeScript, Node.js, Express.js, Socket.IO, JWT và Bcrypt.
- Xác thực Người dùng: Người dùng có thể đăng ký và đăng nhập một cách an toàn sử dụng JWT và Bcrypt để mã hóa mật khẩu.
- Nhắn Tin Thời Gian Thực: Socket.IO cho phép nhắn tin thời gian thực giữa các người dùng, đảm bảo giao diện tin nhắn ngay lập tức.
- Giao diện React: Giao diện người dùng được xây dựng bằng React, cung cấp giao diện người dùng đáp ứng và tương tác.
- Redux Toolkit: Quản lý trạng thái được xử lý bằng Redux Toolkit, đảm bảo luồng dữ liệu hiệu quả và khả năng mở rộng ứng dụng.
- Ant Design và Tailwind CSS: Các thành phần giao diện được tạo kiểu bằng Ant Design, một thư viện giao diện React phổ biến, trong khi Tailwind CSS cung cấp các lớp tiện ích cho việc tạo kiểu tùy chỉnh.
- TypeScript: Codebase được viết bằng TypeScript, đảm bảo an toàn kiểu và khả năng bảo trì tốt hơn.
- Node.js và Express.js Backend: Backend được xây dựng bằng Node.js và Express.js, cung cấp một môi trường máy chủ mạnh mẽ và có khả năng mở rộng.
- Quản lý tin nhắn, Xoá tin nhắn, Emoji
- Đăng bài viết mới
- Ẩn-hiện, Xoá, Cảm xúc, bình luận, chia sẻ bài viết
- Thay đổi mật khẩu
- Cập nhật thông tin
- Đăng xuất khỏi tất cả các thiết bị - Pendding
- Clone kho lưu trữ:
git clone https://github.com/ogdp/one_chat.git
- Điều hướng đến thư mục dự án:
cd one_chat
- Cài đặt các phần phụ thuộc frontend:
npm install
- Cài đặt các phần phụ thuộc backend chuyển sang nhánh server:
npm install
- Khởi động máy chủ backend:
npm run server
(trong nhánhserver
) - Khởi động máy chủ phát triển frontend:
npm run dev
(trong nhánhmain
) - Mở trình duyệt web của bạn và truy cập
http://localhost:5173
để truy cập website nhắn tin.
Mọi đóng góp đều được hoan nghênh! Nếu bạn phát hiện bất kỳ vấn đề nào hoặc có gợi ý cải thiện, vui lòng mở một vấn đề hoặc gửi một yêu cầu kéo.
Dự án này được cấp phép theo Giấy phép MIT.