Overview

Secondary students across West Africa study towards specific examinations such as WASSCE, BECE and IGCSE, not a generic syllabus. We built a platform that is organised the way those curricula are: subject, topic, subtopic, with video, notes, audio and quizzes at each node, past papers alongside, and a live tutor when self-study runs out.

The student promise, stated plainly: curriculum-aligned lessons, past questions and a live tutor when they are needed.
The student promise, stated plainly: curriculum-aligned lessons, past questions and a live tutor when they are needed.
Client
Secondary education startup, Ghana
Industry
Education technology

The challenge

  • Learning content only helps if it maps onto the examination a student is actually sitting, which means the curriculum hierarchy is the data model, not a category tag.
  • Five roles want different things from the same account graph: students learn, tutors publish and teach, guardians pay for and monitor linked children, admins approve content and curriculum, super admins assign roles.
  • Guardians pay for students, so billing cannot assume the payer and the learner are the same person, or the same currency.
  • Account sharing is the default failure mode of a paid study platform: one subscription quietly serving a whole class.

Approach

Subjects browse: the curriculum hierarchy students actually navigate.
Subjects browse: the curriculum hierarchy students actually navigate.
  1. 01

    Model the curriculum, then hang content on it

    Subjects break into topics and subtopics, and every lesson, whether video, written notes, audio explanation or quiz, attaches to a node. Progress is tracked at that granularity, so “68% through WASSCE Mathematics” is a real measurement rather than a percentage of videos watched.

  2. 02

    Sessions bound to devices, not honour

    Identity comes from Firebase; the server verifies the token and issues a Redis-backed session scoped to the device. Concurrent devices are capped by plan, at one device on free, three on basic and five on premium, so a shared password stops being a business model.

  3. 03

    Guardians as first-class payers

    A guardian links student accounts, sees each one's activity, and pays for them in bulk, with multi-currency billing so the payer's currency is not assumed. The learner's experience never depends on owning the payment method.

  4. 04

    Live teaching when self-study stalls

    Tutors host live sessions with video and a collaborative whiteboard, and students can book one-to-one private sessions through structured packages, so the platform covers the moment a student gets properly stuck.

Past papers, filed against the same curriculum as the lessons.
Past papers, filed against the same curriculum as the lessons.

What shipped

3

curricula supported: WASSCE, BECE and IGCSE

5

roles: student, tutor, guardian, admin, super admin

4

content formats per node: video, notes, audio, quiz

Per-plan

device limits enforced on every session

Stack

  • SvelteKit
  • TypeScript
  • NestJS 10
  • Drizzle ORM
  • PostgreSQL
  • Redis
  • Socket.IO
  • Firebase Auth
  • Vite