Ứng dụng quản lý và đánh giá hiệu suất nhân viên với backend MongoDB/Express và frontend React/TypeScript.
├── backend/ # Backend API (Node.js + Express + MongoDB)
│ ├── src/
│ │ ├── models/ # Mongoose models
│ │ ├── routes/ # API routes
│ │ └── middleware/ # Auth middleware
│ └── server.js # Entry point
│
└── frontend/ # Frontend (React + TypeScript + Vite)
├── src/
│ ├── pages/ # Các trang chính
│ ├── lib/ # API helpers
│ └── types/ # TypeScript types
└── ...
- Node.js >= 16
- MongoDB (local hoặc MongoDB Atlas)
- npm hoặc yarn
cd backend
npm install
# Tạo file .env
echo "MONGO_URL=mongodb://localhost:27017/employee-assessment" > .env
echo "JWT_SECRET=your-secret-key-here" >> .env
echo "PORT=4000" >> .env
# Seed dữ liệu mẫu (tùy chọn)
npm run seed
# Chạy server
npm run devBackend sẽ chạy tại: http://localhost:4000
cd frontend
npm install
# File .env đã được cấu hình sẵn với:
# VITE_API_URL="http://localhost:4000"
# Chạy dev server
npm run devFrontend sẽ chạy tại: http://localhost:5173
Sau khi chạy npm run seed trong backend, bạn có thể đăng nhập với:
- Username:
manager - Password:
123456 - Quyền: Xem danh sách nhân viên, tạo đánh giá, xem tất cả đánh giá
- Username:
sarah.johnson - Password:
123456 - Quyền: Xem đánh giá của chính mình
- ✅ Đăng nhập/Đăng xuất
- ✅ Xem dashboard với thống kê tổng quan
- ✅ Xem danh sách tất cả nhân viên
- ✅ Xem chi tiết từng nhân viên và lịch sử đánh giá
- ✅ Tạo đánh giá mới cho nhân viên
- ✅ Xem biểu đồ xu hướng hiệu suất
- ✅ Đăng nhập/Đăng xuất
- ✅ Xem dashboard cá nhân
- ✅ Xem lịch sử đánh giá của mình
POST /api/auth/login- Đăng nhập
GET /api/employees- Lấy danh sách nhân viên (Supervisor only)
POST /api/assessments- Tạo đánh giá mới (Supervisor only)GET /api/assessments/me- Lấy đánh giá của mình (Employee)GET /api/assessments/employee/:id- Lấy đánh giá của nhân viên (Supervisor only)
Chi tiết API xem tại: backend/API_DOCUMENTATION.md
- Express.js - Web framework
- MongoDB + Mongoose - Database
- JWT - Authentication
- bcrypt - Password hashing
- React 18 - UI library
- TypeScript - Type safety
- Vite - Build tool
- Tailwind CSS - Styling
- shadcn/ui - UI components
- Recharts - Charts
- React Router - Routing
- Sonner - Toast notifications
-
Đăng nhập: Truy cập http://localhost:5173/login và đăng nhập với tài khoản test
-
Supervisor:
- Xem danh sách nhân viên tại
/employees - Click vào nhân viên để xem chi tiết
- Tạo đánh giá mới tại
/assessment/new
- Xem danh sách nhân viên tại
-
Employee:
- Xem dashboard để thấy lịch sử đánh giá của mình
- JWT token hết hạn sau 8 giờ
- Password được hash bằng bcrypt
- CORS được cấu hình chỉ cho phép frontend từ localhost:5173
- Role-based access control (RBAC)
# Kiểm tra MongoDB đang chạy
mongod --version
# Hoặc sử dụng MongoDB Atlas (cloud)
# Cập nhật MONGO_URL trong .env# Kiểm tra backend đang chạy tại port 4000
# Kiểm tra VITE_API_URL trong frontend/.env# Đảm bảo frontend chạy tại port 5173
# Hoặc cập nhật CORS origin trong backend/server.jsMọi đóng góp đều được chào đón! Vui lòng tạo issue hoặc pull request.
Xem hướng dẫn chi tiết trong:
- DEPLOY_GUIDE.md - Hướng dẫn đầy đủ từng bước
- DEPLOY_CHECKLIST.md - Checklist nhanh
- Setup MongoDB Atlas (miễn phí)
- Deploy backend lên Vercel
- Deploy frontend lên Vercel
- Cấu hình environment variables
- Test và sử dụng
Thời gian: ~30 phút
MIT License