Fikazon Technologies

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

Open studyframes.com.ng

Offline-first school exam and practice platform

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.

0 errorsin a load test of 1,100 students signing in, writing and handing in at once
116,669questions in the bank: past papers back to 1978, plus original topic questions
62interactive study tools that work offline
1,230interactive lessons, one per syllabus topic
667automated PHP tests passing

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.

How we build AI into a system

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. 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. 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. 3

    Install the exam server

    The exam server is installed on one lab PC. Lab PCs find it on their own.

  4. 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. 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. 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

  1. 1
    The exam server came firstThe in-school exam server and the way a school joins were built first, and tried with a class-sized group.
  2. 2
    Apps for home and phoneWindows and Android apps followed, so practice carries on away from the lab.
  3. 3
    Frames, the study companionAn AI companion was added that explains, listens, speaks and operates the study tools.
  4. 4
    Proved under loadA load test of 1,100 students at once was run and fixed until it returned zero errors.
  5. 5
    Lessons and theory1,230 lessons and 4,028 theory questions were added to the bank.
  6. 6
    Offline everywhereLessons were made to work offline in the Windows and Android apps.
Next case study FikazonSMS School management system for private schools

Tell us the problem.

We will tell you what it takes to ship it, and what it takes to keep it running.

Start a project We wrote to you? See the offer0805 403 7391