Quixtrix Web App
Project Overview:
Teacher
Create exam: title, description, duration, start/end window, question types, marks, passing score.
Build question bank or import CSV; group questions into sections.
Assign exam to class, cohort, or individual students; schedule and notify.
Review results, export grades, provide feedback, regrade essays.
Student
Receive invite or link; authenticate (email/SIS login).
Take pre-exam system checks (camera, mic, connectivity), view instructions, and begin.
Answer questions with autosave, flag questions, and submit.
Receive immediate results for objective items; teacher feedback later for essays.
Project Challenges:
1. Ensuring Academic Integrity
Preventing cheating during online exams is a major challenge. Teachers must rely on tools like browser lockdowns, webcam monitoring, and random question sets — all of which can be bypassed or create technical issues for students.
2. Managing Real-Time Performance & Scalability
Handling many simultaneous users (students taking tests, submitting answers, teachers viewing results) can strain the system. Ensuring fast response times, stable connections, and accurate data synchronization is technically demanding, especially during peak exam periods.
Technical Solution:
1. Academic Integrity — Secure & Fair Exam Environment
Technical Solution:
Browser Lockdown:
Use a front-end restriction layer (e.g., Safe Exam Browser or custom Electron wrapper) that disables copy-paste, new tabs, and screen capture during exams.
Randomization Engine:
Back-end algorithm randomizes questions, answers, and order per student using seeded randomization to ensure fairness but prevent pattern detection.
Secure Tokenized Access:
Generate time-limited JWTs for exam access — ensures only authorized students can attempt within allowed duration.
Activity Logs:
Log all focus changes, IP addresses, and device fingerprints for audit and integrity review.
2. Real-Time Performance & Scalability
Technical Solution:
Microservices Architecture:
Split services (auth, exams, submissions, results) for horizontal scaling under load (using Kubernetes or Docker Swarm).
WebSockets for Live Updates:
Use WebSockets (e.g., Socket.io, SignalR) for real-time exam status, timer sync, and live monitoring instead of heavy polling.