How ycnekkkkkk/web-glocalielts works
This is a multi-role IELTS learning and academy-management application: public course discovery and practice sit alongside student learning, teacher tools, and administrative/organization operations. A distinct mock-skill exam lifecycle covers exam content, browser-side drafts and speaking audio, submission, automated Listening/Reading scoring, Drive storage, and staff grading with Gemini. The sampled enrollment hook also creates invoices directly in Supabase. The README is only the Next.js starter README; unsampled pages are represented as capabilities from the tree, without asserting their internal wiring.
Main entry points: submit/route.ts Exam submission · server.ts Supabase services · grade/route.ts Staff grading · create-student-account/route.ts Student account setup
Components 22
Learning
- Public discovery
app/(public)/courses/page.tsx - Course learning
app/(public)/courses/[slug]/learn/page.tsx - Student workspace
app/(student)/student/dashboard/page.tsx - Course purchase requests
app/api/student/course-requests/route.ts
Academy Operations
- Administration
app/(admin)/admin/dashboard/page.tsx - Student account setup
app/api/admin/create-student-account/route.ts - Academic management
app/(academic-manager)/academic-manager/classes/page.tsx - Teacher workspace
app/(teacher)/teacher/dashboard/page.tsx - Organization workspace
app/(organization)/organization/dashboard/page.tsx - Class enrollment
hooks/useEnrollments.ts
Mock Skill Exams
- Mock exam experience
app/(public)/thi-thu/[slug]/page.tsx - Local exam drafts
lib/mock-skill/storage-indexeddb.ts - Exam submission
app/api/mock-skill/submit/route.ts - Exam content resolution
lib/mock-skill/resolve-content.ts - Listening/reading scoring
lib/mock-skill/score.ts - Band conversion
lib/mock-skill/band-mapping.ts - Staff grading
app/api/admin/mock-skill-submissions/[id]/grade/route.ts - Gemini scoring
lib/gemini/score-writing.ts
Platform Services
- Google Drive
lib/google/drive.ts - Supabase services
lib/supabase/server.ts - Browser IndexedDB
lib/mock-skill/storage-indexeddb.ts
Other components
- Learner / visitor
Connections 17
- Learner / visitor → Public discovery: browses
- Learner / visitor → Mock exam experience: takes exam
- Learner / visitor → Course learning: learns
- Mock exam experience → Local exam drafts: saves drafts
- Local exam drafts → Browser IndexedDB: reads/writes
- Exam submission → Exam content resolution: resolves content
- Exam submission → Listening/reading scoring: scores answers
- Exam submission → Band conversion: converts scores
- Exam submission → Supabase services: stores submission
- Exam submission → Google Drive: uploads artifacts
- Staff grading → Supabase services: loads and updates
- Staff grading → Gemini scoring: requests grading
- Staff grading → Google Drive: reads audio
- Administration → Student account setup: manages accounts
- Student account setup → Supabase services: creates and links
- Class enrollment → Supabase services: reads and writes
- Course purchase requests → Supabase services: reads and writes