← All Case Studies EdTech

PrepZone Angular Platform

Learn how I built PrepZone, an Angular and Express EdTech platform. Covers Google OAuth, timed mock tests, analytics architecture, and admin operations tooling.

February 12, 2025 Updated March 19, 2026

Project Overview

PrepZone is a full-stack assessment platform for JEE/NEET preparation. It includes student authentication, test-taking flows, result analysis, notes distribution, and a full admin panel for question and paper management.

This was my first large Angular project and my first end-to-end product where I owned both frontend and backend architecture.

Product Walkthrough

What I Built

  • Student app with protected routes for dashboard, tests, results, notes, and profile/settings.
  • Admin app with protected routes for adding questions, generating papers, reviewing attempts, uploading PDFs, and viewing platform stats.
  • API service layer for auth, exam/test lifecycle, scoring, result retrieval, notes, and dashboard analytics.
  • Authentication system using Google OAuth for students and JWT-protected admin access.

Core Engineering Challenges

  1. Multi-exam data modeling: JEE and NEET have different subject combinations and question patterns.
  2. Test generation at scale: Each paper needed difficulty-filtered randomization while keeping subject structure intact.
  3. Result correctness and analytics: Scores, accuracy, time metrics, and per-subject performance had to be computed consistently for both student and admin views.
  4. Operational tooling: Non-technical admins needed reliable workflows for uploading questions, creating tests, and managing notes.

Engineering Solutions

1) Full-Stack Module Architecture

On the frontend, I used Angular lazy-loaded modules for major areas (student and admin) and route guards for both user roles. On the backend, I split concerns by router (/login, /student, /admin, /notes) with dedicated models for tests, students, questions, and documents.

2) Exam-Aware Test Generation Engine

The admin GeneratePaper flow builds papers from subject-specific collections using MongoDB aggregation sampling by difficulty.

  • Separate models support both multiple-choice and numerical formats.
  • JEE papers can include mixed question types (MCQ + numerical).
  • Metadata such as subject arrays, question IDs, correct answers, and test format are persisted for deterministic evaluation.

3) Deterministic Scoring and Feedback

The student result pipeline computes:

  • correct/wrong/unanswered counts,
  • negative-marking based score (+4/-1),
  • subject-level stats,
  • time-per-test tracking,
  • historical aggregates for top and average marks.

Frontend result pages reconstruct each attempt question-by-question and visualize outcomes using Chart.js donut charts and subject breakdowns.

4) Authentication and Access Control

  • Students authenticate with Google OAuth (Passport strategy), receive JWT tokens, and are redirected back into the Angular app through a callback route.
  • Admin flows use separate local auth + admin JWT strategy.
  • Route guards in Angular and JWT middleware in Express enforce role-specific access boundaries.

5) Content and Operations Layer

  • Admins can upload question images and PDF notes via Multer-based file handling.
  • Notes are searchable and paginated for students.
  • Admin dashboards aggregate question-bank coverage and student ranking/attempt summaries.

6) Rendering and UX for Technical Content

For exam questions containing formulas and symbols, the frontend uses MathJax integration to render expressions cleanly in test and result views.

Build Timeline (From Git History)

  • Jun-Aug 2023: Core platform foundation, auth, student test engine, result flows, and admin basics.
  • Oct-Dec 2023: Major UI redesigns, home page overhaul, contact flow, notes tooling, admin dashboard, and project completion milestone.
  • Jan-May 2024: Validation, route-guard improvements, image optimization, SEO/performance passes, and test-generation bug fixes.
  • Sep-Dec 2024: Deployment updates, URL fixes, backend TypeScript migration, and Vercel hardening.

Across both repositories, I shipped 175 commits (107 frontend + 68 backend), which captures the full evolution from early prototype to production deployment.

Results and Impact

  • Built a complete dual-surface product (student + admin) with one shared backend.
  • Established a maintainable domain model for multi-exam question banks and mixed test formats.
  • Delivered robust authentication and role-based route protection without adding external auth providers beyond Google OAuth.
  • Created reusable test/result logic that powers both student self-review and admin oversight views.

What This Project Taught Me

PrepZone was the project where I learned how to think in systems, not just screens. I had to connect UX, exam logic, data models, auth, and operations into one coherent architecture. That experience directly shaped how I approach larger production systems now.