NIT — Personal Tutoring Platform

Full-stack build for my tutoring service: automated trial bookings, recurring & one-off lessons, real-time slot management, and Stripe-powered checkout with secure holds and webhook confirmation.

Role: Full-Stack Developer
Stack: Flask · JavaScript · PostgreSQL · Supabase · Stripe
Scope: Booking Forms · Recurring/One-off · Slot Holds · Webhooks
2025

Project Overview

Problem

Managing 1-to-1 tutoring manually was slow and inconsistent. Parents often faced delays, unclear availability, and no simple way to trial lessons before committing. With multiple levels (KS3, GCSE, A-Level), setting rates and recurring sessions became a hassle.

Solution

I built an automated booking and payment platform that streamlines the tutoring process. Parents can book instant trials, view real-time slots, and pay securely through Stripe. Dynamic pricing supports all levels, while automated scheduling and notifications remove double-bookings and admin work.

Key Features

Trial Booking
Instant trial checkout that removes the chosen slot from public availability and converts cleanly into a recurring plan.
Recurring & One-Off Lessons
Book weekly/monthly subscriptions from a confirmed trial with built-in conflict checks.
Slot Hold at Checkout
A hard hold during checkout prevents double-booking and auto-releases on cancel/timeout.
Stripe + Webhooks
On success: lock the lesson, mark paid, send confirmations. On failure: release the slot and notify payment failure.
Tiered Pricing by Level
Smart pricing UI that dynamically updates based on weekly or monthly subscriptions for KS3, GCSE, or A-Level selections.

Architecture at a Glance

Frontend
HTML · CSS · JS
Backend
Flask (Gunicorn)
DB
PostgreSQL
Payments
Stripe + Webhooks
Sessions
JWT
Hosting
Vercel · Render

→ Availability API → Slot hold (checkout) → Payment success → Lock slot → Notify

Notables

  • Booking checks prevent double-booking during simultaneous requests.
  • Stripe webhooks confirm payments and trigger instant booking updates.
  • Shared logic handles trial and recurring lessons cleanly.

Screens

Outcomes & Learnings

Fully Automated
Bookings, payments, and confirmations run end-to-end with no manual steps.
Zero Conflicts
Slot holds and payment checks completely removed double-booking issues.
Easy to Scale
New subjects and levels plug into the same flow with minimal setup.