53 Classes
Platform Manual β v2026
Complete technical and operational reference for the 53 Classes creative learning platform. Built for 53 Cox Road Gallery & Events.
Platform Overview
4
Total Roles
Admin Β· Partner Β· Instructor Β· User
18+
Public Pages
Public browsing, auth, and help pages
20+
Protected Pages
Role-gated dashboards & tools
6
Integrations
Stripe Β· PayPal Β· UPI Β· Gmail OTP Β· Google Calendar Β· AI
What is 53 Classes?
53 Classes is a full-featured creative learning marketplace built for 53 Cox Road Gallery & Events. It connects students, artists, galleries, and businesses across Australia through a seamless class booking and community platform.
Core Functionality
- Secure signup/login with email OTP
- Class discovery, booking & payment
- Instructor & gallery management
- Community groups, forum, challenges
- Gift cards, memberships & bundles
- Structured learning paths & curricula
- Book clubs, workshops & mentoring
- Artwork store & gallery bookings
- Blog & CMS with full SEO tools
Platform Stack
- React + Tailwind CSS frontend
- Base44 backend-as-a-service
- Email OTP verification and duplicate-account protection
- Stripe for payments & payouts
- Google Calendar API integration
- AI content generation (InvokeLLM)
- Real-time notifications
- Role-based access control (RBAC)
- Row-level security on all entities
User Roles & Permissions
Role Summary Matrix
| Capability | Admin | Partner | Instructor | User (Student) |
|---|---|---|---|---|
| Secure signup with email OTP | ||||
| Browse & book classes | ||||
| Create & manage classes | ||||
| Approve classes | ||||
| Manage all users | ||||
| Process payouts | ||||
| View partner revenue | ||||
| View instructor earnings | ||||
| Handle refunds | ||||
| Access CMS/Blog | ||||
| Manage venues | ||||
| Corporate bookings | ||||
| Community & forum | ||||
| Gift cards & memberships | ||||
| Manage API secrets | ||||
| Database export |
Admin
Landing: /admin
Full platform control. Can manage all users, classes, bookings, content, payouts, refunds, partners, payment secrets, and system settings.
- Manage all users and assign roles (π₯ Users tab)
- Monitor verified AppUser accounts and pending email registrations
- Update API secrets β Stripe & PayPal (π Secrets tab)
- Approve / reject / feature classes and workshops
- View and manage all bookings platform-wide
- Process payouts to instructors and partners
- Handle refund requests and disputes
- Approve partner and instructor applications
- Create and publish blog posts via CMS
- Access database export and schema browser
- View platform-wide revenue analytics
- Impersonate instructor view for support
Partner
Landing: /partner
Business owners / venue operators who manage their own team of instructors, classes, and revenue under the 53 Classes platform.
- Register and manage a partner organisation
- Add and manage instructors under their business
- Create and manage classes (linked to their partner ID)
- Manage venue spaces and availability
- Accept corporate booking enquiries
- View partner revenue reports and commission splits
- Access partner-specific earnings dashboard
- Manage their own settings and profile
Instructor
Landing: /instructor
Teaching artists and educators who list and run classes. Can view bookings and earnings for their own classes only.
- Create and submit classes for approval
- Manage class schedules (one-off & recurring)
- View bookings for their own classes
- View earnings and commission breakdown
- Manage payout settings via Stripe Connect
- Post announcements to enrolled students
- Host workshops and mentoring sessions
- Create series/bundles and curricula
- Use AI content generator for class descriptions
- Add Google Calendar events and Meet links
User (Student)
Landing: /
End users who browse, book, and attend classes. Can participate in community features and track their learning journey.
- Sign up securely with email OTP verification
- Browse and search all available classes
- Book classes and workshops (with Stripe payment)
- Apply gift cards and membership discounts at checkout
- View and manage their own bookings
- Join waitlists for fully booked classes
- Submit refund requests and track their status
- Save classes to wishlist
- Follow instructors and receive announcements
- Participate in community groups, forum, challenges
- Share creations in Show & Tell
- Earn points and badges via gamification
- Follow structured learning paths
All Pages & Routes
Public Pages
| Page | Description |
|---|---|
| Home | Landing page with hero, featured classes, categories, community highlights and CTAs. |
| Browse Classes | Full class catalogue with search, filters (category, location, price, skill level), grid/list/calendar views. |
| Class Details | Full class page with description, schedule picker, booking CTA, instructor info, reviews, and related classes. |
| Workshops | Standalone workshop listings with booking flow. |
| Workshop Detail | Individual workshop page with booking modal. |
| Galleries | Gallery and venue directory with category filters, hours, affiliated artists. |
| Gallery Profile | Individual gallery page with events, art, spaces, and contact info. |
| Indigenous Arts | Curated collection of indigenous art classes and cultural programs. |
| Artwork Store | Browse and purchase original artworks listed by instructors and artists. |
| Blog | News, tutorials, artist stories, and class spotlights. Searchable and filterable by category. |
| Blog Post | Individual article with full content, SEO meta tags, and optional related class CTA. |
| Gift Cards | Purchase and send gift cards with personalised messages, themes, and postal/email delivery. |
| Memberships | Subscribe to Explorer, Builder, or Fellow tiers for discounts, credits, and exclusive access. |
| Bundles | Curated class bundles with shared credits. |
| Book Club | Join or host virtual book clubs with reading schedules and live sessions. |
Authentication & Account Security
| Page | Description |
|---|---|
| Sign In / Sign Up | Custom authentication page for login, registration, Google sign-in, email OTP verification, and duplicate-account prevention. |
| Forgot Password | Starts password recovery for existing accounts. |
| Reset Password | Secure password reset page opened from reset links and tokens. |
Booking & Checkout
| Page | Description |
|---|---|
| Booking Checkout | Multi-step checkout: attendee info β add-ons β payment method (Card/Stripe, PayPal, or UPI β Google Pay / Paytm / PhonePe). Supports gift card redemption and GST invoicing. |
| My Bookings | User's booking history with status, calendar export, invoice download, and cancellation options. |
| Refund Management | Submit refund requests (users), review and process them (admin), dispute thread visible to all parties. |
| Wishlist | Saved classes for future booking. |
Instructor Pages
| Page | Description |
|---|---|
| Instructor Dashboard | Central hub for instructors: class management, schedules, bookings, earnings, announcements, and payouts. |
| List a Class | Form to create a new class. Fields: title, category, description, price, location, images, skill level, audience, occasions. |
| Register as Instructor | Application form for new instructors. Captures bio, specialties, portfolio images, and professional references. |
| Instructor Profile | Public profile showing bio, classes, portfolio, reviews, and follow button. |
| Workshop Host Dashboard | Manage workshops, slots, bookings, and reviews. |
| Mentoring Hub | One-on-one session booking: instructors set availability, students book slots. |
| Curricula | Browse structured multi-class learning programs. |
| My Curricula | Instructor's own curricula with enrolment stats and module management. |
| Curriculum Detail | Enrolment page, module list, learning objectives for a given curriculum. |
| Curriculum Learning | In-app learning interface: video modules, quizzes, show & tell, progress tracker. |
Partner Pages
| Page | Description |
|---|---|
| Partner Dashboard | Role dashboard for Partners. Tabs: Overview, Instructors, Venues, Bookings, Revenue. |
| Register as Venue | Application form for galleries and venue partners. Captures org details, facilities, branding, and contact info. |
| Register as School | School partnership application. Connects schools with artists for educational programs. |
| School Dashboard | Manage student enrollments, academic calendar, and class assignments. |
Admin Pages
| Page | Description |
|---|---|
| Admin Dashboard | Full control panel: tabs for Pending Approvals, Curricula, Challenges, Classes, Bookings, π₯ Users (role management), and π Secrets (API key setup for Stripe & PayPal). |
| CMS Dashboard | Create and manage blog posts. Fields: title, slug, content (rich text), SEO meta, category, tags, featured image, status. |
| Database Export | Export full platform data to MySQL. Download Spring Boot or Node.js backend/frontend code scaffolds. |
| Database Schema | Visual browser for all entities and their fields and relationships. |
Community Pages
| Page | Description |
|---|---|
| Community Groups | Create or join groups based on art interests. Share posts, interact, and flag content. |
| Discussion Forum | Q&A threads by category. Like, reply, follow. Instructors host live Q&A sessions. Study groups and direct messages. |
| Forum Post | Individual forum thread with replies. |
| Show & Tell | Share creative work for community feedback and likes. Content flagging and moderation built in. |
| Writers Corner | Short stories, poems, writing challenges. Post and discuss written work. |
| Challenges | Art challenges with themes and deadlines. Submit entries, vote on others, view winners. |
| Challenge Details | Individual challenge page with submission form and entry gallery. |
| Challenge Voting | Vote on challenge entries during the voting window. |
| Leaderboards | Weekly and monthly points rankings. Badges displayed per user. |
| Winners Gallery | Showcase of past challenge winners. |
Profile & Learning
| Page | Description |
|---|---|
| Student Profile | Public profile showing badges, reviews, testimonials, learning timeline, and skills showcase. |
| User Dashboard | Personal hub: booked classes, progress, wishlist, recommendations, notifications. |
| Learning Path | Follow curated multi-class paths. Track completion and earn certificates. |
| Settings | Update display name, view email/role, sign out. |
| Gallery Analytics | Views, revenue, and top artist stats for gallery owners. |
| Gallery Artist Manager | Assign, edit, and manage artists affiliated with a gallery. |
Key Workflows
Cancellation Flows
Flow 1 β Student Cancels a Booking
Triggered when a student requests to cancel a confirmed booking from their dashboard.
Flow 2 β Instructor Cancels a Class Session
Triggered when an instructor needs to cancel one of their scheduled class sessions.
type: instructor_class_cancellation Β· status: pending_admin_review
Status Lifecycle Reference
Pathway / Course Cancellation Framework
βοΈ Australian Consumer Law (ACL) Compliance
This framework is designed in accordance with the Australian Consumer Law. Students retain their rights under the ACL regardless of completion percentage. Where a course has a major failure (not as described, significant defect), a full refund may be mandatory. Admin override is always available.
Complete Cancellation Flowchart
End-to-end pathway cancellation process β Student Request β Refund Preview β Admin Review β Refund to Original Payment Method β Final Status.
Enrolment stays withdrawn
Student notified Β· Enrolment: withdrawn
Admin alerted Β· Manual resolution
Step-by-Step Summary
Opens 4-step cancellation modal
No refund needed if student accepts alternative
Kit shipped / digital content flags captured
Sessions attended deducted Β· Deductions applied Β· Split shown
PathwayCancellationRequest record created Β· Enrolment β withdrawn
>50% β pending_admin_review; β€50% β auto-approved
PathwayRefund record created on approval Β· Audit log updated
Proportional split restored to original payment methods
Student Β· Instructor Β· Admin β all notified of outcome
Status Lifecycle
Refund Calculation Rules
Before course starts
Full refund (minus any kit if already prepared)
Course in progress
Refund for unused sessions only β attended sessions are charged at per-session rate
Kit already shipped
~$25 kit cost deducted from refund
Digital content accessed
~$15 digital content cost deducted
>50% course completed
Requires admin approval before any refund is processed
Card payment
Refund to original Stripe payment intent
Gift card payment
Refund restored to original gift card balance
ACL major failure
Full refund regardless of completion β admin override always available
Notification Events
Join Waitlist Flow
1 β When the Flow Triggers
The waitlist flow activates automatically when a Class Series reaches its enrollment capacity.
π΄
Class is Full
Enrolled count equals or exceeds pathway capacity. The booking button is replaced with a "Join Waitlist" button.
π
Live Counter
The booking card shows a bold red "FULLY BOOKED" badge and displays how many people are already on the waitlist.
π
Button State
Users already on the waitlist see a disabled green "β You're on the Waitlist" button. Others see an amber "π Join Waitlist" button. When a spot opens, the first in queue gets a 24-hour window to book before the offer moves on.
2 β Step-by-Step User Journey
From button click to confirmation β what the user experiences at each stage.
- 1
User visits a fully booked Class Series page (/pathway/:id)
The booking card shows "π΄ FULLY BOOKED" with the current waitlist count below it.
- 2
User clicks "π Join Waitlist β It's Free"
A modal opens titled "π Join the Waitlist" with subtitle "Spots open up regularly β be first to know!"
- 3
User fills in their details and submits
Name (required), Email (required), Phone (optional). The system checks for a duplicate entry before proceeding.
- 4
System creates the Waitlist record
A new entry is created in the Waitlist entity with class_id, customer details, and status: "waiting".
- 5
Confirmation email is sent automatically
An email is dispatched with their queue position number, the class name, and a no-spam assurance.
- 6
Success screen is shown inside the modal
A green checkmark, "β You're on the Waitlist!", queue position badge, and confirmed email address are displayed.
- 7
User can close or browse similar classes
"Close" to dismiss the modal; "Browse Similar Classes" navigates to /pathways.
3 β Data Collected
The following fields are saved to the Waitlist entity on submission.
| Field | Required | Description |
|---|---|---|
| customer_name | Yes | Full name entered by the user in the modal form. |
| customer_email | Yes | Email address β used for duplicate checking and notifications. |
| customer_phone | No | Optional mobile number for future SMS follow-up. |
| class_id | Auto | The Pathway ID the user is waitlisting for. |
| user_id | Auto | Logged-in user's ID if authenticated; empty string for guests. |
| status | Auto | Set to "waiting" on creation. Updated to "expired" or "notified" by admin. |
4 β Duplicate Entry Prevention
Before creating a new record, the system performs an active duplicate check.
Pre-submission check
On submit, the system queries the Waitlist entity for any existing record matching the same class_id + customer_email + status:"waiting".
If a duplicate is found
Submission is blocked and an inline error appears: "You're already on the waitlist for this class series with that email." No email is sent.
If no duplicate
Entry is created, queue position calculated (count of "waiting" entries + 1), and confirmation flow proceeds.
Logged-in user button state
For authenticated users, the page queries the waitlist on load. If already on it, the button shows as a disabled green "β You're on the Waitlist" β preventing a duplicate attempt entirely.
5 β Success Screen
After submission the modal transitions in-place to a confirmation view β no page reload.
Title
"β You're on the Waitlist!" displayed prominently.
Queue Position
Large amber badge shows their position number e.g. "#3". Calculated live at time of submission.
Email Confirmed
Grey info box: "Confirmation sent to [email address]".
No-spam assurance
"We'll notify you the moment a spot opens up."
Close button
Outlined button to dismiss the modal and return to the page.
Browse Similar Classes
Amber button navigating to /pathways to explore other options.
6 β Complete Waitlist Flow (with 24-hour Offer Window)
End-to-end: Class Full β Join Waitlist β Spot Opens β Notify β 24h window β Book or pass to next person.
Step-by-Step Summary
enrolled count >= pathway.capacity β isFull = true
Live counter shows FULLY BOOKED badge + waitlist count
Duplicate check: same class_id + email + status:waiting
class_id, customer details, status:"waiting", queue_position assigned
Contains: name, class title, queue position, no-spam assurance
Student cancellation OR admin increases pathway.capacity
status β "notified" Β· offer_expires_at = now + 24h Β· Email with booking link
status β "converted" Β· Enrollment created Β· Confirmation email sent
status β "expired" Β· Offer passed to next person in queue (step 7 repeats)
6b β Notification Events
Three notification events occur across the waitlist lifecycle.
Immediately on joining
Confirmation email sent with name, class title, queue position (#1, #2, β¦), and 24-hour offer window explanation.
When a spot opens β 24h offer
The first person in queue is emailed with a booking link. Status β notified. offer_expires_at = now + 24 hours. If they don't book in time, the offer auto-passes to the next person.
Offer expires
If no booking within 24 hours, status β expired. The next person in the queue is notified and the cycle repeats.
7 β Admin Notes: Viewing & Managing the Waitlist
Admins have full visibility and control over all waitlist entries.
Where to find entries
All records are in the Waitlist entity, accessible via Admin Dashboard or /database-export. Filter by class_id to see the queue for a specific series.
Queue count on booking card
The pathway booking card shows a live count of waitlisted people so instructors and students can see demand at a glance.
Updating status
Admins can set an entry's status to "expired" (removed from queue), "notified" (spot offered), or back to "waiting" if needed.
Triggering notifications
The waitlistNotification backend function can be called manually or via automation when capacity is increased. It reads all "waiting" entries ordered by created_date and sends spot-opening emails.
Removing an entry
Only admins can delete Waitlist records. Alternatively, set the status to "expired" to remove a person from the active queue without deleting the record.
Using waitlist data
High waitlist counts signal strong demand β useful data to justify adding a second cohort, increasing capacity, or scheduling a repeat run of the series.
Venue Partner Pricing & Booking Flow
Complete Venue Partner Lifecycle
End-to-end: 5-step application with base & facility pricing β admin pricing review β approval auto-activates the Venue Partner (role + live venue) β instructor booking requests β partner notifications and confirm/decline.
Challenges Flow
Complete Challenge Lifecycle
End-to-end: Admin creates a challenge β students submit entries β community voting β finalists β winners announced β Winners Gallery, points & badges.
Step-by-Step Summary
Theme, prompt (AI prompt library available), submission deadline, voting window, prize details
status: "active" β shown on /Challenges, home page banner, and active-challenge widgets
ChallengeSubmission created β title, artwork image(s), description, category; visible in the gallery
Entry form closes β no new submissions accepted
ChallengeVote records β one vote per user per entry; live leaderboard updates in real time
Votes tallied β top entries appear as finalists on /challenge/finalists
ChallengeWinner records created β winners featured in the Winners Gallery
Gamification points and badges awarded β rankings updated on /Leaderboards
Host a Challenge β Marketplace Flow
Package β Apply β Pay β Approval β Go Live
How an external organisation runs its own challenge on the 53 Challenges engine: the host picks a package, answers the wizard and pays up front β the application only exists once payment clears. Admin review then auto-creates the challenge (or every challenge in a series) as a draft, and an admin publishes it. The host dashboard stays locked until that first application is paid.
?package=β¦ pre-selects the planProposal Status Lifecycle
Email Notifications
Key Pages & Data
/host-a-challenge
Public landing page β packages, pathways and managed services.
/host
Host workspace β locked to the apply wizard until the first application is paid, then challenges, services, campaign, team, messages and billing unlock.
/admin/host-approvals
Admin queues by risk, plus the "Ready to go live" publishing tab.
HostOrganisation / HostChallengeProposal
The host workspace and each paid challenge application β pricing, payment status, series settings and the challenge ids it created.
HostInvoice / HostServiceOrder
Balance invoices and paid service add-on orders.
HostNotification / HostWorkspaceMessage
In-app alerts and the two-way host β team message thread.
Integrations & Services
- Card payments at checkout (Credit/Debit)
- Gift card purchase processing
- Instructor payouts via Stripe Connect
- Refund processing on approval
- GST invoice generation
- Keys managed via Admin β π Secrets tab
- PayPal checkout tab at booking payment step
- Secure PayPal order creation via backend
- Client ID managed via Admin β π Secrets tab
- UPI payment tab at checkout
- Supports Google Pay, Paytm, PhonePe & any UPI app
- UPI ID validated (username@handle format)
- Collect request sent to user's UPI app for approval
- Sends signup verification codes by email
- Stores incomplete signups as pending registrations
- Prevents duplicate accounts for existing emails
- Supports password reset and account recovery emails
- Add class sessions to Google Calendar
- Generate Google Meet links for online classes
- Scheduling conflict detection
- Students: "Add to Calendar" on bookings
- Calendar links on booking confirmation cards
- AI class description generator for instructors
- AI course structure & module suggestions
- AI student coach and feedback
- AI gallery-artist matching
- AI partnership proposal builder
- Challenge prompt library generation
- Personalised class recommendations
Core Data Model
User
Base44 platform identity record used for authentication sessions.
AppUser
Application profile with email, password hash, role, verification status, reset token, and profile details.
PendingRegistration
Temporary signup record storing profile details and OTP until email verification is completed.
PublicProfile
Public-facing user profile synced from AppUser for community and profile pages.
Class
Workshop or class listing with partner_id, instructor_id, status, price, images.
ClassSchedule
Date/time sessions for a Class. Supports recurring patterns.
Booking
Student booking record linked to Class and Schedule. Tracks payment and status.
Artist
Instructor profile with bio, portfolio, Stripe account, commission rate.
Gallery
Venue/gallery profile with spaces, hours, affiliated artists, commission rate.
Payment
Revenue record with gross amount, commission deducted, and net for partner.
Subscription
Membership tiers: Explorer, Builder, Fellow. Tracks credits and benefits.
GiftCard
Monetary/bundle/class gift cards with balance, themes, and redemption history.
Review
Star rating + comment linked to a Class and Booking.
Notification
In-app alerts for class reminders, waitlist openings, booking confirmations.
Payout
Instructor payout records with amount, status, and Stripe reference.
BlogPost
CMS content with SEO fields, rich text, status, category, and tags.
RefundRequest
Refund lifecycle with reason, amount, status, and dispute thread.
Partner
Partner organisation record with approval status and contact details.
Full schema details available at /database-export (Admin only).
53 Classes Platform Manual Β· Β© 2026 53 Cox Road Gallery & Events Β· All rights reserved.
Built with Base44 Β· Last updated June 2026
