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
One login with a switch between the two sections
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