Hệ thống đào tạo nhân viên doanh nghiệp toàn diện với Next.js 15, Firebase, và AI.
- Tạo, chỉnh sửa, xóa khóa học
- Phân loại theo danh mục và cấp độ
- Theo dõi tiến độ học tập
- Hỗ trợ video, tài liệu, quiz
- Multiple Choice (chọn một/chọn nhiều)
- True/False (đúng/sai)
- Fill in the Blank (điền từ)
- Timer, random questions, review answers
- Tự động sinh khi hoàn thành khóa học
- Mã xác minh duy nhất
- Tải PDF
- Kiến trúc RAG-ready
- Vector search interface
- Prompt templates
- Dashboard thống kê
- Quản lý người dùng (phân quyền)
- Quản lý khóa học
- Theo dõi tiến độ
- Next.js 15 - App Router, Server Components
- TypeScript - Strict mode
- Tailwind CSS - Utility-first styling
- shadcn/ui - UI components
- React Hook Form + Zod - Form handling
- TanStack Query - Data fetching
- Zustand - State management
- Firebase Authentication - Auth
- Firestore - Database
- Firebase Storage - File storage
- Gemini / OpenAI - LLM
- Vector Database - Embeddings
- Node.js 18+
- npm / yarn / pnpm
- Firebase project
git clone <repository-url>
cd epath-system-training
npm installTạo Firebase project tại Firebase Console
Lấy thông tin cấu hình và tạo file .env.local:
cp .env.example .env.localĐiền các giá trị:
NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
FIREBASE_ADMIN_PRIVATE_KEY=your_private_key
FIREBASE_ADMIN_CLIENT_EMAIL=your_client_email
Sao chép rules từ firestore-rules/rules.txt vào Firebase Console.
Sao chép rules từ storage-rules/rules.txt vào Firebase Console.
npm run dev- Kết nối GitHub repo với Vercel
- Thêm Environment Variables
- Deploy
npm run build
vercel deployfirebase deploy --only firestore:rules,storage:rulessrc/
├── app/ # Next.js App Router
│ ├── (auth)/ # Auth routes
│ ├── (dashboard)/ # Protected routes
│ ├── admin/ # Admin panel
│ └── api/ # API routes
├── components/
│ ├── ui/ # shadcn/ui components
│ ├── layout/ # Layout components
│ └── features/ # Feature components
├── hooks/ # Custom hooks
├── lib/
│ └── firebase/ # Firebase config
├── services/ # Business logic
├── stores/ # Zustand stores
├── types/ # TypeScript types
└── utils/ # Utilities
| Collection | Mô tả |
|---|---|
users |
Thông tin người dùng |
courses |
Khóa học |
lessons |
Bài học |
documents |
Tài liệu |
quizzes |
Bài kiểm tra |
quizAttempts |
Kết quả quiz |
progress |
Tiến độ học |
certificates |
Chứng chỉ |
notifications |
Thông báo |
ai_knowledge |
Knowledge base |
| Role | Quyền |
|---|---|
admin |
Toàn quyền |
hr |
Quản lý nhân sự, khóa học |
trainer |
Tạo/chỉnh sửa khóa học |
employee |
Học tập, xem chứng chỉ |
- RAG-based Q&A
- Course recommendations
- Smart quiz generation
- Personalized learning paths
- SSO (Azure AD, Google Workspace)
- Slack/Teams notifications
- HRIS integration
- Video conferencing
- Learning analytics dashboard
- Skill gap analysis
- Certification tracking
- Compliance reporting
MIT License