How nijo918/nijo_online works
Nijo Learn is a self-paced course platform: learners browse a catalog, enroll, complete lessons and quizzes, track progress, and access completion certificates; administrators manage course content and publishing. Next.js routes present these journeys, feature actions and data modules implement them, and Supabase provides authentication and persistent state. The README also documents OTP verification, password recovery, profile settings, and catalog-only preview without backend configuration. Edges are limited to relationships shown in excerpts, the source index, or README; unsampled route internals are not assumed.
Main entry points: server.ts Supabase client · data.ts Course data · admin/actions.ts Admin actions · learning/actions.ts Learning actions
Components 23
Learner experience
- Home
src/app/page.tsx - Course catalog
src/app/courses/page.tsx - Course details
src/app/courses/[slug]/page.tsx - Learning dashboard
src/app/dashboard/page.tsx
Identity and access
- Auth screens
src/app/auth/[screen]/page.tsx - Auth actions
src/features/auth/actions.ts
Course administration
- Admin routes
src/app/admin - Course editor
src/features/admin/editor.tsx - Admin actions
src/features/admin/actions.ts
Learning and credentials
- Learning routes
src/app/learn/[enrollment] - Learning actions
src/features/learning/actions.ts - Progress data
src/features/learning/data.ts - Certificate routes
src/app/certificates/[id] - Certificate data
src/features/certificates/data.ts - Certificate PDF
src/features/certificates/pdf.ts
Application services
- Auth and access
src/lib/auth.ts - Course data
src/features/courses/data.ts - Preview catalog
src/features/courses/demo.ts - Supabase client
src/lib/supabase/server.ts - Supabase Auth and PostgreSQL
- Validation rules
src/lib/rules.ts
Other components
- Learner
- Administrator
Connections 30
- Learner → Home: opens
README.md - Learner → Course catalog: browses
README.md - Learner → Auth screens: signs in
README.md - Administrator → Admin routes: manages courses
README.md - Course catalog → Course data: loads catalog
src/app/courses/page.tsx - Home → Course data: loads courses
src/app/page.tsx - Course details → Course data: loads course
src/app/courses/[slug]/page.tsx - Learning dashboard → Auth and access: requires user
src/app/dashboard/page.tsx - Learning dashboard → Course data: loads course data
src/app/dashboard/page.tsx - Course data → Preview catalog: uses preview
src/features/courses/data.ts - Course data → Supabase client: queries
src/features/courses/data.ts - Auth screens → Auth actions: submits forms
src/app/auth/[screen]/page.tsx - Auth actions → Supabase client: performs auth
src/features/auth/actions.ts - Auth and access → Supabase client: checks session
src/lib/auth.ts - Auth actions → Validation rules: validates input
src/features/auth/actions.ts - Course details → Learning actions: starts enrollment
src/app/courses/[slug]/page.tsx - Learning routes → Learning actions: records progress
src/app/learn/[enrollment]/quizzes/[assessment]/page.tsx - Learning routes → Progress data: loads learning state
src/app/learn/[enrollment]/quizzes/[assessment]/page.tsx - Learning actions → Auth and access: requires user
src/features/learning/actions.ts - Learning actions → Supabase client: updates progress
src/features/learning/actions.ts - Progress data → Supabase client: reads progress
src/features/learning/data.ts - Admin routes → Course editor: edits courses
src/app/admin/courses/[id]/page.tsx - Course editor → Admin actions: saves draft
src/features/admin/editor.tsx - Admin actions → Auth and access: requires admin
src/features/admin/actions.ts - Admin actions → Supabase client: runs admin RPC
src/features/admin/actions.ts - Admin actions → Validation rules: validates identifiers
src/features/admin/actions.ts - Certificate routes → Certificate data: loads certificate
src/app/certificates/[id]/page.tsx - Certificate routes → Certificate PDF: renders download
src/app/certificates/[id]/download/route.ts - Certificate data → Supabase client: loads records
src/features/certificates/data.ts - Supabase client → Supabase Auth and PostgreSQL: connects
src/lib/supabase/server.ts