problem
Millions of students sit the JAMB exam, a computer-based test that decides who gets into university in Nigeria. Many prepare with paper question books, and many have never used the computer they will sit the exam on. Online practice apps help, but they can't tell a student how they will cope in a real exam hall, with a timer, a supervisor and a screen that behaves in its own way.
Virtuo CBT joins the two. Students practise at home on their phone or computer, then sit a supervised mock exam at a centre, and both sets of results land in one profile.
my role
I designed and built Virtuo CBT at De-Virtuosphere: the student website, the dashboards for centres and admins, the exam apps for the centre, and the server behind them.
what I did
A dashboard that starts with the next step
The student's dashboard opens on the question every student has: how am I doing? Four numbers answer it: a preparation score, tests completed, questions answered and recent average. A score-trend chart shows if they are improving, and an outcomes ring shows how many answers were correct, wrong or left blank.
Below sit the things they do next, as large buttons: continue practice, take a timed test, start a full mock, view results, see the readiness report, or compare with the physical exam. A weekly leaderboard adds a little friendly competition.

Practice that starts with what you're weak at
Practice starts from the student's weakest topics, based on their own answers, so time goes where it helps most. Or they can choose a subject, a topic and how many questions to answer. A switch lets them see the answer after each question while learning, or hide it until the end to practise like the real exam. A timed paper is one tap away.

Timed tests built for you, and mocks from centres
The online exams page has two parts. The first is a targeted timed test that Virtuo builds for the student from their weakest topics, for example a 10-question, 5-minute test on the topics where they scored lowest. The page lists those topics with their scores, so the student can see why the test was chosen, and the paper changes as their weak topics change. The second is centre mocks: full practice exams that a CBT centre publishes, such as a 200-question, 60-minute JAMB mock, with the student's best score beside it and a button to sit it again.

Results that explain, not just score
After a test, the results page shows the score trend, accuracy for each subject, and the topics that need work.

The Online vs physical page puts the two side by side: overall score, accuracy and questions completed, and then each subject. It is easy to see if someone scores well at home and drops in the exam hall, which is the point of the physical mock.

An honest readiness report
The readiness page gives one score out of 100, a plain label such as Developing, and a short list of what to work on next. It is honest about what it is. The page says it describes preparation so far and is not a prediction or a guarantee of a JAMB score. Giving a student false confidence would be worse than giving none.

Physical mock exams that run without internet
Centres need to run mock exams on their own computers, even when the connection is poor. The centre's setup uses two desktop apps for Windows and Mac. The Admin app is for centre staff: it pairs the centre, loads the list of candidates and the exam paper, and starts the sitting. The Student app is what candidates use: they sign in with a pass, confirm who they are and their subjects, and sit the exam with a countdown. If a computer restarts, the exam resumes where it left off. Results are sent to the student's account when the internet is back.
Centres register on the website, and platform staff review each registration. These desktop apps are being piloted with centres.
under the hood
- The student and admin website is built with Next.js. It has three areas: candidates, centres and the platform team.
- The server is built with NestJS and a PostgreSQL database.
- The desktop apps are built with Tauri, which packages a web interface as a Windows and Mac app. Exam papers travel to a centre as a sealed package, with every image included, so a paper works with no internet.
- Safe results. Exam answers are saved in order and retried until the server confirms them. The cloud does the final scoring.
- Fair ownership. Papers made by the platform can't be edited or unpublished by a centre.
outcome
The student platform is live at virtuocbt.com. The exam-centre apps are in pilot.
lessons
Say what a score means. A readiness number is only useful if it is clear about its limits, so we wrote those limits on the screen.
Plan for the worst day. The exam apps were built for the day the internet drops, which is why the work was in recovery, saving answers and clear status, not in extra features.