🎵 Cadence
Cadence
A lesson continuity and practice management platform for Suzuki music teachers and parents — replacing scattered notes, manual scheduling, and guesswork with structured workflows.
🎻 Teacher View — studio management
👨👩👦 Parent View — practice guidance
24
Database tables with RLS
12
Technique skills tracked
3
Roles: Teacher · Parent · Admin
Part 1
Teacher View
Teachers manage their studio from a mobile-first interface. Each student has four tabs: Lessons, Pieces, Skills, and Schedule. The goal: reduce admin time so teachers can focus on teaching.
📋
Students list
All students
→
📝
Lesson notes
Per session
→
📅
Schedule
Seasonal calendar
Gump
Violin
Suzuki B1
Invited · 38 lessons · no log this wk
Forrest
Violin
Suzuki B1
Invited · 7 lessons · no log this wk
Sara Chen
Violin
Suzuki B2
Invited · 15 lessons · no log this wk
1
Student cards — show instrument, Suzuki level, lesson count, and next lesson date at a glance.
2
Color-coded left border — indicates student status. Green = active and linked to parent account.
Student Detail — Lessons Tab
Students > Gump > Lessons
Violin
Suzuki B1
Age 5
Notes · 10 ›
Parent access
Linked parent: Gump Parent (lvltcode+parent@gmail.com)
Lessons
Pieces
Skills
Schedule
+ New Lesson Note
Lesson History
10 notes
1
Continuous lesson record — each lesson links to specific pieces covered, building a longitudinal learning history.
2
Parent access — shows the linked parent account that can view practice guidance and progress. RLS-enforced.
Student Detail — Pieces Tab
Students > Gump > Pieces
Violin
Suzuki B1
Age 5
Notes · 10 ›
Lessons
Pieces
Skills
Schedule
Twinkle, Twinkle, Little Star Variations
Shinichi Suzuki
+6Polished
Song of the Wind
Traditional
+0Not started
Go Tell Aunt Rhody
Traditional
+2Not started
O Come, Little Children
Traditional
+0Not started
1
Practice count (+N) — tracked automatically from lesson notes. +6 means the piece was practiced 6 times across lessons.
2
Status progression — Not started → Working → Polished. Teachers update with one tap during or after a lesson.
Student Detail — Skills Tab
Students > Gump > Skills
Violin
Suzuki B1
Age 5
Notes · 10 ›
Lessons
Pieces
Skills
Schedule
+4 = 4 practice times
Skill level:
Untouched
Early
Developing
Independent
Retained
Tap a skill to change its level
🎻 Setup & Playing Position
Violin Position +1
Bow Hold +2
🏹 Bowing Foundations
Bow Lane +4
Straight Bowing +1
Direction Changes +1
String Changes +0
🤚 Left Hand Foundations
Hand Shape +4
Finger Patterns +2
🎵 Rhythm & Recall
Twinkle Rhythms +2
Piece Memory +1
1
Suzuki-specific skills — not generic music skills. Categories mapped to violin pedagogy fundamentals.
2
Practice count (+N) — accumulates across lessons, giving teachers a longitudinal view of technique development.
3
One-touch assessment — tap any skill chip to change its level during or after a lesson.
Student Detail — Schedule Tab
Students > Gump > Schedule
Violin
Suzuki B1
Age 5
Notes · 10 ›
Lessons
Pieces
Skills
Schedule
Gump's classes
WINTER 2026 Click on a date to see details
1
Seasonal calendar — shows the full lesson year at a glance. Green = completed, red = cancelled/rescheduled, yellow = today.
2
Auto-generated dates — lesson dates computed from recurrence settings. No manual entry needed — just set day, time, and frequency.
Part 2
Parent View
Parents see what matters: what to practice this week, how their child is progressing, and upcoming events. No lesson notes, no admin. Just clear guidance designed for parents who aren't musicians.
Your Kids > Gump · 🎵 Violin Book 1
Practice
Progress
Schedule
Practice Goal This Week
1 day × 15 mins
📖 Last Lesson · Apr 25, 2026
Log practice
Practice skills worked on
🏹 Bow Lane
🤚 Hand Shape
🎵 Twinkle Rhythms
Parent support: Listen together
1
Practice goal — set by the teacher. Parents just see the target — no guesswork about what to do this week.
2
Skill chips — match what the teacher assigned. Parents know exactly what to focus on during practice sessions.
3
Parent support tip — gives non-musician parents a concrete action: "Listen together."
Your Kids > Gump · 🎵 Violin Book 1
Practice
Progress
Schedule
Achievements ✓ (1)
Twinkle, Twinkle, Little Star Variations
Shinichi Suzuki
Polished Apr 2026
+6
Posture
Retained Apr 2026
Pieces
1 Working
·
1 Can Play
Lightly Row
Traditional · Started Apr 2026
+5
Song of the Wind
Traditional · Started Apr 2026
+0
Skills
Early
Developing
Independent
🎻 Setup & Playing Position
Bow Hold
Violin Position
🏹 Bowing Foundations
Bow Lane
Direction Changes
Straight Bowing
String Changes
1
Read-only progress — parents see achievements and progress without editing access. Teacher assessments only.
2
Piece status — gives parents a clear sense of where their child is in the Suzuki repertoire.
Events
Recitals and studio calendar updates.
Forrest
Gump
Sara
Upcoming
Spring Recital 2026
May 15, 2026 · 10:00 AM
📅 Add to Cal
Performing: Twinkle, Twinkle, Little Star Variations
Confirmed
✓ I'll be there
✗ Can't make it
1
Per-child RSVP — parents RSVP per child. Teachers see confirmed attendance before the event.
2
Auto-populated piece — performing piece is pulled from the student's Polished repertoire. No manual entry.
Part 3
Admin View
Super admins manage the entire platform: approve teachers, link parents to students, monitor data quality, and reassign students between studios. Desktop-first dashboard with full CRUD access across all tables — enforced via RLS super_admin policies.
cadence-osa.com/admin/dashboard
📊 Dashboard
🎻 Teachers
👤 Students
👨👩👦 Parents
Dashboard
⏳ Pending Teacher Approvals
Sarah K. · violin · applied May 6
ApproveReview
🔍 Data Quality Alerts
⚠ 2 students without parent links
⚠ 1 parent without student links
📋 Recent Activity
Student Gump added by Teacher A · 2d ago
Parent linked to Forrest · 3d ago
Teacher Sarah K. registered · 4d ago
!
Pending approvals — new teachers register but require admin approval before accessing the platform. Status: pending → active.
1
Data quality alerts — surfaces orphan records: students without parents, parents without students. Prevents broken access chains.
2
Activity feed — timestamped log of system-wide actions. Admin sees everything without querying individual tables.
cadence-osa.com/admin/teachers
All
Active
Pending
Inactive
| Name |
Email |
Instrument |
Students |
Status |
Actions |
| Teacher A |
teacher.a@example.com |
Violin |
3 |
Active |
View |
| Teacher B |
teacher.b@example.com |
Violin |
5 |
Active |
View |
| Sarah K. |
sarah.k@example.com |
Violin |
0 |
Pending |
Approve |
1
Teacher lifecycle — register → pending → admin approval → active. Deactivation available for offboarding.
2
Student assignment — admin can reassign students between teachers, link parents by email, and manage the full org graph.
👤
Student management
Create, edit, reassign students between teachers. Bulk view across the entire organization — not scoped to a single teacher's studio.
👨👩👦
Parent management
Link parents to students by email. Send invites, track acceptance. Surface orphan parents without student links and students without parent links.
🔐
RLS super_admin policies
All 24 tables have a dedicated super_admin_full_access policy. Admin bypasses teacher/parent scoping but still goes through Postgres RLS — not application-level checks.
📧
Invite system
Token-based parent invites via Supabase Edge Function + Resend API. Teachers send invites; parents accept via magic link. Token-verified, expiry-enforced.
Architecture
Architecture
Show detailsHide details⌄
Data model
organizations
↓
profiles (teacher / parent / super_admin)
↓
teachers → students → lessons → lesson_notes
↓ ↓ ↓
student_parents schedule lesson_note_piece_assignments
↓ _blocks ↓
parents piece_progress → pieces → books
↓ ↓
practice_logs piece_sections
skills → skill_groups → student_skill_states
↓
student_skill_history (audit)
events → event_students (RSVP)
invites (token-based parent linking)
pilot_feedback
Key technical decisions
| Decision | Detail |
| Supabase RLS (24 tables) | Teacher sees only their students. Parent sees only their children. Admin has super_admin_full_access policies on all tables. Enforced at DB level — not app code. |
| Magic link auth | No passwords stored. Email OTP sign-in for teachers and parents. Token-based invite system for parent onboarding. |
| Suzuki curriculum data | 10 Suzuki books, 17 Book 1 pieces (with Twinkle sections), 12 technique skills across 4 skill groups — all seeded in database, not hardcoded. |
| Seasonal scheduling | Lesson dates auto-generated from schedule_blocks recurrence rules. Calendar view computed at render — not stored as rows. |
| Skill progression engine | 5-level state machine (untouched → early → developing → independent → retained) with full audit trail via student_skill_history. RPC functions handle tap-to-advance logic. |
| Parent-safe views | 3 Postgres views filter lesson notes and progress to parent-visible fields only. Parents never see teacher observations or private notes. |
| Parent access linking | Token-based invite flow: teacher sends invite → Edge Function emails parent → parent accepts → RPC creates student_parents link → RLS grants read access. |
| Edge Function (email) | Supabase Edge Function sends branded invite emails via Resend API. CORS-protected, idempotent, token-verified. |
Row-Level Security: each role sees only their own data
🔒 Their students only
🔒 Their lessons + notes
🔒 Their schedule
🔒 Skill assessments
🔒 Linked children only
🔒 Practice view (read-only)
🔒 Progress view (read-only)
Cannot see other families — ever
| Control | Layer | Status |
| Row-Level Security on all tables Supabase Postgres |
Database |
✓ |
| Magic link auth (no passwords) Supabase Auth |
Auth |
✓ |
| Role-based routing (teacher/parent/admin) App layer |
App |
✓ |
| Parent can only view linked children Database RLS + parent_safe views |
Database (RLS) |
✓ |
| Super admin policies on all 24 tables Supabase Postgres |
Database |
✓ |
| Token-based invite system Edge Function + RPC |
Auth + Database |
✓ |
| Skill audit trail (append-only) student_skill_history |
Database |
✓ |
| PIPEDA-compliant data minimization Policy |
Policy |
✓ |