PRD Agent logoPRDAgent

Swim lesson booking and scheduling app for a volunteer-run swim club

COMPLETE
By 4/30/26
$100
9 features
2 milestones

Project Overview

Problem Statement
A volunteer-run swim club with limited admin time needs a simple, easy-to-use, mostly automated way for customers to book swim lessons directly with instructors based on availability, reducing coordination effort and manual scheduling.
Ideal Customer Profile
Primary users: (1) Parents/swimmers booking swim lessons, (2) instructors managing their availability/schedules, (3) volunteer admins ensuring services/instructors are set up and the system is working properly.
App Audience
Public booking link/pages (anyone with the link can book) plus internal admin/instructor management
Project Type
Greenfield (new build)

N/A

Integrations
MVP: customer calendar invites/ICS + add-to-calendar links for Google, Outlook/M365, and Apple Calendar (not full two-way sync). Automated reminders/notifications (email; SMS optional). Optional payments; optional Zapier/webhooks; optional video conferencing.
Tech Stack Preferences
Prefer no-code / low-code approach if possible
Deployment Preferences
No preference; choose whatever simplifies development/maintenance
Design Status
No existing designs; OK with engineer implementing a simple, lightweight UI. Responsive web/mobile-friendly experience desired.

Features

Automated notifications & reminders
Send booking confirmations and automated reminders to reduce no-shows. Admin can configure reminder schedule; default reminder is 48 hours before the lesson.
  • Email confirmation on booking

    Send immediate confirmation email with lesson details and add-to-calendar links/ICS.

  • Reminder scheduling

    Implement reminder jobs; default send time 48 hours before; allow admin to configure timing (and potentially enable/disable).

  • Notification templates (basic)

    Provide editable subject/body fields for admin (or at minimum clear default templates).

  • Optional SMS (TBD)

    If in scope, integrate SMS provider for reminders; otherwise keep as future enhancement.

Service / event types for swim lessons
Support multiple bookable services: 30-minute private lessons (member & non-member) with 1 swimmer per slot, and 30-minute group lessons (member & non-member) with capacity 2–3 swimmers per slot. One instructor per 30-minute slot. Services define duration, booking rules, and (for group) capacity.
  • Define service model

    Create data model for services/event types including name, duration (30 min), type (private vs group), member vs non-member variants, and optional capacity for group lessons.

  • Service management UI (admin)

    Admin can create/edit/disable services and configure rules (duration, buffers, min notice, availability windows if needed).

  • Booking flow uses selected service

    Booking page lets guest choose a service and then shows available time slots based on instructor schedules and service constraints.

Instructor scheduling, availability, and assignment (round-robin)
Allow guests to book by selecting a service first, then either (a) choose a time, (b) choose an instructor, or (c) select 'any instructor' and auto-assign via round-robin across available instructors. Each instructor maintains their own schedule/availability to prevent double-booking.
  • Instructor profiles & roster management

    Admin can add/remove instructors and manage which services each instructor can teach (private/group; member/non-member).

  • Availability management for instructors

    Instructors can set recurring availability and/or one-off time windows, with ability to block time. System must respect existing calendar events from connected calendars.

  • Round-robin assignment rules

    Implement fair distribution across eligible instructors (e.g., rotate among available instructors; skip unavailable; handle tie-breaking).

  • Booking slot search

    Given service + constraints, compute available time slots across instructors (including group capacity rules) and present to guest.

  • Choose instructor vs any-instructor booking UX

    Booking flow supports: select instructor first, or select time first, or select 'any instructor' (round-robin).

Instructor availability management (in-app scheduling)
Instructors manage their lesson availability directly in the app (no required personal calendar OAuth for MVP). Availability drives real-time open slots and prevents double-booking within the system.
  • Instructor login & dashboard (basic)

    Provide a simple instructor portal to view upcoming bookings and manage availability.

  • Availability editor

    Allow instructors to set recurring weekly availability and one-off exceptions (add/remove blocks).

  • Booking conflict checks

    Prevent overlapping bookings for the same instructor and enforce service duration rules.

  • Admin override tools

    Allow admins to adjust instructor availability and resolve scheduling issues as needed.

Custom booking form & intake questions
Collect required information during booking. Member vs non-member selection should occur early in the flow (preferably before or during service selection) and can also be captured in the booking form if needed.
  • Define required booking fields

    Implement required fields: guardian first name, guardian last name, guardian email, guardian phone, swimmer name, swimmer age, swimmer skill level, notes/medical conditions.

  • Member vs non-member selection UX

    Add member/non-member toggle early in booking journey (before or during service selection) and persist it through booking.

  • Store responses with booking

    Persist booking form answers with the booking record for instructor/admin viewing.

  • Admin-configurable questions (optional)

    If feasible, allow admin to add/edit extra questions; otherwise keep fixed for MVP.

Customer self-serve reschedule & cancellation
Customers can reschedule or cancel lessons from a secure link in their confirmation/reminder emails, reducing volunteer admin workload. System updates instructor schedule and notifies parties.
  • Unique manage-booking links

    Generate secure, unguessable links for each booking allowing reschedule/cancel actions.

  • Reschedule flow

    Allow customer to pick a new time/instructor (respecting service rules and round-robin option) and update booking record.

  • Cancellation flow

    Allow customer to cancel a booking; release instructor slot and group capacity as appropriate.

  • Notifications on changes

    Send email notifications to customer and instructor/admin when booking is rescheduled/cancelled.

  • Policy settings (optional)

    Admin-configurable rules like cancellation deadline, reschedule limits, and whether cancellations are allowed.

Admin dashboard & system management
Provide an admin portal for volunteer admins to manage instructors, services, bookings, and basic configuration (reminders, branding).
  • Admin authentication & roles (basic)

    Admin login and authorization separate from instructors.

  • Bookings overview

    Admin can view all upcoming/past bookings, filter by instructor/service/date, and see booking details/form responses.

  • Manage instructors

    CRUD instructors and assign which services they can teach.

  • Configuration settings

    Configure reminder timing and basic org settings.

Instructor dashboard & booking notifications
Provide instructors with a simple dashboard to view upcoming lessons and receive notifications when bookings are created/changed. Helps instructors stay informed without admin involvement.
  • Instructor bookings list

    Instructor can view upcoming/past bookings, including swimmer details and intake form responses.

  • Instructor email notifications

    Send instructors email notifications on new bookings, reschedules, and cancellations.

  • Instructor reminder emails (optional)

    Optionally send instructor reminders (e.g., 48 hours before) separate from customer reminders.

Booking page branding (club logo & colors)
Customize public booking pages to match the swim club branding, including logo and primary colors, while keeping the UI simple and mobile-friendly.
  • Brand settings

    Admin can upload a logo and select primary/secondary colors (or choose from presets).

  • Apply branding to booking pages

    Use branding settings across public booking flow (service selection, time selection, confirmation).

  • Basic responsive layout

    Ensure booking pages work well on mobile and desktop with minimal friction.

Milestones

Milestone 1

Milestone 1 - MVP build (core booking + admin/instructor portals)
Implement core swim lesson booking experience (services, member toggle, booking form, instructor availability + round-robin), admin and instructor dashboards, email confirmations/reminders, reschedule/cancel, and basic branding.
$70

Assigned Features

  • Service / event types for swim lessons
  • Instructor scheduling, availability, and assignment (round-robin)
  • Instructor availability management (in-app scheduling)
  • Custom booking form & intake questions
  • Customer self-serve reschedule & cancellation
  • Admin dashboard & system management
  • Instructor dashboard & booking notifications
  • Booking page branding (club logo & colors)

Milestone 2

Milestone 2 - Notifications polish + launch & handoff
Finalize automated reminders/notifications, add-to-calendar invite experience, QA, deployment, and handoff documentation/training for volunteer admins and instructors.
$30

Assigned Features

  • Automated notifications & reminders

Open Questions

Given the budget target (<$100), what is the intended approach: build a lightweight custom MVP, self-host an open-source scheduler, or use an existing product (Calendly/Koalendar) and only customize branding/workflows?
A <$100 total budget is typically only feasible with very minimal custom development and/or leveraging open-source or existing SaaS tools. Clarifying scope and approach will drive feature selection and architecture.
Payments roadmap: which payment methods should be supported post-MVP (Venmo, PayPal, Stripe w/ Apple Pay & Google Pay, Square, etc.), and will pricing differ for member vs non-member or by service type?
Payments are not required for MVP, but the system should keep architectural runway for future payment collection. Clarifying provider and pricing rules impacts data model and booking flow.