Timed Online Exam Simulator
UTBK and CPNS mock exams with a server-side timer, autosave, integrity logging, and percentile ranks for every edition.
- Status
- Live
- Layers
- FrontendBackend
- Used by
- Students preparing for the UTBK university entrance exam or the CPNS civil service test, and admins who follow each edition's results.

The problem
Simple online exams are easy to game, can lose answers when the connection drops, and don't show how a student ranks against others.
The solution
The server owns the timer and deadline, answers autosave and can be resumed, and tab or device switches are logged. Weekly editions publish automatically, test-takers see their percentile, and admins get a per-skill report.
How it works
What happens, step by step, from the user's point of view.
- 01
A new edition every week
Finished question packs are scheduled automatically for the next Sunday, with set opening and closing times.
- 02
The server keeps the time
When the exam starts, the deadline is recorded on the server. Changing the phone's clock gives no extra time.
- 03
Answers save automatically
Each answer is sent to the server. If the connection drops or the phone dies, the test-taker can resume where they left off.
- 04
Tab switches are logged
Leaving full screen, switching tabs, or changing device is logged for review. The log does not change the score.
- 05
Results and percentiles open
Once everyone in the edition has finished, test-takers see their score, percentile, and rank among others in the same edition.
- 06
Per-skill report
Admins see which skills were missed most in each edition, to guide improvements to the material.
System design
Who uses it, what they see, what works behind the scenes, and where the data lives. Read it from left to right.
1People
- Test-takersUTBK or CPNS candidates sitting the timed exam.
- AdminReads the per-skill report for each edition.
2What they see
- Exam screenQuestions, time left, and a sign that answers are saved.
- Results pageScore, percentile, rank, and worked solutions.
3Behind the scenes
- Exam serverFastAPI keeps the time, saves answers, and grades when the exam ends.
- Weekly releaseGitHub Actions schedules new editions every week automatically.
4Where data lives
- DatabasePostgreSQL stores attempts, answers, and the review log.
- Private question imagesQuestion images open only through temporary links during the exam.
Key features
- Server-side timer
- Autosave and resume
- Integrity monitoring log
- Weekly editions with percentiles
- Per-skill reports for admins
Built with
- Next.js
- FastAPI
- PostgreSQL
- GitHub Actions
Numbers you can check
- 1082
- Questions in the mock-exam bank
- 12
- UTBK editions written
- ±130
- Concurrent test-takers per server (load test)
What the business gets
- Test-takers don't lose answers when the connection drops.
- Exam time is the same for everyone and can't be gamed from a phone.
- Test-takers see where they stand among others in the same edition.
- New editions go live without an admin pressing a button each week.
- A load test showed one server handling about 130 test-takers at once.
Terms on this page
- Autosave
- Saving automatically every time the test-taker answers, with no save button.
- Percentile
- The share of test-takers whose score is the same as or below yours.
- Load test
- A trial run with many simulated users at once to see how much the server can handle.
Can it work for your business?
Fits training centres, HR teams, or certification providers that need timed online exams with results they can stand behind.
Ask about this project