- Facebook: https://www.facebook.com/betterbytes.academy
- Cộng đồng:
- Cộng đồng Playwright Việt Nam: https://www.facebook.com/groups/playwright.automation.test/
- Bài 1: Giới thiệu khóa học
- Video
- [Slide]
- [Quiz]
- Bài 2: Kiểm thử API
- Bài 3: Học gọi API với Python và Postman
Ứng dụng quản lý thư viện được xây dựng bằng NestJS với đầy đủ chức năng quản lý sách, danh mục và người dùng.
- Node.js (phiên bản 14.0.0 trở lên)
- npm hoặc yarn
- SQLite3
- Clone dự án:
git clone [đường-dẫn-dự-án]
cd book-app
- Cài đặt các gói phụ thuộc:
npm install
- Tạo file .env từ file mẫu:
cp .env.example .env
- Cập nhật các biến môi trường trong file .env:
JWT_SECRET=your_jwt_secret_key
DATABASE_PATH=./data/database.sqlite
PORT=3000
- Chế độ phát triển:
npm run start:dev
- Chế độ production:
npm run build
npm run start:prod
Ứng dụng sẽ chạy tại http://localhost:3000
Truy cập Swagger UI để xem tài liệu API:
http://localhost:3000/api/docs
-
Quản lý người dùng:
- Đăng ký
- Đăng nhập
- Phân quyền (NGƯỜI DÙNG, THỦ THƯ, QUẢN TRỊ VIÊN)
-
Quản lý sách:
- Thêm, sửa, xóa sách
- Mượn/trả sách
- Tìm kiếm sách
-
Quản lý danh mục:
- Thêm, sửa, xóa danh mục
- Phân loại sách theo danh mục
src/
├── auth/ # Xác thực và phân quyền
├── books/ # Module quản lý sách
├── categories/ # Module quản lý danh mục
├── entities/ # Các entity của TypeORM
├── public/ # Tệp tĩnh frontend
└── main.ts # Điểm khởi đầu
- Xác thực bằng JWT
- Mã hóa mật khẩu với bcrypt
- Phân quyền dựa trên vai trò (RBAC)
Sau khi chạy seed, hệ thống sẽ tạo sẵn 3 tài khoản với các vai trò khác nhau:
- Tài khoản Quản trị viên:
- Tên đăng nhập: admin
- Mật khẩu: Test123!
- Vai trò: QUẢN TRỊ VIÊN