Production-focused LMS built with Next.js 14 + Supabase for Sri Lankan tuition workflows.
- Next.js 14 (App Router + TypeScript)
- Tailwind CSS with Light/Dark mode (
darkclass strategy) - Supabase (PostgreSQL, Auth, Storage)
- PayHere (sandbox + live)
- YouTube unlisted secure proxy playback
- XLSX upload for marks
- Notify.lk SMS hook support
- Zoom server integration endpoint
- Copy env file:
cp .env.example .env.local
- Fill all env vars.
- Install and run:
npm install npm run dev
Apply SQL:
# in Supabase SQL editor
# paste db/schema.sqlyoutube_video_idonly (never full URL) in database./api/lesson/[id]validates auth + paid enrollment before returning video ID.- Service key used server-side only.
- Payment callback signature verification.
- Role-targeted RLS policies.
- Push repo to GitHub.
- Import into Vercel.
- Add environment variables from
.env.example. - Deploy.
- Admin:
/admin/dashboard,/admin/courses,/admin/marks/upload, etc. - Student:
/dashboard,/classroom/[courseId],/exams,/marks,/payment - Parent:
/parent/dashboard