Mocklytics takes the mock tests that IPMAT and JIPMAT candidates are already sitting, and turns the scores into something you can actually act on. It tracks attempts across three exams, breaks each one down by section, and lets you put two attempts side by side to see what moved.
It reached 800+ users with active usage through the exam-preparation cycle, which is the part that matters: a study tool is only useful in the weeks before the paper.
Stack
- React · TypeScript · Tailwind CSS · Recharts
- Node.js · Express.js · REST API
- MySQL
- JWT
- AWS · Cloudflare · Vercel · Render
What it does
Candidates pick their exam, log a mock, and get the attempt stored against the exam's own structure. The three papers do not share a shape, so the platform models them separately rather than pretending one schema fits all: IPMAT Indore is 360 marks across QA SA, QA MCQ and VA; IPMAT Rohtak is 480 across QA, VA and LR; JIPMAT is 400 across QA, LR and VA.
From there the useful part is comparison. Two attempts against each other, an attempt against your own history, a section against the same section last week. Comparison workflows are what turn a score into a decision about what to study next.
On top of the attempt history sits predictive analytics, which projects where a candidate's trajectory is heading rather than only reporting where it has been.
The admin side
A platform with real users needs someone able to run it. The admin dashboard covers user management, monitoring, and announcements, so the operational work does not require going near the database.
Announcements matter more than they sound. When a paper's pattern changes or a mock needs correcting, there has to be a way to tell everyone at once, from inside the product.
Scaling an exam-season tool
Exam preparation is brutally seasonal. Traffic is close to nothing for months and then spikes hard in the weeks before a paper, which is exactly the wrong shape for a single small server.
That load profile is why the deployment is split the way it is: the front end on Vercel's edge, the API on Render, static assets and caching behind Cloudflare, and the data in MySQL on managed RDS. Nothing here is exotic, and that is deliberate. The goal was for the thing to stay up during the only weeks it is used.
What it looks like
Screenshots of the live product, taken from the deployed site.

