Dự án backend quản lý thư viện được phát triển bằng Node.js + Express + TypeScript + MySQL.
- Khởi tạo dự án với TypeScript + Express + MySQL
- Cấu hình môi trường
.env - Thiết lập ESLint + Prettier + tsx
- Middleware xử lý lỗi tập trung
- Kết nối database qua
mysql2/promise
- Đăng ký tài khoản (Sinh viên)
- Đăng nhập bằng Email hoặc Mã sinh viên
- Xác thực người dùng bằng JWT
- Phân quyền theo vai trò (ADMIN / STUDENT)
- Mã hóa mật khẩu bằng bcrypt + pepper
- Middleware xác thực token
- Thêm người dùng mới (ADMIN)
- Lấy danh sách người dùng (ADMIN)
- Lấy chi tiết người dùng
- Cập nhật thông tin người dùng
- Xóa người dùng (ADMIN)
- Kiểm tra dữ liệu bằng Joi
- Thêm mới sách (ADMIN)
- Lấy danh sách / chi tiết sách
- Cập nhật thông tin sách
- Xóa sách (ADMIN)
- Kiểm tra dữ liệu đầu vào (title, author, category, ISBN)
- Middleware xử lý lỗi (
express-async-errors) - Middleware xác thực và phân quyền
- Middleware kiểm tra dữ liệu (validate)
- JWT helper (
signToken,verifyToken) - Password helper (
hashPassword,verifyPassword)
- Tạo yêu cầu mượn sách
- Theo dõi hạn trả và tình trạng sách
- Gửi thông báo nhắc hạn (cron job / email)
- Tích hợp VietQR / PayOS
- Lưu và kiểm tra lịch sử thanh toán
- Tích hợp API GHN
- Theo dõi trạng thái vận chuyển
- Trang quản lý người dùng, sách, yêu cầu mượn
- Lịch sử mượn – trả sách
- Thống kê báo cáo tổng hợp