Aviation Training · Multi-Tenant SaaS

Paper Logbooks and Group Chats, Replaced by One System

A flight school ran its aircraft, instructors and students across spreadsheets, paper logbooks and messaging apps. We built the platform that holds all of it — scheduling, lessons, logbooks, documents and messaging — with each school sealed off from every other.

Industry

Aviation Training

Solution

Flight School Operations SaaS

Engagement

~8 Months, Ongoing

Services

Full-Stack Development

Talk to Us
Flight School Operations SaaS — OpenMalo case study
Client Context

A School Running on Spreadsheets and Goodwill

Flight training has a scheduling problem most businesses do not: a lesson needs a student, an instructor and an aircraft to be free at the same time — and if any one of them is double-booked, the lesson does not happen and the aircraft sits idle.

Before this, that coordination lived in spreadsheets, group messages and verbal arrangements. Flight hours went into paper logbooks, which made audits and certification slow and error-prone. Medical certificates and licences were collected over email. Running a second location meant duplicating all of it.

Multi-Tenant SaaSReal-Time SchedulingDigital Logbooks
The Challenge

The Problems We Set Out to Solve

The intake was drafted from the codebase and git history rather than from client interviews, so we treat this list as the design brief the product was built against.

Schedules, instructor availability and aircraft bookings spread across spreadsheets and group chats

Flight hours and student progress kept in paper logbooks, making audits slow and error-prone

No single channel for messages, documents or school-wide announcements

Running more than one location meant duplicating everything

Billing, subscriptions and document collection handled entirely outside any system

Our Solution

One Calendar, One Logbook, One Tenant Boundary

The architecture is dominated by two decisions: nothing crosses the tenant boundary, and the calendar is the single source of truth for who and what is free.

Strict Multi-Tenancy

Every record carries an organisation identifier and is filtered automatically — a user in one school can never see another school's students, aircraft or records, by construction.

One Calendar, Three Constraints

Instructor availability, aircraft availability and student lessons combined into a single shared calendar with conflict detection, so a double-booking cannot be created in the first place.

RBAC From Database to UI

Four roles and custom per-school roles enforced from the schema through the API to the interface — not hidden menu items.

Real-Time Without a Vendor

A self-hosted WebSocket layer drives the inbox and live announcements, keeping the messaging inside the platform instead of in a group chat.

Key Features

What the Platform Does

Role-Aware Dashboard

One entry point that renders the right dashboard for a super admin, school admin, instructor or student.

Calendar & Reservations

A shared calendar combining instructor availability, aircraft availability and student lessons, with conflict detection built in.

Lesson Management

Instructors build lesson plans with tasks; students see their assigned lessons and everything inside each one.

Digital Logbook

Flight hours and lesson outcomes recorded against the right user by instructors, students and admins — replacing the paper book.

Real-Time Inbox

Instructors and students message each other live over a WebSocket channel, inside the platform.

Announcements

School-wide broadcasts composed by admins and delivered live to every user in that organisation.

User Management

Separate views for cross-organisation super admins and school-only admins, with profiles, blocking, role assignment and activity logs.

Roles & Permissions

A full UI for creating custom roles and attaching permissions, restricted to admin roles.

Aircraft Profiles

A fleet record with a detail page per aircraft, feeding the availability the calendar depends on.

User Documents

Upload and manage medical certificates, IDs and licences, backed by cloud object storage.

Subscription Plans

Manage the plans a school offers and assign members to them.

Support Tickets

Users raise tickets and chat with support without leaving the platform.

Activity Logs

A super-admin view of what is happening across every organisation on the platform.

Multi-Tenancy

Every record scoped to an organisation and filtered automatically — the boundary that makes the rest of it safe.

Technology Stack

Laravel API, React Client, Live Sockets

Frontend

React 19Vite 7Tailwind CSS 4React Router 7

Backend

Laravel 10PHP 8.2Centralised API Client

Data & Auth

PostgreSQL 18RBAC — 4 RolesTenant Scoping

Real-Time & Infra

Self-Hosted WebSocketsCloudflare R2RenderVercel
How We Delivered

Four Phases, Then Live

  1. 1

    Discovery & Scaffolding

    Scoped the four user roles, the multi-tenant model, and the initial set of modules before writing the schema.

  2. 2

    Core Build

    Authentication, dashboards, the calendar, lessons, logbook, inbox and announcements — plus the real-time layer that ties them together.

  3. 3

    Hardening & Polish

    User management, role-permission editing, subscriptions, support and aircraft profiles, and a pass over the design system across every page.

  4. 4

    Production & Iteration

    Live, with continued fixes and refinements driven by what the schools actually hit in daily use.

  5. 5

    How We Worked

    GitHub-flow with feature branches merged through pull requests, on a long-lived integration branch with a steady merge cadence.

The Result

What Was Delivered

16

Modules Delivered

4

User Roles

11

Core Entity Groups

~8

Months, Ongoing

  • Paper logbooks are gone: flight hours and lesson outcomes are recorded digitally against the right user, ready for an audit.

  • One calendar reconciles instructor, aircraft and student availability, so a double-booking cannot be created.

  • Each school is sealed off from every other — a second location is a new tenant, not a second system.

  • Messages, announcements and required documents all live in the platform instead of across email, WhatsApp and a shared drive.

FAQ

Frequently Asked Questions

That constraint shaped the whole design. We built one shared calendar that combines instructor availability, aircraft availability and student lessons with conflict detection built in, so a double-booking cannot be created in the first place. The calendar is the single source of truth for who and what is free.

Running a training business on spreadsheets?

We build multi-tenant operations platforms where scheduling, records and compliance stop living in three different places.

Talk to a Delivery Expert