SSCPrep Platform
Mock-test platform for eight SSC exams, built for students and always evolving. Timed sections, analytics, an admin panel and a pipeline with secret scanning, SBOM and Grype.
Problem
SSC exams are taken as a computer-based test with sectional timers, locked sections and negative marking. Practising for them needs a platform that reproduces those rules.
Why I built it. It is being built for students to use, so it is never really finished: it changes whenever a new need or a point of friction shows up.
How it works
Lint, test, build
prisma generate and validate, lint, type-check, npm test and a production build.
Submit
The client closes open question timers and posts the answers.
Approach
A Next.js 14 application with eight SSC exam types, a shared library of uploaded mock tests (parsed from PDF or DOCX), a full-screen exam interface and an admin panel. Each user’s attempts and analytics stay private.
What I implemented
- Prisma schema with 20 models covering tests, sections, questions, attempts, per-question and per-section analytics, reports, vocabulary, current affairs, streaks, feedback and an audit log.
- Authentication with JWT in httpOnly cookies and bcrypt password hashing, and an admin role.
- Edge middleware with per-route rate limits through Upstash Redis (for example 10 requests a minute for auth and 5 for uploads).
- Exam state in a Zustand store persisted to sessionStorage, so an exam survives a page refresh.
- Admin panel for users, tests, analytics (with CSV export), feedback, vocabulary, current affairs and the audit log.
- Multi-stage Dockerfile that runs as a non-root user with a health check, plus dev, prod and tools compose files.
- GitHub Actions pipeline with secret scanning, SBOM generation, Grype scanning, GHCR publishing and Vercel deployment.
Testing and verification
- CI runs prisma validate, lint, type-check, the test suite and a production build.
- Dependency audit, gitleaks and Grype run in the pipeline.
Limitations and next steps
- Automated tests cover the paper-parsing and analytics modules only.