E-Learning Exam Prep Platform

Job ID: 39632169

Budget: £750 – £1,500 GBP

Project Overview:
We are building a responsive web application to help students prepare for the exam. The platform allows students to take online exams, download printable papers (PDFs), upload OMR sheets for review, track performance by subject and topic, and view progress reports. There will also be a role-based flow for teachers to manage students, assign tests, and monitor their performance.
A basic UI mockup is already created using Blink (link provided).

Core Functional Requirements:
Authentication
* Sign up / Sign in pages
* Logout
* Role selection (Student / Teacher)

Home / Dashboard
* Welcome message
* List of available subjects & exams
* Highlight key features

Exam Practice & Creation
* Take exams online (auto-evaluation for MCQs)
* Download exams as PDF
* Create custom exams by topic/difficulty
* Submit answers via OMR sheet upload
* Auto-check submitted OMR and return scores + feedback

Performance Tracking
* “Performance” tab showing enrolled courses
* Each course page shows:
* Topic-wise performance (e.g. Algebra, Area/Parameter)
* Visual graphs (Bar, Pie charts) for strengths/weaknesses
* Track history of attempts and improvements

Teacher Module
* Teacher can:
* Enrol students by email invite
* Assign tests to students
* View student submissions and performance

Checkout & Billing
* Course subscription/payment system
* Checkout page integration (Stripe preferred)

Settings
* Edit profile, role (student/teacher), and password
* Manage subscriptions

Admin Dashboard – Key Sections
1. Overview Panel (Summary Cards / KPIs)
* Total Registered Users
* Split by roles: Students / Teachers
* Total Exams Created
* Exams Taken Today / This Week
* Total OMR Uploads
* Popular Subjects / Topics
* System Alerts (e.g., failed uploads, login errors)

2. User Management
* View, search, filter users (Student / Teacher)
* Approve or deactivate accounts
* View student progress & exam history
* Reset passwords or resend activation emails
* Role switch (upgrade Student to Teacher, etc.)

3. Course & Subject Management
* Add/edit/delete subjects (e.g., Math, English)
* Add/edit topics under each subject (e.g., Algebra, Probability)
* Control topic difficulty tags (Easy, Medium, Hard)
* Assign default question banks per topic

4. Exam Library Management
* View all exams created (by Admin/Teacher)
* Approve or review custom exams
* Edit exam metadata (name, difficulty, time limit, course/tag)
* See stats: how many students have taken each exam
* Bulk upload questions (CSV/JSON)

5. OMR Upload Logs
* View all OMR sheet uploads
* Status: Pending | Processed | Error
* Download/view student-submitted sheets
* Mark/override scores if needed (manual grading)

6. Performance Analytics
* See overall student performance trends
* Subject-wise accuracy
* Topic-wise weaknesses across all students
* Download/export performance reports (CSV/Excel)
* Identify areas needing more practice materials

7. Teacher Activity Monitor
* See teacher-specific dashboards:
* Students they manage
* Tests they assigned
* Feedback they've given
* Remove or restrict a teacher if misuse is detected

8. Content Moderation
* Review and approve new question uploads
* Detect or delete inappropriate content
* Audit logs for who changed what and when


Key Pages:
1. Landing Page
2. Dashboard
3. Online Exam Page
4. PDF Paper Download Page
5. Performance Overview
6. Performance by Topic (inside each course)
7. Create Custom Exam
8. OMR Upload Page
9. Teacher – Student Management & Test Assignment
10. Billing & Settings
11. Administrator Page


Technical Preferences:
Component Technology
Backend Python + FastAPI (preferred)
Frontend React.js
Database PostgreSQL or MySQL
Hosting AWS (EC2 / S3 / RDS etc.)
Auth JWT / Session-based
Charts Chart.js or similar
PDF Gen
OMR Eval Accept image/PDF uploads, use template matching or manual review

Deliverables Required:
* Complete source code (Frontend + Backend)
* RESTful API documentation (Swagger + Postman Collection)
* Deployment guide (preferably with Docker)
* Admin panel (optional but helpful for future updates)
* Clean, modular codebase (with comments)