Skip to content

Pranavr06/exam-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Online Exam Management System (OEMS)

License Python FastAPI MySQL JavaScript Supabase Authentication Proctoring Deployment Status

A modern, robust, and highly scalable Online Exam Management System. This platform provides a seamless, secure, and fully proctored environment for institutions to conduct examinations, manage student academic records, and monitor exam integrity.


🌟 Key Features

πŸ§‘β€πŸŽ“ Student Portal

  • Real-Time Exam Interface: Secure, full-screen examination environment.
  • Performance Analytics: Visual graphs and statistics detailing past performance and subject strengths.
  • Academic Profile: Instant access to assigned subjects, teachers, and department details.

πŸ‘¨β€πŸ« Teacher Dashboard

  • Exam Creation: Dynamically create question papers, assign marks, and schedule exams.
  • Proctoring Suite: Real-time monitoring of active exams with automated violation flagging.
  • Result Finalization: Review student submissions, finalize marks, and publish results instantly.

πŸ‘¨β€πŸ’» Admin & Super Admin Panel

  • Institutional Management: Complete CRUD operations for Departments, Sections, and Academic Blocks.
  • User Management: Bulk-assign students to sections, manage teacher subject allocations.
  • System Overview: Global visibility into all active examinations and institutional metrics.

πŸ›‘οΈ Security & Integrity (Proctoring)

  • Tab Switching Detection: Automatically logs and flags students if they navigate away from the exam window.
  • Window Blur Detection: Flags if the exam window loses focus.
  • Evidence Capture: Integrates with Supabase Storage to capture and store photographic evidence during critical violations.

πŸ—οΈ Architecture & Tech Stack

This project is built using a modern decoupled architecture:

Frontend

  • Tech: HTML5, CSS3, Vanilla JavaScript.
  • Hosting: Deployed on Vercel for lightning-fast global CDN delivery.
  • Design: Fully responsive, custom glassmorphism design system with dynamic micro-animations.

Backend

  • Tech: Python 3.10+, FastAPI, Uvicorn, PyJWT for secure stateless authentication.
  • Hosting: Deployed on Render.
  • Automation: Features GitHub Actions workflows to keep the backend server and databases awake and fully responsive.

Databases & Storage

  • Primary Database: MySQL 8 hosted on Aiven Cloud.
  • Blob Storage: Supabase used for secure image/evidence uploads.

πŸš€ Local Development Setup

Prerequisites

  • Python 3.10 or higher
  • MySQL Server (Local) or Aiven Cloud Database
  • Supabase Project (for storage buckets)

1. Clone the Repository

git clone https://github.com/Pranavr06/exam-system.git
cd exam-system

2. Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

3. Environment Variables

Create a .env file in the backend/ directory:

DB_HOST=your_mysql_host
DB_USER=your_mysql_user
DB_PASSWORD=your_mysql_password
DB_NAME=your_database_name
DB_PORT=your_port

SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_service_role_key
SUPABASE_BUCKET_NAME=your_bucket_name

4. Database Migration

To initialize the database schema and structure:

python update_db.py

5. Run the Server

uvicorn main:app --reload --host 0.0.0.0 --port 8000

6. Frontend Setup

Simply open frontend/login.html in your browser. (Optionally, use an extension like VS Code Live Server to serve the files on localhost:5500). Ensure frontend/js/api.js points to http://localhost:8000 during local development.


πŸ‘₯ Team & Contributions

Pranav R

πŸ›‘οΈ Full-Stack AI Engineer & Project Lead

  • Spearheaded the overall project architecture, development, and integration.
  • Designed and developed the full-stack examination management system.
  • Implemented the AI-based proctoring engine using YOLOv8.
  • Developed the secure backend APIs using FastAPI.
  • Designed the database schema and authentication system.
  • Integrated the cloud-based evidence storage pipeline using AWS S3/Supabase Storage.
  • Coordinated project planning, documentation, and system deployment.

Pratham (NNM24IS164)

🎨 Frontend Developer

  • Developed the secure examination interface and student dashboard modules.
  • Implemented responsive frontend components and user workflows.
  • Improved user experience and interface consistency.
  • Assisted in frontend integration with backend APIs.

Prathwik

βš™οΈ Backend API Developer

  • Developed backend modules using FastAPI.
  • Implemented API endpoints and business logic.
  • Integrated database operations and secure data handling.
  • Assisted in authentication and system integration.

πŸ“‘ Automated Maintenance

This repository utilizes GitHub Actions (.github/workflows/keep-system-alive.yml) to automatically ping the backend endpoints every 14 minutes. This guarantees that the Render web service, Aiven MySQL database, and Supabase project bypass aggressive free-tier sleep cycles, resulting in zero cold-start latency for end users.


πŸŽ“ Developed as an academic project focused on secure, scalable, and AI-assisted online examination management.


πŸ“œ License

This project is licensed under the MIT License.

About

A comprehensive Online Exam Management System featuring multi-role access (Student, Teacher, Admin, Super Admin), real-time proctoring, automated grading, and secure testing portals.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors