All work

Atnda, a UK education start-up. October 2023 to March 2026

Classroom bookings, payouts and student progress for UK schools

Atnda, a UK education start-up, let schools rent out their classrooms to DBS-checked teachers. As the principal developer from 2023 to 2025, I built the booking calendars and the money flow, from Stripe Checkout to monthly Stripe Connect payouts. When the product grew into student progress, I shared that work with a teammate, then built the school timetable on my own.

Sections behind one login
2
Eloquent models, with 167 migrations
63
Net payouts to schools and teachers
Monthly

How the platform works

The problem

Rooms to rent, and money to split

Atnda wanted schools to earn from their classrooms by renting them to DBS-checked, qualified teachers, who then run paid lessons there. It needed bookings, payments and the right share for everyone paid: the school for the room and the teacher for the lesson, after fees. Later it also wanted tools for tracking student progress inside schools.

Bookings

Calendars that refuse overlapping slots

From October 2023 I was the principal developer. Schools publish when each room is free on a calendar that rejects any slot overlapping one already there, and a schedule can be copied to other dates. Teachers search for rooms within a radius measured by road with the Google Distance Matrix API, then filter by date, time, room type, disabled access and capacity. The school accepts or rejects each booking, and teacher profiles hold DBS and qualification documents.

Payments

Payments in, net payouts out each month

Room bookings and lesson sign-ups go through Stripe Checkout in pounds, with a platform-fee line and an invoice. A Stripe webhook checks the signature, then links each checkout session to its payment intent. Schools and teachers onboard to Stripe Connect Custom accounts, and can pick up onboarding where they left off. Every payment lands in a ledger, and on the day of the month an admin sets, a payout command transfers each payee’s net amount for the month before and records the Stripe transfer ID.

Student progress

Feedback and school data, shared with a teammate

In 2025 the client widened the product into student progress inside schools, and I shared this phase with a teammate. I created the skills-and-grades version of the feedback board, student-started “Ray” threads, bulk feedback and the notifications platform, and the teammate extended them. I moved subjects and skills to many-to-many relationships with data migrations.

I also built the spreadsheet importer. Each row posts in its own database transaction, so a school sees progress and errors row by row, and new accounts get a temporary password that must be changed at first login. The teammate built voice-to-text, translation, staff permissions and parent access.

The timetable

A timetable that catches clashes

In March 2026 I built the timetable on my own. Schools set up day structures and periods, plan Week A and Week B, and see a warning when a teacher or a room is used twice in the same period. Terms and holidays sit above the grid, and an 8-page guided tour takes a school from timetable set-up to data upload. The product now has two sections behind one login: Facility Bookings and Student Progress.

How it fits together

Facility Bookings

October 2023 to April 2025

  • Room calendars that reject overlapping slotsI built
  • Schedules copied to other datesI built
  • Radius search on the Google Distance Matrix APII built
  • Stripe Checkout in pounds, with a fee line and invoicesI built
  • Stripe Connect Custom onboarding that can be resumedI built
  • Monthly net payouts, with Stripe transfer IDs keptI built
  • Ratings and the admin payment logsTeammate

Student Progress

2025 to March 2026

  • Spreadsheet importer, one transaction per rowI built
  • Subjects and skills moved to many-to-manyI built
  • Timetable with Week A/B and clash checksI built
  • Guided tour across 8 pagesI built
  • Feedback board with skills and gradesShared
  • “Ray” threads, bulk feedback and notificationsShared
  • Voice-to-text and translationTeammate
  • Staff permissions and parent accessTeammate

I built my own work Shared built with a teammate Teammate built by a teammate

The work

Client
Atnda, a UK education start-up
Role
Principal developer from October 2023 to April 2025, then one of two developers to March 2026
My part
Booking calendars and search, Stripe payments and payouts, the importer and the timetable. I shared the feedback board and notifications with a teammate.
  • Laravel
  • PHP
  • MySQL
  • Stripe
  • Stripe Connect
  • Google Distance Matrix
  • jQuery
  • Bootstrap
  • FullCalendar