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.

In progressDevOps & Cloud

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

CI/CD pipeline. Select a step to read what happens there.

Lint, test, build

prisma generate and validate, lint, type-check, npm test and a production build.

Exam submission. Select a step to read what happens there.

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.

Are you sure?