How letra4107-web/linaw-web works
LinawLetra is a Filipino reading-support web platform linking student learning to family, teacher, and administrator tools. The main learner journey is role-authenticated entry into student pages, where students practice and assess reading; progress, streaks, XP, and badges support continued learning. Teachers manage students and PDF drills, including review before publication, while parents view child settings and progress and administrators manage accounts and operations. The browser uses Supabase Auth and an Express API backed by Supabase. The README documents additional capabilities whose internal wiring is not shown in the sampled source.
Main entry points: App.tsx App router · api.ts API client · AuthContext.tsx Auth and role · StudentArea.tsx Student routes
Components 25
Browser application
- App router
src/App.tsx - Auth and role
src/lib/auth/AuthContext.tsx - API client
src/lib/api.ts - Notifications
src/lib/useNotifications.ts
Student learning
- Student routes
src/routes/StudentArea.tsx - Learning pages
src/pages/student - Practice tools
src/components
Family and teaching
- Teacher routes
src/routes/TeacherArea.tsx - Teacher tools
src/pages/teacher - PDF drill review
src/components/teacher/PdfDrillReview.tsx - Parent routes
src/routes/ParentArea.tsx - Parent tools
src/pages/parent - Admin routes
src/routes/AdminArea.tsx - Admin tools
src/pages/admin
API and services
- Express API
server/server.js - Role API routes
server/routes - TTS endpoint
server/routes/tts.js
External platform
- Supabase client
src/lib/supabaseClient.ts - Supabase services
- Browser speech
- ElevenLabs TTS
Other components
- Student
- Teacher
- Parent
- Administrator
Connections 30
- Student → App router: opens app
- Teacher → App router: opens app
- Parent → App router: opens app
- Administrator → App router: opens app
- App router → Student routes: routes
- App router → Teacher routes: routes
- App router → Parent routes: routes
- App router → Admin routes: routes
- Student routes → Learning pages: renders
- Learning pages → Practice tools: uses
- Student routes → Auth and role: checks identity
- Teacher routes → Teacher tools: renders
- Teacher tools → PDF drill review: uses
- Parent routes → Parent tools: renders
- Admin routes → Admin tools: renders
- Auth and role → Supabase client: authenticates
- Auth and role → API client: posts login event
- Notifications → API client: fetches and updates
- Notifications → Supabase client: subscribes to changes
- Learning pages → API client: requests data
- Teacher tools → API client: requests data
- Parent tools → API client: requests data
- Admin tools → API client: requests data
- PDF drill review → API client: saves and publishes
- API client → Express API: sends requests
- Express API → Role API routes: dispatches
- Role API routes → Supabase services: reads and writes
- TTS endpoint → ElevenLabs TTS: requests speech
- Practice tools → Browser speech: uses recognition
- Supabase client → Supabase services: connects