Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👨‍💻 Contributors

Nitin Singh - 2500032073
Ari Aarthi Deepika - 2500032091
B. P. Sai Swaroop - 2500032177
C. Hemanth Koushik - 2500032186

QAPAS: Quiz Assessment & Performance Analytics System

QAPAS 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.

Key Features

  • 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.

Tech Stack

  • Language: Python 3.x
  • Core Libraries: hashlib, csv, os, datetime
  • Data Science Libraries: pandas, numpy
  • Data Visualization: matplotlib

System Architecture

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

Installation & Setup

  1. Clone the repository:

    git clone [https://github.com/GameoCoder/QuizAssessmentSystem](https://github.com/GameoCoder/QuizAssessmentSystem)
    cd qapas_system
  2. 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
  3. Install the required dependencies:

    pip install pandas numpy matplotlib

Usage

You can run QAPAS in two modes: Interactive CLI or Automated Demo.

1. Interactive CLI Mode

Run the main script to access the interactive menu where you can register students, take quizzes, and generate reports.

python main.py

Main Menu Options:

  1. Register new student
  2. Login & take a quiz
  3. View your own results
  4. Faculty: add a question to the bank
  5. Faculty: generate analytics report + charts
  6. Exit

2. Automated Demo Mode

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 --demo

Sample Output

Once 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.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Python based Quiz Assessment System

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages