A Next.js learning platform that turns YouTube playlists into a guided course experience for students and professors.
YT-Learn-MINSU helps learners follow playlists with structure, progress tracking, quizzes, notes, and certificates. It also includes role-based access for students and professors, plus team features for classroom use.
- Role-based auth with
next-auth(credentials login, optional Google login) - Playlist import from YouTube and structured watch flow
- Progress tracking, streak, resume position, and activity log
- Notes and bookmarks per learning content
- Teams with join code (professor creates teams, students join)
- Playlist quiz flow and quiz analytics
- Certificate generation and download (
/certificate) - Search, public profile, account settings, and admin dashboard pages
- Service worker + offline fallback page
- Next.js 15 (App Router)
- React 18 + TypeScript
- Tailwind CSS + Radix UI
- NextAuth.js
- Local JSON/file storage (
data/*.json) and browserlocalStorage
app/routes and API endpointscomponents/UI and feature componentslib/core logic (auth, storage, youtube, teams, quizzes)data/local JSON data storagepublic/static assets and service workerscripts/project scripts (including quiz prebuild)
- Clone the repo.
- Go to the project folder:
cd Yt-Learn - Install dependencies:
npm install
- Copy environment template and edit values:
copy .env.example .env.local
- Run development server:
npm run dev
- Open
http://localhost:3000.
Required:
NEXTAUTH_URL(example:http://localhost:3000)NEXTAUTH_SECRET(long random secret)NEXT_PUBLIC_YOUTUBE_API_KEY
Optional:
ENABLE_GOOGLE_AUTH=true(enable Google provider)GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
npm run devstart dev servernpm run buildcreate production buildnpm run startrun production servernpm run lintrun lint checksnpm run quizzes:prebuildgeneratedata/playlist-quizzes.jsonfrom global playlists
- User accounts are stored in
data/users.json. - Team data is stored in
data/teams.json. - Learning progress and notes are stored in browser
localStorage. - API routes are under
app/api/*.
MIT (LICENSE).
Built and customized for the YT-Learn-MINSU project by TheKanjiTV.