Nền tảng tạo đề thi online thông minh sử dụng AI
BambooLab là một nền tảng giáo dục sử dụng trí tuệ nhân tạo tạo sinh để tự động hóa quá trình tạo và quản lý đề thi. Giáo viên có thể tải lên tài liệu và hệ thống sẽ tự động tạo câu hỏi trắc nghiệm với đáp án chi tiết.
- Tính năng
- Công nghệ sử dụng
- Yêu cầu hệ thống
- Cài đặt
- Cấu hình
- Sử dụng
- Cấu trúc dự án
- API Endpoints
- Đóng góp
- Giấy phép
- Tải lên file PDF, DOCX, hoặc hình ảnh
- AI tự động phân tích và tạo câu hỏi trắc nghiệm
- Mỗi câu hỏi có 4 đáp án với giải thích chi tiết
- Phân loại độ khó: Dễ, Trung bình, Khó
- Theo dõi tiến trình xử lý theo thời gian thực
- Làm bài trắc nghiệm theo môn học
- Giới hạn thời gian 30 phút/bài
- 16 câu hỏi ngẫu nhiên mỗi lần thi
- Xem kết quả và giải thích sau khi nộp bài
- Lưu lịch sử làm bài
- Tra cứu điểm thi học sinh giỏi tỉnh
- Thống kê xếp hạng theo môn học
- So sánh với điểm trung bình
- Thông tin về giải thưởng
- Đăng ký tài khoản với mã mời
- Đăng nhập với tùy chọn ghi nhớ
- Trang cá nhân với lịch sử làm bài
- Phân quyền admin/staff
| Thành phần | Công nghệ |
|---|---|
| Backend | Django 5.2.0 |
| Database | SQLite (dev) / PostgreSQL (prod) |
| Task Queue | Celery 5.5.0 |
| Message Broker | Redis 7 |
| AI | Google Generative AI (Gemini 2.0 Flash) |
| Frontend | HTML, CSS, JavaScript |
| Containerization | Docker, Docker Compose |
- Python 3.10+
- Redis Server
- Docker và Docker Compose (tùy chọn)
- Google AI API Key
- Clone repository
git clone https://github.com/ntanthedev/bamboo.git
cd bamboo- Tạo môi trường ảo
python -m venv venv
# Linux/macOS
source venv/bin/activate
# Windows
venv\Scripts\activate- Cài đặt dependencies
pip install -r requirements.txt- Cấu hình biến môi trường
Tạo file .env tại thư mục gốc:
SECRET_KEY=your-secret-key-here
DEBUG=True
GEMINI_API_KEY=your-google-ai-api-key- Chạy migrations
python src/manage.py migrate- Tạo tài khoản admin
python src/manage.py createsuperuser- Khởi chạy server
# Terminal 1: Django server
python src/manage.py runserver
# Terminal 2: Celery worker
cd src
celery -A bamboolab worker --loglevel=infoTruy cập ứng dụng tại: http://localhost:8000
- Clone repository
git clone https://github.com/ntanthedev/bamboo.git
cd bamboo- Cấu hình biến môi trường
Tạo file .env:
SECRET_KEY=your-secret-key-here
DEBUG=True
GEMINI_API_KEY=your-google-ai-api-key
POSTGRES_DB=bamboolab
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your-secure-password- Build và khởi chạy
docker-compose up --build- Chạy migrations (trong container)
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuserTruy cập ứng dụng tại: http://localhost:8010
| Biến | Mô tả | Bắt buộc |
|---|---|---|
SECRET_KEY |
Django secret key | Có |
DEBUG |
Chế độ debug (True/False) | Có |
GEMINI_API_KEY |
Google AI API key | Có |
POSTGRES_DB |
Tên database PostgreSQL | Docker |
POSTGRES_USER |
User PostgreSQL | Docker |
POSTGRES_PASSWORD |
Password PostgreSQL | Docker |
| Service | Port nội bộ | Port host |
|---|---|---|
| Django | 8000 | 8010 |
| PostgreSQL | 5452 | 5452 |
| Redis | 6379 | 7812 |
- Đăng nhập với tài khoản staff
- Vào Upload Document để tải lên tài liệu
- Chọn môn học và điền các thông tin cần thiết
- Chờ hệ thống xử lý và tạo câu hỏi tự động
- Xem và quản lý câu hỏi trong Documents
- Đăng ký tài khoản với mã mời
- Vào Quiz để chọn môn học
- Bắt đầu làm bài và hoàn thành trong 30 phút
- Xem kết quả và giải thích chi tiết
- Theo dõi lịch sử làm bài trong Profile
- Vào Tra điểm
- Nhập số báo danh
- Chọn kỳ thi (Lớp 10 hoặc Lớp 11)
- Xem kết quả và thống kê
bamboo/
├── src/
│ ├── bamboolab/ # Django project config
│ │ ├── settings.py # Cấu hình Django
│ │ ├── urls.py # URL routing
│ │ ├── celery.py # Cấu hình Celery
│ │ └── wsgi.py # WSGI entry
│ ├── core/ # Ứng dụng chính
│ │ ├── models.py # Database models
│ │ ├── views.py # View functions
│ │ ├── forms.py # Django forms
│ │ ├── tasks.py # Celery tasks
│ │ └── migrations/ # Database migrations
│ ├── templates/ # HTML templates
│ ├── static/ # CSS, JS, images
│ ├── data/ # CSV data files
│ └── manage.py # Django CLI
├── requirements.txt # Python packages
├── Dockerfile # Docker config
├── docker-compose.yml # Docker Compose
└── README.md
| Method | Endpoint | Mô tả |
|---|---|---|
| GET | / |
Trang chủ |
| GET | /admin/ |
Django Admin |
| Method | Endpoint | Mô tả |
|---|---|---|
| GET/POST | /login/ |
Đăng nhập |
| GET | /logout/ |
Đăng xuất |
| GET/POST | /register/ |
Đăng ký |
| GET | /profile/ |
Trang cá nhân |
| Method | Endpoint | Mô tả |
|---|---|---|
| GET | /quiz/ |
Danh sách môn học |
| GET | /quiz/start/<subject_id>/ |
Bắt đầu làm bài |
| GET | /quiz/attempt/<attempt_id>/ |
Làm bài |
| POST | /quiz/submit/<attempt_id>/ |
Nộp bài |
| GET | /quiz/result/<attempt_id>/ |
Xem kết quả |
| Method | Endpoint | Mô tả |
|---|---|---|
| GET/POST | /upload-document/ |
Upload tài liệu |
| GET | /documents/ |
Danh sách tài liệu |
| GET | /document-status/<id>/ |
Trạng thái xử lý |
| GET | /api/document-status/<id>/ |
API trạng thái |
| Method | Endpoint | Mô tả |
|---|---|---|
| GET/POST | /score-ranking/ |
Tra cứu điểm |
| GET | /import-csv/ |
Import dữ liệu CSV |
Chúng tôi chào đón mọi đóng góp từ cộng đồng!
- Fork repository
- Tạo branch mới (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Tạo Pull Request
Nếu phát hiện lỗi, vui lòng tạo issue với các thông tin:
- Mô tả lỗi chi tiết
- Các bước tái tạo lỗi
- Screenshots (nếu có)
- Môi trường (OS, Python version, etc.)
Dự án này được cấp phép dưới giấy phép MIT. Xem chi tiết tại file LICENSE.