Online examination platform featuring role-based secure access, timed exam lifecycles, and a high-performance automated grading engine.

Traditional examination processes suffer from security vulnerabilities, session handling issues during long tests, and grading inefficiencies. Evaluating exam responses manually—especially free-text short answers and proportional partial credit multiple-choice questions—is time-consuming, subjective, and prone to human error.
SmartExam centralizes the full exam lifecycle by combining secure role-based controls, course enrollment tracking, and a real-time exam session manager. The platform runs a high-throughput Java-based **AutoMarking Engine** that evaluates multiple question styles dynamically with granular criteria (including proportional partial marking for multiple-choice questions and threshold-based keyword matching for short-answer questions).
Role-aware routing (Admin, Student, Instructor) backed by short-lived JWTs and Axios interceptors for transparent token refresh.
Client-side countdown timers aligned with backend constraint checks, supporting automated submission and persistent state saving (autosave).
Java-based grading strategies mapping MCQ, True/False, Multiple Choice (proportional partial credit), and Short Answer (keyword density) dynamically.
Enrolls students into active sections and filters access control, ensuring students only view and take exams for courses they belong to.
Verification codes, password recovery flows, and grading notifications delivered instantly via Gmail SMTP integration.
Dynamic analytical panels representing class average marks, grade curves, and question statistics.
Created with React using Vite and Tailwind CSS. State management handles JWT validation, role-based view filters, and exam lifecycle events. Communications are handled through a configured Axios instance attaching token cookies and headers.
A modular Spring Boot application written in Java 17 and structured into 12 core services including user management, courses, question banks, timed exam attempts, notifications, and auto-marking. Secured using custom filter middleware, route authorization guards, and password hashing.
Data persistence is handled by a MongoDB document database. Document references structure relationships across collections:
Explore the codebase or visit the live deployment of the platform.