Platform Plan
End-to-end plan for launching virtual English language instruction โ connecting U.S. volunteer instructors with youth learners in Trujillo, Peru, integrated into the existing Rising with Melodies school platform.
โ Update โ July 2026: Teacher-usable version shipped
The plan below was written before any of this was built, and the actual implementation took a faster, narrower path than originally scoped โ built to get a real teacher live as quickly as possible, with the student-facing side deferred rather than built up front. What actually shipped:
esl_students, esl_sessions, esl_attendance โ same conventions as the rest of the schema, RLS matching the existing blanket auth.uid() IS NOT NULL pattern (see supabase-esl-migration.sql)school/admin.html (src/school-esl.js) โ student list, add/edit, and one combined "Manage" modal covering instructor assignment, Meet link, schedule, and attendance logging (simpler than the originally planned separate sub-sections)users.role column now actually gets read on login, and a role = 'teacher' account sees a sidebar scoped to just ESL Classes + Security instead of the full admin panelThe phase content below is kept for reference โ Phases 3โ4 are still the right shape for what's deferred, they just haven't started.
| Layer | What | Status |
|---|---|---|
| Hosting | Porkbun static hosting โ no server changes needed | Live |
| Database | Supabase school project โ new esl_students and esl_sessions tables |
To Build |
| Video | Google Meet โ instructors create recurring links, stored in Supabase | No Build |
| Admin Panel | New ESL section in school/admin.html โ manage students, pairings, notes |
To Build |
| Student Portal | PIN login at school/portal.html โ student sees instructor, schedule, Join button |
To Build |
| Auth | Student PIN stored hashed in Supabase โ no email required | To Build |
| Notifications | Manual email outreach to start โ Mailchimp/Twilio integration in Phase 4 | Phase 4 |
esl_students table DBesl_sessions table DBesl_attendance table DBsrc/school-db.js DBesl. Data-section attribute pattern matches existing sidebar items.src/school-esl.js โ all ESL admin logic UI