Work/Education
StudyFrames
Exam day. Internet down. The exam goes on.
Live · paying customersLive, with active paying customers. Schools use it to run real exams.
WebWindowsAndroidIn-building server
The problem
“We need computer-based exams, but our lab, power and internet cannot be trusted.”
Nigerian secondary-school exams are moving to computers. JAMB is already fully computer-based, and WAEC and NECO are following. Yet most candidates meet a computer test for the first time in the exam hall. Most schools cannot run one themselves. Their labs have mixed, often old PCs, unreliable power and patchy internet, and cloud test products fail when the network does. A dedicated exam server costs more than many private schools will carry. Teachers lose weekends marking by hand. Students practise from printed compilations whose answer keys are sometimes wrong.
Who had it
- School ownersRun real computer-based exams on the computers the school already has.
- Teachers and invigilatorsSet papers quickly, see every candidate live, and skip hand marking.
- StudentsPractise on the real exam format with answers that are correct and explained.
- ParentsSee whether the phone and data are being used to study.
What the answer had to survive
- Exams must run when the internet drops.
- Exams must survive power cuts mid-paper.
- Mixed, old lab PCs must be enough.
- No server for the school to buy.
- Answer keys must not be readable by students.
What we built
One lab PC becomes the exam server, and nothing depends on the internet.
StudyFrames starts from the other end: the internet is a bonus, not a need. One ordinary lab PC becomes the school's exam server, so there is no server to buy. Lab PCs find it on the local network, and exams start, run and hand in without internet. Teachers set and mark papers offline, and everything syncs when the connection returns. Students practise on a JAMB-style screen against a bank of explained questions, with study tools that work offline. Every question is checked against its answer key before a student sees it.
AI inside StudyFrames
-
A tutor that uses the tools
Frames is a study companion that listens, speaks and explains. While it explains, it operates the study tools on the student's own screen. It wakes to a spoken word recognised on the device.
-
Marks handwriting
A student photographs a handwritten answer and gets a practice mark, with the reasons for it.
-
Turns books into a question bank
A pipeline turns photographed exam books into questions. Every question is checked against its answer key before a student sees it.
What it does
Running exams
- One-computer exam serverA Windows or Ubuntu installer turns a lab PC into the school's exam server. Lab PCs find it automatically.
- Live control pageSee every candidate's state, answers given and time left. Pause, add time, send a word to every screen.
- Locked exam windowFull screen, always on top. Leaving the window hands the paper in. Screens cannot be captured.
- Nothing handed in is lostLate and odd hand-ins are kept and flagged for the teacher. A student can resume on another computer.
Setting papers
- Three kinds of questionObjective, fill-in-the-gap and theory. Objectives are marked at once; theory is marked against a guide.
- Upload from Word or ExcelUpload a file or paste from Word. A review screen shows every question as students will see it.
- Real subject formattingFormulas, chemical equations, tables and pictures display correctly with no internet.
- Shuffled papersQuestions and options are shuffled per student. Passages and instruction groups stay together.
Student practice
- Study Mode and Exam ModeBuild a session by subject and topic, or sit a whole past paper on a JAMB-style screen.
- Three-level explanationsA one-line summary, the full working, and why each wrong option is wrong.
- Mistake bankWrong answers return on a spaced schedule until the student answers correctly twice in a row.
- 62 offline study toolsInteractive tools for mathematics, sciences, computing and more, each with exam-style practice, working without internet.
Frames companion
- Explains, does not just answerFrames explains a question step by step and asks the student to try the next step.
- Marks written answersA photo of a handwritten answer gets a practice mark with reasons, never presented as an exam body's mark.
- Spoken helpStudents can talk to Frames and hear replies read aloud. It is off during any test or exam.
- Teacher and parent helpFrames drafts tests and notes for teachers, and gives parents a kind, plain view of progress.
Parents
- Weekly email reportA report about their own child arrives by email, with links that open without a password.
- Child dashboardTopic progress, time spent and a readiness estimate, always labelled as an estimate.
- Goals and encouragementParents set weekly goals, assign practice and send notes of encouragement.
A day with it
- 1
Try it in a minute
A school owner scans a code and sits a real school test with no account, using a temporary demo that is erased after a day.
- 2
Register the school
A short form registers the school. Classes, students and teachers come in from a spreadsheet or the school-management system.
- 3
Install the exam server
The exam server is installed on one lab PC. Lab PCs find it on their own.
- 4
Set the paper
A teacher types questions, picks from the bank, or uploads a Word or Excel file, then chooses classes and publishes.
- 5
Sit the exam
Students write on lab PCs. The invigilator watches the Live page, and the exam carries on through an internet drop or power cut.
- 6
Mark and release
Objectives are marked at hand-in. The teacher marks theory, releases results and prints slips. Results sync when the internet returns.
How it works inside
One code base runs in two places. In the school, it runs on a lab PC as the exam server. On the internet, it runs as the central site. Lab PCs and apps work against the school server and their own encrypted content packs, so the internet is only needed for syncing, payments and Frames.
Cut the network to see what this system does without it.Internet links are down. Everything on the device and inside the building carries on, and queues its changes.
On the device
- Lab PCsStudents sit exams in a browser or the Windows app.
- Windows appStudy tools, lessons and packs work offline.
- Android appStudent and teacher practice on the phone.
Inside the building
- School exam serverOne lab PC; holds the school's data and papers.
Our cloud
- StudyFrames central siteMaster data, licences, payments, reports.
- Encrypted content packsSigned, versioned question packs, downloaded once.
Outside services
- Frames AI modelOnline only; powers the study companion.
- Payment providerCard, transfer and USSD payments.
- Email serviceReports, invoices and sign-in links.
- FikazonSMSSchool-management system; source of school import.
Every part and every link, as text
- Lab PCs — Students sit exams in a browser or the Windows app. (on the device)
- Windows app — Study tools, lessons and packs work offline. (on the device)
- Android app — Student and teacher practice on the phone. (on the device)
- School exam server — One lab PC; holds the school's data and papers. (inside the building)
- StudyFrames central site — Master data, licences, payments, reports. (our cloud)
- Encrypted content packs — Signed, versioned question packs, downloaded once. (our cloud)
- Frames AI model — Online only; powers the study companion. (outside services)
- Payment provider — Card, transfer and USSD payments. (outside services)
- Email service — Reports, invoices and sign-in links. (outside services)
- FikazonSMS — School-management system; source of school import. (outside services)
- Lab PCs → School exam server: Sign in, check in, hand in (works offline)
- School exam server → StudyFrames central site: Sync school data and results (needs internet)
- StudyFrames central site → Encrypted content packs: Builds packs nightly (needs internet)
- Encrypted content packs → Windows app: Downloaded once (needs internet)
- Encrypted content packs → Android app: Downloaded once (needs internet)
- School exam server → Windows app: Serves packs and updates (works offline)
- Windows app → Frames AI model: Asks Frames (needs internet)
- StudyFrames central site → Payment provider: Licence and plan payments (needs internet)
- StudyFrames central site → Email service: Weekly reports, invoices (needs internet)
- FikazonSMS → StudyFrames central site: Classes, students, logins (needs internet)
The hard parts
A whole school, one server: the load test
- The situation
- The exam server had only been tested with about 60 students. A first test with 1,100 students signing in at once let only 811 through, and sign-ins waited over four minutes.
- What we did
- We wrote a load test that signs in, starts, loads a 40-question paper and hands in for every student. It exposed six hidden causes, from slow Windows power settings to too few workers. Each got its own fix and a recorded decision.
- The lesson
- Claims are tested before they are made, and a failed test means finding every cause.
Old exam servers must not break
- The situation
- Exam servers installed in schools lag the website by days or weeks. One new column on the website stopped a newly installed school server from finishing its first sync.
- What we did
- We fixed it the same morning, then designed against the whole category. Servers ignore columns they do not know, announce their version on every sync, and new features are gated by version. A regression test pins it.
- The lesson
- Software installed at customer sites needs deliberate backward compatibility, and this has it tested.
Never let the exam depend on the server
- The situation
- Students could read answer keys held on a device, and could set a laptop clock forward to open an exam early. A design that sealed papers until the server said open had already shipped.
- What we did
- We sealed keys to each device and opened them only at hand-in, so scores work without a server. We rolled back the sealed-paper design within a day, because schools write offline. Early starts are now flagged, not blocked.
- The lesson
- Security choices must fit how school labs really work, and a wrong design is reversed quickly.
Printed answer keys are often wrong
- The situation
- Past-question books are printed, and their keys are wrong on 10 to 28 percent of questions in some years. Typing hundreds of pages by hand would take weeks.
- What we did
- We built a pipeline. One model reads each page, a second reads it again and solves every question blind, and the printed key votes. Any disagreement is held with both answers for one-click human review.
- The lesson
- The work includes the data pipeline and its quality gates, and knowing when to hold something back.
The stack
- Apps
- FlutterDartWindows desktop appAndroid app
- Backend
- Laravel (PHP 8.3)LivewirePython content engine
- Data
- MySQLSQLite on the school serverSQLCipher encrypted packsRedis
- Infrastructure
- CloudflareCaddy exam serverUbuntu and nginx
- Services
- Claude AI modelsElevenLabs voiceVosk on-device wake wordPaystackAmazon SES
- Testing
- PHPUnitFlutter testLoad tests
How it came together
- 1The exam server came firstThe in-school exam server and the way a school joins were built first, and tried with a class-sized group.
- 2Apps for home and phoneWindows and Android apps followed, so practice carries on away from the lab.
- 3Frames, the study companionAn AI companion was added that explains, listens, speaks and operates the study tools.
- 4Proved under loadA load test of 1,100 students at once was run and fixed until it returned zero errors.
- 5Lessons and theory1,230 lessons and 4,028 theory questions were added to the bank.
- 6Offline everywhereLessons were made to work offline in the Windows and Android apps.
