Dự án được xây dựng phục vụ kỳ tuyển quân khóa F21 của CLB F-Code. Hệ thống bao gồm backend (Node.js/Prisma) và frontend (React/Next.js). Toàn bộ hạ tầng phụ trợ được quản lý qua Docker.
- /backend: API Service và Database Schema.
- /frontend: Giao diện người dùng.
- /root: Cấu hình môi trường phát triển chung (Prettier, Docker Compose).
Yêu cầu máy cài đặt sẵn:
- Node.js (LTS version)
- Docker & Docker Compose
- Git
Tại thư mục gốc, cài đặt các package phục vụ việc định dạng code (Prettier) và công cụ phát triển:
npm installKhởi chạy container cho cơ sở dữ liệu và các dịch vụ đi kèm:
docker compose up -d- Quản trị cơ sở dữ liệu: http://localhost:8080
- Username: challenge_3_fcode
- Password: challenge_3_fcode
Di chuyển vào thư mục backend:
cd backend
npm installThực hiện các lệnh sau để thiết lập cơ sở dữ liệu:
- npx prisma db push: Đẩy cấu hình từ schema vào database. Lệnh này đồng bộ trực tiếp mà không cần tạo file migration, phù hợp cho giai đoạn phát triển prototype.
- npx prisma generate: Khởi tạo Prisma Client. Bước này tạo ra các kiểu dữ liệu (Typescript types) giúp IDE có thể gợi ý code (Intellisense).
Sao chép .env.example để tạo cấu hình cho từng môi trường:
.env.development.env.production
Lưu ý: Kiểm tra và cập nhật biến NODE_ENV cho chính xác với mục đích sử dụng.
npm run devDi chuyển vào thư mục frontend:
cd frontend
npm installTạo các file .env.development và .env.production. Cập nhật các biến môi trường (như API URL) bên trong các file này.
npm run devDự án sử dụng Prettier để thống nhất phong cách viết mã. Trước khi commit, hãy thực hiện lệnh sau tại thư mục gốc:
npm run format- Dừng các dịch vụ:
docker compose stop - Gỡ bỏ hoàn toàn container:
docker compose down
Nếu gặp lỗi không nhận diện được kiểu dữ liệu hoặc thay đổi schema không được áp dụng, hãy thực hiện lại bộ lệnh:
npx prisma db push
npx prisma generatePhạm Hoàng Tuấn
Vai trò:
- Leader Technical Recruitment 2025
- Leader Challenge 3
- Subleader Challenge 1
- Prisma: Luôn chạy
generatesau khi thay đổi schema để tránh lỗi Type. - Docker: Nếu thay đổi cấu hình trong file
docker-compose.yml, cần chạy lạidocker compose up -dđể áp dụng. - Environment: Không được push các file
.env.developmenthoặc.env.productionlên GitHub.