A Flask-based system for Teachers and Students to upload questions (CSV/PDF), generate dynamic MCQ tests, assign them to students, conduct assessments, and view analytics with charts. SQLite is used as the database. The UI features a modern Liquid Glass style with Dark/Light mode.
- Teacher and Student roles with authentication
- Upload questions from CSV or PDF (auto BL level/topic/difficulty tagging heuristics)
- Create tests with filters; large pool per test, per-student randomized question sets
- Assign tests to students
- Students take tests; automatic grading and results
- Analytics on Teacher and Student dashboards with charts
- Liquid Glassy UI, responsive, Dark/Light mode
- Backend: Flask, Flask-SQLAlchemy
- DB: SQLite
- NLP/Parsing: pandas, pdfplumber (basic heuristics)
- Frontend: HTML/CSS/JS, Chart.js
D:\\DQG_Project
├─ app.py
├─ database.py
├─ nlp_processor.py
├─ requirements.txt
├─ README.md
├─ instance\ (created automatically)
├─ uploads\
├─ static\
│ ├─ css\style.css
│ └─ js\main.js
└─ templates\
├─ base.html
├─ login.html
├─ register.html
├─ teacher\
│ ├─ dashboard.html
│ ├─ upload_questions.html
│ ├─ create_test.html
│ ├─ assign_test.html
│ └─ view_results.html
└─ student\
├─ dashboard.html
├─ take_test.html
└─ results.html
- Python 3.10+
- Create venv and install deps:
python -m venv .venv
. .venv/Scripts/activate
pip install -r requirements.txt
- Run the app:
python app.py
- Open
http://localhost:5000
Default teacher account: admin / admin123
- CSV format headers:
Question, Option A, Option B, Option C, Option D, Answer, BL Level(optional:Topic, Difficulty) - You can use your provided
DSA_Questions.csvandMachine_Learning_Questions.csvdirectly. - PDF: basic heuristic extracts question-like lines and generates simple distractors.
- Tests create a pool of filtered questions. Each student gets a randomized subset of size
num_questionsfrom that pool, ensuring different sets across students. - Chart.js is used via CDN.
- Passwords hashed with Werkzeug.
- Flask session-based auth; for production, use environment secrets and HTTPS.
MIT