All Projects

Flow

Learning and exam management platform

Client
Functional Skills UK, an adult-education provider
Partnership
Knowledge Transfer Partnership with Edinburgh Napier University
My role
Sole developer, from requirements to production
Timeline
2025 – present
Status
Live on AWS, used daily by staff, tutors and learners
Recognition
Nominated for an Innovate UK KTP Award

Overview

Flow runs the day-to-day work of a UK adult-education provider. Enrolments, online courses, initial assessments, exam bookings and results all live in one system, with one record per learner from first enrolment to final result. I designed, built and deployed it on my own, and I still run it in production.

The Problem

Learners were enrolled in one tool and studied on a third-party platform that charged per learner. Exams and results lived in spreadsheets, so pass rates and tutor performance took days to pull together.

The Solution

One platform for staff, tutors and learners, all working from the same live data. Learners take their assessment, study and book exams online. Staff manage everything in one place, and the reports build themselves. Flow is multi-tenant, so one deployment can serve several training providers, each kept fully separate.

The Results

  • 5,000+

    learner records managed

  • ~£30k

    a year saved on platform fees

  • 20+ hrs

    of staff time back each week

Key Features

Enrolment

Learners come in from the website, a CRM webhook or the admin team. Each one is placed on a course, a funding contract and a tutor.

Assessment

Timed English and maths assessments find each learner's level before they start. Answers save as they go and marking is automatic.

Online Courses

Courses built from modules, workbooks and SCORM lessons. Learners track their progress, and tutors mark work inside Flow.

Exam Booking

Learners pick an exam slot on their phone. Exam officers manage dates and capacity, and reminders go out by email and SMS.

Reporting

Live dashboards show pass rates by subject, level, tutor and contract. Every change is logged for inspections.

Multi-Tenant

One deployment serves several training providers. PostgreSQL row-level security keeps each provider's data separate.

Product Screens

All screens use demo data. No real personal information is shown.

Dashboard: learners, exam bookings and outcomes at a glance.
Dashboard: learners, exam bookings and outcomes at a glance.
Learners: find anyone by tutor, subject, level or exam status.
Learners: find anyone by tutor, subject, level or exam status.
Initial assessment: timed, saved as the learner goes and marked automatically.
Initial assessment: timed, saved as the learner goes and marked automatically.
Classroom: each learner sees their assessments and courses in one place.
Classroom: each learner sees their assessments and courses in one place.
Course: modules, workbooks and SCORM lessons, with the learner's progress through each.
Course: modules, workbooks and SCORM lessons, with the learner's progress through each.
Exam diary: slots, capacity and bookings for each day.
Exam diary: slots, capacity and bookings for each day.
Outcomes: pass rates by subject, level and tutor.
Outcomes: pass rates by subject, level and tutor.

Tech Stack

Frontend

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS 4
  • React Router 7
  • ApexCharts
  • FullCalendar

Backend

  • Python
  • Django 5
  • Django REST Framework
  • Celery
  • Redis

Data & Cloud

  • PostgreSQL 16
  • AWS EC2
  • RDS
  • S3
  • CloudFront
  • Docker
  • Nginx
  • Sentry

Integrations

  • SCORM & Articulate Rise
  • Twilio SMS
  • Email
  • Monday.com webhooks
  • Stripe
  • Excel & PDF exports

More Projects

Let’s
collaborate

Have a project in mind, or an app that needs fixing or scaling? Tell me about it, and let’s build it together.