Fikazon Technologies

Work/Education

FikazonSMS

Results, fees, staff and parents for Nigerian schools in one portal.

Live · paying customersLive, with active paying customers. New screens are released in stages and can be reversed.

WebAndroidiOS

Open edalafsms4.com

School management system for private schools

The problem

“Our results, fees and records sit in spreadsheets and paper mark books.”

Nigerian private schools run a heavy calendar. There are three terms a year, mid-term and end-of-term assessments, and report cards that follow each school's own grading scheme. Fees are paid in parts. Many schools still keep marks in spreadsheets and paper mark books. One wrong total on a report card, or one fee that cannot be traced, costs trust with parents. Generic software assumes a Western grading scheme, is priced in dollars, and needs fast internet that many schools do not have.

Who had it

  • Proprietors and head teachersReliable results and a clear view of the school's money.
  • BursarsFee collection, receipts and books that balance.
  • TeachersScore entry and result computation that do not take their evenings.
  • ParentsResults and fees on a phone, without waiting for printed sheets.
  • StudentsPractice tests, exams, live classes and the timetable in one place.

What the answer had to survive

  • Every school has its own grading scheme and mark sheet.
  • Fees arrive in parts, and every payment must be traceable.
  • Exams and score entry peak together on a school morning.
  • Schools cannot be taken offline to upgrade the software.
  • Old code, thousands of files long, had to keep working.

What we built

One portal built around how Nigerian schools actually run a term.

Each school sets its own mark components, grade bands and result templates. Teachers enter scores, and the system computes results with the school's rules, ranks classes and prints the school's own report card. Parents see results and fees on a portal or in the mobile app. Account Pro 4 keeps the books the way a Nigerian school keeps its fee ledger. The platform was load-tested for a school morning. New screens open in stages, run beside the old ones and can be reversed, so no school is forced to change mid-term.

100+modules across results, fees, staff, parents, exams and learning
0.01%failed requests in a simulated school morning of 2,000 sessions
194 KBfirst load of the new admin home, against 1,411 KB before
95 s to 8 sone school's term fee list, after three indexes, with identical output
$132 to $72monthly hosting cost after the move to new servers
0row-count differences in a full restore test of 19,457 tables

AI inside FikazonSMS

  • An assistant inside the accounts

    School administrators ask the built-in Edalaf assistant for help from inside the system, including the accounting module.

How we build AI into a system

What it does

Results

  • Mark sheets set per schoolStandard, advanced, IGCSE and kindergarten mark sheets, with weighted components that each school defines.
  • Mid-term and end-of-term resultsEach computed with its own rules, including group scores for combined subjects and waivers.
  • Report cards in the school's styleSchool-specific templates, several signatures, and closing and resumption dates for each term.
  • Positions and proofreadingClass and subject positions, with controls to recompute them and a proofreading step before release.
  • Delivery by email and WhatsAppPublish results to the parents portal, or send them by email or WhatsApp.

Fees and books

  • Fee collection and receiptsFind a student, see what is owed, record a payment and print a receipt. The money posts to the ledger at once.
  • Debtors and statementsStatements with brought-forward balances, reminders, and aged debtors by 30, 60, 90 and 120 days.
  • Ledger and financial reportsJournals, vouchers, trial balance, profit and loss, balance sheet and cash flow.
  • Banking, payroll and assetsBank reconciliation from a CSV, payslips with PAYE, and fixed assets with depreciation.
  • Approvals and audit logApproval limits by amount, books health checks, and a log of changes.

Parents and messages

  • Parents portalResults appear through the school's own result sheet. Home shows only what the school actually uses.
  • Mobile appAndroid and iOS apps with push notifications and instant messaging.
  • Email, SMS and WhatsAppNewsletters, bulk text messages and WhatsApp for results, fees and general notices.
  • Online fee paymentsParents pay through a payment gateway, and each payment is recorded against the school's books.

Learning and exams

  • Computer-based testsPractice tests and examinations, started by the teacher and monitored while students sit them.
  • Live classesLive classroom and meetings, with a Zoom link option and a class engagement report.
  • Time-Table StudioA four-step wizard builds class or exam timetables, with drag-to-swap editing and print or PDF.
  • Notes, assignments and libraryClass notes, assignments, past questions and an e-library for each school.

School administration

  • Admin 5 homeAn overview, a term ruler and a to-do list of what needs the administrator's attention.
  • Edalaf assistantAnswers questions about results and accounts, and prepares actions for a person to approve.
  • Admin rightsStaff receive only the rights they need, such as fees, results or accounting.
  • Students, staff and admissionsRegistration, promotion between sessions, online admissions, staff records and a vacancy module.

A day with it

  1. 1

    Set up the term

    The administrator sets the session, term, classes and subjects, registers students and staff, and gives parents logins.

  2. 2

    Bill and collect fees

    The bursar bills each class and records payments as parents pay, in part or in full. Receipts print at once.

  3. 3

    Teach and examine

    Teachers enter assessment and exam scores. Students take practice tests and exams on computer and attend live classes.

  4. 4

    Compute and proofread results

    The administrator computes results with the school's rules, proofreads them, and recomputes positions if needed.

  5. 5

    Publish to parents

    Parents see the report card on the portal or app. Results can also go out by email or WhatsApp.

  6. 6

    Ask and close the term

    Edalaf answers questions such as who has not paid. The bursar reviews reports and bank reconciliation before closing.

How it works inside

One PHP application serves every school from one database, with each school's data held in its own prefixed tables. A compatibility layer lets older code run on current PHP. Account Pro 4 reads and writes the same tables. Fee payments, email, SMS, WhatsApp and the AI assistant use outside services. Without internet, the portal cannot be reached.

Cut the network to see what this system does without it.This one lives on the internet, so it waits, like any website. Its staying power is on our side: backups, health checks and tested recovery.

On the device

  • Web browserStaff, teachers, students and parents sign in at one address.
  • Mobile appAndroid and iOS, with push notifications.

Our cloud

  • Web serverApache with PHP 8.4, plus a layer that keeps old code working.
  • School portalOne codebase: Admin 5, parents portal, Time-Table Studio, Edalaf.
  • Account Pro 4Accounting that can be switched on and back off per school.
  • School databaseMySQL 8.4 on its own server, reachable only from the web server.

Outside services

  • Encrypted backupsNightly dumps plus change logs every 15 minutes.
  • AI model serviceAnswers the assistant's questions and tool calls.
  • Payment gatewayTakes fee payments and confirms them to the portal.
  • Email, SMS, WhatsAppResult and reset emails, texts, WhatsApp and app push.
Every part and every link, as text
  • Web browser — Staff, teachers, students and parents sign in at one address. (on the device)
  • Mobile app — Android and iOS, with push notifications. (on the device)
  • Web server — Apache with PHP 8.4, plus a layer that keeps old code working. (our cloud)
  • School portal — One codebase: Admin 5, parents portal, Time-Table Studio, Edalaf. (our cloud)
  • Account Pro 4 — Accounting that can be switched on and back off per school. (our cloud)
  • School database — MySQL 8.4 on its own server, reachable only from the web server. (our cloud)
  • Encrypted backups — Nightly dumps plus change logs every 15 minutes. (outside services)
  • AI model service — Answers the assistant's questions and tool calls. (outside services)
  • Payment gateway — Takes fee payments and confirms them to the portal. (outside services)
  • Email, SMS, WhatsApp — Result and reset emails, texts, WhatsApp and app push. (outside services)
  • Web browser → Web server: Secure web requests (needs internet)
  • Mobile app → Web server: App requests (needs internet)
  • Web server → School portal: Runs school code (works offline)
  • School portal → Account Pro 4: Accounting link (works offline)
  • School portal → School database: School and shared tables (works offline)
  • Account Pro 4 → School database: Same tables, old formats (works offline)
  • School database → Encrypted backups: Nightly and 15-minute copies (needs internet)
  • School portal → AI model service: Assistant questions (needs internet)
  • Account Pro 4 → AI model service: Accounting questions (needs internet)
  • School portal → Payment gateway: Fee payments (needs internet)
  • School portal → Email, SMS, WhatsApp: Email, SMS, WhatsApp, push (needs internet)

The hard parts

Moving a live system to safe software overnight

The situation
The portal ran on PHP 5.6, which has had no fixes since 2019 and can never be patched. About 8,700 files used removed functions about 105,700 times. A rewrite was not possible.
What we did
Built new servers. Put a compatibility layer in front of the old code and rewrote about 119,000 spots in 3,686 files without changing behaviour, each checked against real PHP 5.6. Compared the 300 busiest pages on a staging copy, verified the database copy by row counts and fingerprints, then switched DNS at about 02:15.
The lesson
A legacy system can be moved carefully, with proof at each step, instead of rewritten.

A load test that found the real bottleneck

The situation
The new database server had to be sized for a school morning, when exams and score entry run at once. There was no live traffic to copy.
What we did
Simulated 1,700 exam-takers and 300 teachers entering scores for 15 minutes. The first run sent the database to 100% because of lookups with no index. Added about 1,950 indexes, raised worker limits and ran it again.
The lesson
Capacity was measured, not guessed: 0.01% failures, with the database near 59% load.

Accounting a school can always switch back from

The situation
Most schools used the oldest accounting version, which had no ledger. Any school that moved to a new version had to be able to go back and find everything.
What we did
Account Pro 4 runs beside the older versions on the same tables and never alters an old table. Moving a school is a switch, not a copy. One posting routine checks every entry balances to the kobo and never edits a posted entry. Corrections are reversals.
The lesson
Adopting new software does not mean betting the school's books on it.

New screens that ship with a way back

The situation
A new admin home and a new parents portal had to reach daily users without complaints on a school morning.
What we did
Each interface lives in its own folder, opens closed behind a preview key, then is switched on by a flag. Admin 5 opens about 277 old pages unchanged. Parents opt in and can return to the old portal for five weeks.
The lesson
New does not mean disruptive. Every change ships with a way back.

The stack

Apps
Server-rendered PHP pagesjQueryPlain JavaScript and CSSAndroid and iOS apps
Backend
PHP 8.4 (code also runs on 5.6)Apache with PHP-FPMCompatibility layer for older PHP code
Data
MySQL 8.4Encrypted nightly dumps and change logs
Infrastructure
Two cloud servers in LondonUbuntu 24.04HTTPS with auto-renewing certificates
Services
Payment gatewayAmazon SES emailSMS providerWhatsAppPush notificationsAI model service
Testing
k6 load tests145 compatibility cases against real PHP 5.6Account Pro 4 test suites on two PHP versions

How it came together

  1. 1
    Grown around the school termThe platform grew module by module around how Nigerian schools run a term.
  2. 2
    New accounting, designed firstAccount Pro 4 began as a mockup. Once approved, its main modules were built.
  3. 3
    Moved to current serversNew servers were built, a compatibility layer written, a load test passed, and the database moved.
  4. 4
    Old servers retired on proofThe old servers were switched off only after a full restore test from encrypted backups passed.
  5. 5
    New screens, opened in stagesTime-Table Studio and the new admin home were opened to school administrators.
  6. 6
    An assistant insideThe Edalaf assistant was opened to all school administrators, then added to Account Pro 4 with two manuals.
Next case study Fikastore Offline-first retail point of sale

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