Technical Reference

System Architecture & Data Model

Complete technical overview of the Rising with Melodies platform โ€” two systems, two databases, and how they connect.

System Overview

The platform consists of two independent systems hosted on risingwithmelodies.org (Porkbun). Both are built with vanilla JavaScript and Vite, with no backend server โ€” all logic runs in the browser and communicates directly with Supabase.

risingwithmelodies.org
โ”œโ”€โ”€ / (index.html) โ†’ Public landing page
โ”œโ”€โ”€ /concert.html โ†’ Registration (Performer / Donor / Volunteer)
โ”œโ”€โ”€ /admin.html โ†’ Concert admin panel
โ”œโ”€โ”€ /health.html โ†’ Health check
โ”œโ”€โ”€ /school/ โ†’ Music School admin (11 modules)
โ””โ”€โ”€ /docs/ โ†’ Documentation

Databases
โ”œโ”€โ”€ Concert Supabase โ†’ ululnaedwrheymybbzue.supabase.co
โ””โ”€โ”€ School Supabase โ†’ cxsmoquefrxswkyjzzni.supabase.co

Concert System

Key Files

External Services

ServicePurposeKey
SupabaseDatabase + Authululnaedwrheymybbzue
PayPalOnline paymentsClient ID in config.js
ZelleManual payments+1 (404) 915-7991
EmailJSConfirmation emailsservice_toeljfq
Twilio SMSAdmin alerts via Edge FunctionSupabase Edge Function /sms
MailchimpEmail campaignsSupabase Edge Function /mailchimp
FormspreeRegistration backupmjgpbrpw

Concert Database Tables

TableDescription
eventsConcert event definitions (date, venue, capacity per slot)
registrationsAll registrations โ€” performers, donors, volunteers
performersPerformer + piece details linked to a registration
slot_capacityPer-slot capacity tracking (11 AM / 12 PM)
inventoryEquipment and supplies managed in the admin

EmailJS Templates

Music School System

Two Schools

SchoolTypeLocationCurrency
RWM-USFor-ProfitAlpharetta, GAUSD
RWM-PENon-ProfitTrujillo, PeruUSD / PEN

All school tables have a school_id foreign key. The active school is stored in localStorage as rwm_school_id and persists across pages.

School Modules & Pages

PageModuleJS File
school/index.htmlDashboard Analyticsschool-app.js
school/students.htmlStudentsschool-students.js
school/programs.htmlProgramsschool-programs.js
school/staff.htmlStaffschool-staff.js
school/enrollments.htmlEnrollmentsschool-enrollments.js
school/attendance.htmlAttendanceschool-attendance.js
school/gradebook.htmlGradebookschool-gradebook.js
school/billing.htmlBillingschool-billing.js
school/scholarships.htmlScholarships & Donorsschool-scholarships.js
school/inventory.htmlInventoryschool-inventory.js
school/communications.htmlCommunicationsschool-communications.js
school/volunteers.htmlVolunteersschool-volunteers.js

Cross-System Data Flow

When a Donor or Volunteer registers on the concert page and completes their submission, their data is automatically saved to the school Supabase (RWM-PE non-profit):

This uses a secondary Supabase client in concert-init.js with persistSession: false (no auth required โ€” public INSERT policies on both tables).

localStorage Keys

KeySystemPurpose
rwm_sandbox_modeConcertSandbox/Live toggle for concert site
rwm_sms_enabledConcertEnable/disable Twilio SMS notifications
rwm_school_idSchoolCurrently selected school ID
rwm_school_sandboxSchoolSandbox/Live toggle for school admin
rwm_program_orderConcertLocked concert program performer order
rwm_checklistDocsBuild checklist checkbox state

Security Notes