Máy chủ truy vấn trả về dữ liệu thông qua các REST API. Đây là một phần đồ án xây dựng trang mạng xã hội cho môn học Kỹ thuật phát triển hệ thống Web của nhóm sinh viên trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM.
- Người dùng có thể tạo tài khoản với tên đăng nhập/email/số điện thoại, mật khẩu cùng với các thông tin cá nhân khác (tên, ngày sinh, giới tính và địa chỉ). Không cho phép tạo tài khoản nếu tên đăng nhập/email/số điện thoại đã bị trùng.
- Người dùng có thể đăng nhập với tên đăng nhập/email/số điện thoại và mật khẩu cho tài khoản của mình. Thông tin đăng nhập phải được lưu lại kể cả khi người dùng tải lại trang.
- Người dùng có thể chỉnh sửa thông tin cá nhân của mình như tên, ngày sinh, giới tính và địa chỉ.
- Người dùng có thể tạo, chỉnh sửa và xóa bài viết của mình. Thông tin bài viết bao gồm chế độ hiển thị, nội dung và cũng CÓ THỂ đính kèm hình ảnh. Bài viết sau khi xóa cũng sẽ xóa đi mọi bình luận bên trong nó.
- Người dùng có thể xem thông tin cá nhân, danh sách bạn bè và bài viết của họ (hoặc BẠN BÈ của họ) tại trang cá nhân của người đó.
- Người dùng có thể xem bài viết của bạn bè (tại trang chủ hoặc trang cá nhân của họ) được sắp xếp theo MỚI NHẤT hoặc PHỔ BIẾN NHẤT. Thông tin hiển thị bao gồm tên người đăng, thời gian, nội dung tóm tắt bài viết và số lượt tương tác.
- Khi ấn vào một bài viết trên trang chủ, người dùng có thể xem chi tiết nội dung bài viết cùng với lượt bình luận.
- Người dùng có thể thích hoặc hủy thích bài viết trên trang chủ hoặc của bạn bè. Lưu ý hiển thị trạng thái đã thích cho các bài viết (kể cả khi khởi động lại trang)
- Người dùng có thể bình luận trên bài viết trên trang chủ hoặc của bạn bè, chỉnh sửa hoặc xóa bình luận của họ. Người dùng cũng có thể trả lời một bình luận, chỉnh sửa hoặc xóa trả lời đó.
- Người dùng có thể tìm kiếm một người hay bài viết với nhiều bộ lọc khác nhau.
- Người dùng có thể gửi lời mời kết bạn và chấp nhận lời mời kết bạn từ các tài khoản khác.
Máy chủ được xây dựng bằng Node.js
và Express
sẽ cung cấp các API cho máy khách để thực hiện các
chức năng như đăng ký, đăng nhập, đăng bài viết, thích, bình luận, kết bạn và tìm kiếm. Thông tin về
người dùng và bài viết sẽ được lưu trữ trong cơ sở dữ liệu MongoDB
và AWS S3
. JWT
và Bcrypt
cũng được sử dụng để bảo mật thông tin đăng nhập của người dùng.
Phương thức | Đường dẫn | Chức năng |
---|---|---|
POST | api/login | Đăng nhập, trả về token cho người dùng |
GET | api/users | Lấy danh sách thông tin người dùng khi cần tìm kiếm |
GET | api/users/:userId |
Lấy thông tin của người dùng đễ hiển thị lên trang cá nhân |
POST | api/users | Đăng ký tạo tài khoản mới |
PUT | api/users/:userId |
Sửa thông tin người dùng trong phần cài đặt |
DELETE | api/users/:userId |
Xóa người dùng trong phần cài đặt |
GET | api/users/:userId /friends |
Lấy danh sách bạn bè của một người dùng (cho trang cá nhân của họ) |
GET | api/users/:userId /friendsOfFriends |
Lấy danh sách bạn bè của bạn bè của một người dùng |
POST | api/users/:userId /friends |
Gửi lời mời kết bạn đến 1 người dùng |
PUT | api/users/:userId /friends/:friendId |
Đồng ý lời mời kết bạn |
DELETE | api/users/:userId /friends/:friendId |
Xóa bạn bè, từ chối lời mời kết bạn |
GET | api/posts | Lấy thông tin danh sách bài viết để hiển thị lên trang chủ |
GET | api/posts/:postId |
Lấy thông tin chi của một bài viết |
POST | api/posts | Tạo bài viết mới |
PUT | api/posts/:postId |
Sửa nội dung bài viết |
DELETE | api/posts/:postId |
Xóa bài viết + toàn bộ bình luận bên trong |
POST | api/posts/:postId /likes/ |
Người dùng thích bài viết |
DELETE | api/posts/:postId /likes/:userId |
Người dùng hủy thích bài viết |
GET | api/posts/:postId /comments |
Lấy toàn bộ bình luận (cả phần trả lời) của một bài viết |
POST | api/posts/:postId /comments |
Thêm bình luận mới. |
PUT | api/posts/:postId /comments/:commentId |
Sửa nội dung bình luận |
DELETE | api/posts/:postId /comments/:commentId |
Xóa bình luận + phần trả lời |
GET | images/:imageId |
Hiển thị hình ảnh bài viết |
-
Clone repo này về máy và cài các gói package bằng lệnh
npm install
. Yêu cầu sử dụng Node.js phiên bản từ 18.12.0 trở lên. -
Thêm các biến môi trường
PORT
,MONGODB_URI
,JWT_ACCESS_KEY
vào tập tin.env
. -
Khởi động máy chủ thông qua lệnh
node index.js
.
Để có thể sử dụng chức năng đăng ảnh, tạo một bucket trên AWS S3 và thêm vào tập tin
.env
các biếnAWS_S3_BUCKET
,AWS_REGION
,AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
vàAWS_SESSION_TOKEN
.
- Nguyễn Đào Minh Long - Đăng tải hình ảnh
- Trần Trọng Nguyên - Tạo tài khoản mới và đăng nhập
- Quách Kiều Oanh - Hiển thị và lọc danh sách các bài viết trên trang chủ và người dùng khi tim kiếm
- Lưu Chí Thịnh - Xây dựng các chức năng tương tác trên bài viết
- Lương Phúc Vinh - Quản lý trang thông tin cá nhân
- Mai Ngọc Bích - Quản lý bài viết
- Lê Nguyễn Bá Duy - Quản lý danh sách bạn bè và lời mời kết bạn