Project Overview

Doc Status: Good | ✓ Clear summary | ✓ Easy to read | ✓ Matches code | ✓ Good structure | ✓ Professional look | ✓ Visual components

What is WonderSound?

WonderSound is a music education platform in Vietnam, offering:
  • Courses — Piano, Guitar, Vocal, Drum courses for all ages and levels
  • Student Management — Enrollment, attendance tracking, scheduling
  • Practice Tools — Metronome, Tuner web apps
  • Marketing — Public website with course listings and enrollment forms (phiếu)

Target Users

User TypeDescription
StudentsMusic learners; access course content and tools
ParentsParents of student learners; receive updates
Admin StaffInternal staff managing enrollment and operations
MarketingManaging website content via Sanity CMS

Key Apps

AppDescriptionAuth Required
apps/website/Next.js 16, public marketing site (no auth)No
apps/admin/Next.js, internal staff dashboardYes
apps/mobile/Expo + Expo Router + NativeWind, student mobile appYes
apps/lark-sync/CF Worker (Hono), Lark webhook entry pointWebhook secret
apps/meta-conversions-worker/CF Worker (Hono), Meta CAPI webhook entry pointWebhook secret

Key Packages

PackageDescription
packages/backend/Convex schema + functions (shared by admin + mobile)
packages/ui/Shared shadcn/ui components

Data Surfaces

SurfaceAuthorityTool
App dataConvexuseQuery / useMutation
External APIsThird-partyVendor SDK / fetch from Convex action
Marketing contentSanitySanity CDN

Auth

Convex Auth (@convex-dev/auth) replaced Clerk on 2026-05-08. It runs inside the Convex deployment — no third-party JWT issuer.
AppProvider
AdminConvexAuthNextjsProvider
MobileConvexAuthProvider + expo-secure-store
WebsitePublic (no auth)
WebhooksShared secret (not Convex Auth)

Directory Structure