Home
Home/Virtuo CBT

Virtuo CBT

Exam prep online, plus desktop apps that run physical mock exams with no internet.

  • virtuocbt.com
  • Design & engineering
  • 2026
  • Web
  • Desktop
  • Offline

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.

Virtuo CBT student dashboard with preparation score and score trend
Fig. 1 Student dashboard: score, trend, and the next thing to do (demo data)

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.

Practice setup with subject, topic and weak-topic suggestions
Fig. 2 Practice: start from a weak topic, or choose a subject and topic

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.

Online exams page with a targeted timed test and a centre mock
Fig. 3 Online exams: a test built from weak topics, and a full mock from a centre (demo account)

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.

Results page with score trend and subject accuracy
Fig. 4 Results: trend, accuracy by subject, and topics to work on

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.

Bars comparing online and physical overall score and accuracy
Fig. 5 Online vs physical: the same student's practice scores next to a supervised exam (demo account)

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.

Readiness report with score and topics to work on
Fig. 6 Readiness: a score, what's holding it back, and what to practise next

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.

← Previous workiKooKBooking a private chef, made simple, across iOS, Android and web.Next work →Virtuo FacilityFacility management for estates and campuses: assets, maintenance requests and vendors in one web app.

← All work