Swim lesson booking and scheduling app for a volunteer-run swim club
COMPLETEProject Overview
N/A
Features
- 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.
- 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 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 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.
- 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.
- 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 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 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.
- 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
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
Assigned Features
- Automated notifications & reminders