Nitin Singh - 2500032073
Ari Aarthi Deepika - 2500032091
B. P. Sai Swaroop - 2500032177
C. Hemanth Koushik - 2500032186QAPAS is a modular, Python-based Command Line Interface (CLI) application designed to digitize and automate the entire academic testing lifecycle. It bridges the gap between basic assessment and data science by fully automating quiz conduction, instantaneous evaluation, persistent data storage, and advanced visual performance analytics.
- End-to-End Automation: Seamlessly handles student registration, quiz conduction, and instant grading with zero human calculation errors.
- Smart Analytics Engine: Utilizes Pandas and NumPy to calculate class averages, standard deviations, and identify top performers.
- Visual Reporting: Leverages Matplotlib to automatically generate subject-wise bar charts and student progression line charts.
- Persistent Storage: Safely reads and writes all user profiles and quiz attempts to local CSV files (
students.csv,results.csv). - Secure Authentication: Implements SHA-256 cryptographic hashing for all student passwords.
- Standardized Grading: Automatically maps percentage scores to standard grade bands (O, A+, A, B+, B, C, F).
- Demo Mode: Includes an automated simulation mode to generate dummy data and test the analytics engine instantly.
- Language: Python 3.x
- Core Libraries:
hashlib,csv,os,datetime - Data Science Libraries:
pandas,numpy - Data Visualization:
matplotlib
qapas_system/
├── main.py # CLI entry point (menu + --demo)
├── student/
│ ├── student_manager.py # Registration, login, CSV persistence
│ └── student_utils.py # Password hashing, validators, exceptions
├── quiz/
│ ├── question_bank.py # Subject MCQs (Python, Math, GK)
│ └── quiz_manager.py # Timed quiz sessions, demo mode
├── result/
│ ├── result_manager.py # Auto-grading, AttemptResult model
│ └── result_utils.py # Grade bands, pass/fail logic
├── analytics/
│ └── analyzer.py # Pandas+NumPy: avg, trend, top performers
├── reports/
│ ├── report_generator.py # Compiles text reports + triggers charts
│ └── charts/
│ ├── bar_chart.py # Subject-wise bar chart generation
│ └── line_chart.py # Student trend line chart generation
├── data/ # Automatically generated on first run
│ ├── students.csv
│ └── results.csv
└── output/ # Generated text reports and PNG charts
-
Clone the repository:
git clone [https://github.com/GameoCoder/QuizAssessmentSystem](https://github.com/GameoCoder/QuizAssessmentSystem) cd qapas_system -
Create and activate a virtual environment (Recommended):
# On Linux/macOS python3 -m venv .venv source .venv/bin/activate # On Windows python -m venv .venv .venv\Scripts\activate
-
Install the required dependencies:
pip install pandas numpy matplotlib
You can run QAPAS in two modes: Interactive CLI or Automated Demo.
Run the main script to access the interactive menu where you can register students, take quizzes, and generate reports.
python main.pyMain Menu Options:
- Register new student
- Login & take a quiz
- View your own results
- Faculty: add a question to the bank
- Faculty: generate analytics report + charts
- Exit
Want to see the analytics in action without manually taking quizzes? Run the demo mode to simulate student registrations, quiz attempts, and instantly generate reports and charts in the output/ directory.
python main.py --demoOnce a report is generated (via Menu Option 5 or Demo Mode), check the output/ directory for:
report_YYYYMMDD_HHMMSS.txt: A comprehensive text breakdown of class statistics and top performers.bar_chart.png: A visualization of average scores across different subjects.line_chart_<StudentID>.png: A progression timeline for individual student performance.
This project is licensed under the MIT License - see the LICENSE file for details.