Technical Reference
Complete technical overview of the Rising with Melodies platform โ two systems, two databases, and how they connect.
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.
concert.html โ Registration form (performer, donor, volunteer)admin.html โ Admin panel with 6 tabssrc/concert-init.js โ Connects form to Supabase, EmailJS, SMS, Mailchimpsrc/db.js โ All concert Supabase queriessrc/admin.js โ Admin panel logicsrc/config.js โ Concert API credentials| Service | Purpose | Key |
|---|---|---|
| Supabase | Database + Auth | ululnaedwrheymybbzue |
| PayPal | Online payments | Client ID in config.js |
| Zelle | Manual payments | +1 (404) 915-7991 |
| EmailJS | Confirmation emails | service_toeljfq |
| Twilio SMS | Admin alerts via Edge Function | Supabase Edge Function /sms |
| Mailchimp | Email campaigns | Supabase Edge Function /mailchimp |
| Formspree | Registration backup | mjgpbrpw |
| Table | Description |
|---|---|
events | Concert event definitions (date, venue, capacity per slot) |
registrations | All registrations โ performers, donors, volunteers |
performers | Performer + piece details linked to a registration |
slot_capacity | Per-slot capacity tracking (11 AM / 12 PM) |
inventory | Equipment and supplies managed in the admin |
template_ir6wkd9 โ Performer confirmation (includes performers list, time slot, amount paid)template_goj792l โ Donor & Volunteer confirmation (registration_type, donation_amount, volunteer_interest)| School | Type | Location | Currency |
|---|---|---|---|
| RWM-US | For-Profit | Alpharetta, GA | USD |
| RWM-PE | Non-Profit | Trujillo, Peru | USD / 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.
| Page | Module | JS File |
|---|---|---|
| school/index.html | Dashboard Analytics | school-app.js |
| school/students.html | Students | school-students.js |
| school/programs.html | Programs | school-programs.js |
| school/staff.html | Staff | school-staff.js |
| school/enrollments.html | Enrollments | school-enrollments.js |
| school/attendance.html | Attendance | school-attendance.js |
| school/gradebook.html | Gradebook | school-gradebook.js |
| school/billing.html | Billing | school-billing.js |
| school/scholarships.html | Scholarships & Donors | school-scholarships.js |
| school/inventory.html | Inventory | school-inventory.js |
| school/communications.html | Communications | school-communications.js |
| school/volunteers.html | Volunteers | school-volunteers.js |
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):
donors table in school DBvolunteers table in school DBThis uses a secondary Supabase client in concert-init.js with persistSession: false (no auth required โ public INSERT policies on both tables).
| Key | System | Purpose |
|---|---|---|
rwm_sandbox_mode | Concert | Sandbox/Live toggle for concert site |
rwm_sms_enabled | Concert | Enable/disable Twilio SMS notifications |
rwm_school_id | School | Currently selected school ID |
rwm_school_sandbox | School | Sandbox/Live toggle for school admin |
rwm_program_order | Concert | Locked concert program performer order |
rwm_checklist | Docs | Build checklist checkbox state |
auth.uid() IS NOT NULL โ admin login requireddonors and volunteers (for concert cross-save) and registrations (concert)schools (for the concert page to find the non-profit school ID)