Skip to content
NewPupil portal, CBT and fees are live

One system for the whole school

Enrolment, attendance, results, fees and a pupil portal — built around a term and a class arm instead of a spreadsheet, and designed for the phone a teacher actually owns.

  • 30 days free
  • No card to start
  • Cancel anytime

Take school fees through the gateway you already use

PaystackFlutterwaveRemitaStripe
Features

Everything a school runs on, already built

Every item here is in the product today, not on a roadmap.

Enrolment as the spine

A pupil is never loosely "in JSS 2". They hold an enrolment binding them to a class arm, in a term, of a session — so attendance, results and fees hang off something real.

Learn more

Attendance that survives the network

A register is designed at 360px and saves in one request or not at all. A teacher can amend it afterwards, and every change is written to the audit log.

Learn more

Results and report cards

CA and exam weighting, grade bands and pass marks are settings, not code. Report cards compute from them and print properly on A4.

Learn more

Computer-based tests

Author a paper, publish it to a class level, let pupils sit it in a timed window. Marking runs server-side against a key no candidate can read.

Learn more

Fees and online payment

Build a fee structure, raise invoices across a class in one operation, and take card payments. Cash and transfers are recorded by the bursary.

Learn more

A portal for pupils

Pupils see their own attendance, results and invoices, sit their tests, message staff, and pay their fees from a phone.

Learn more
Built for groups

Many schools, one database, no leaks

Run a group without running a copy of the software for each school. Every table carries a school id, and separation is enforced by the database rather than by application code remembering to add a filter.

  • Row-level security enabled and forced on every table, deny by default
  • A missing policy returns nothing, never everything
  • Cross-tenant, role and pupil isolation asserted on every commit
  • Exam answer keys live where no candidate can read them
  • Every mutation recorded with who, what, before and after
Made yours

Your rules, your colours, your paperwork

Nothing about a term structure or a grading scale is hard-coded, so the system bends to how your school already works instead of the other way round.

  • Terms per session, CA weighting, grade bands and pass marks are settings
  • Currency, locale and date format follow the school, not the server
  • Your logo and brand colour carry into the portal and the report card
  • Everything an administrator would print has a real print stylesheet

Messaging

Staff and pupils, inside one school.

Audit log

Who changed what, and what it was before.

Branding

Logo and colour, contrast checked.

Bursary tools

Invoices, part payments, reconciliation.

Priced by size, not by seat

A ninety-pupil nursery should not pay what a fourteen-hundred-pupil group pays. The band is worked out from your active roll and re-checked only when you renew, so admitting a pupil mid-term never changes the bill you are on. Pay yearly and two months are free.

Our current bands are not loading just now. Please try again shortly.

Every band includes every feature. There is no tier that withholds the audit log or locks your pupils out of their results.

FAQ

Questions schools actually ask

Can one school see another school’s data?

No, and not because the application remembers to filter. Every table carries a school id and isolation is enforced by Postgres row-level security, enabled and forced, deny-by-default. A missing policy returns nothing rather than everything. Cross-tenant isolation is asserted by a test suite that runs on every commit.

Does it assume three terms and a Nigerian grading scale?

It ships with those, but they are data, not code. Terms per session, CA and exam weighting, grade bands, pass marks, promotion rules, currency, locale and date format are all settings. A different country is a new preset, not a new version.

Our teachers use cheap phones on poor connections.

That is the assumption the screens were designed against. Registers and rosters are laid out at 360px first and widened from there, and a register saves in a single request so a dropped connection cannot half-save a class.

We print everything. Does that work?

Yes. Report cards, invoices, registers and rosters carry print stylesheets: tints and shadows drop away, headers repeat across pages, and rows do not break in half.

What is deliberately not in it yet?

A guardian login, SMS, timetabling, library, transport, hostel and analytics dashboards are not built. We would rather say so than list them as features. Guardians can pay a pupil’s fees today, but they do not yet have an account of their own.

How do we get started?

Accounts are created by invitation, so get in touch and we will set your school up with its classes, terms and staff, and walk you through the first term rollover. The first 30 days are free.

Put the whole school on one system.

We set up your classes, terms and staff, and stay with you through the first term rollover.