Skip to content

About

Turn a syllabus into a skill tree with XP, levels and boss exams. Full-stack Next.js app with MongoDB, Gemini AI study coach, login and a glass-and-glow UI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Syllabus Quest

Turn a course syllabus into a skill tree. Earn XP for every topic you learn, level up, and unlock boss exams with a live countdown to each deadline. It is gamified planning, not a notes app.

Screenshots

Landing page

Feature cards

Dashboard

Skill tree and boss exams

Features

  • Syllabus to skill tree. Upload a PDF or photo, or paste text. Gemini extracts units, skills, exams and dates.
  • Levels and XP. Skills unlock in order. Every 100 XP is a level.
  • Boss exams. An exam stays locked until every skill in the units it covers is done.
  • Deadline countdowns. Live days, hours, minutes and seconds for each exam.
  • AI study coach. Ask what to study next. The coach sees your progress and upcoming deadlines.
  • Accounts. Register and log in. Each user can only see their own quests.
  • Premium UI. Glass cards, glow, gradients and Framer Motion animations, with hover effects on every card.

Tech stack

Next.js 14 (App Router), React 18, MongoDB with Mongoose, Gemini API, Framer Motion, bcryptjs, jose (JWT).

Getting started

Requirements: Node.js 18.17 or newer, a MongoDB database (a free MongoDB Atlas cluster works) and a Gemini API key from Google AI Studio.

npm install
cp .env.example .env.local   # then fill in the values
npm run dev

Open http://localhost:3000.

Environment variables

Name Description
MONGODB_URI MongoDB connection string
GEMINI_API_KEY Gemini API key (server side only)
GEMINI_MODEL Optional. Defaults to gemini-2.5-flash
JWT_SECRET 32+ random characters. Generate with openssl rand -base64 48

Pages and API

Route Purpose
/ Landing page
/login Log in or create an account
/dashboard The app (login required)
POST /api/auth/register, /login, /logout Authentication
GET /api/auth/me Current user
GET, POST /api/quests List quests, create one from a syllabus
PATCH, DELETE /api/quests/:id Complete a skill or boss, delete a quest
POST /api/ask Study coach

Project structure

app/            pages, layout, styles and API routes
lib/            db connection, Gemini helper, auth helpers
models/         Mongoose models (User, Quest)
middleware.js   protects /dashboard
preview/        standalone demo page, opens without a backend
docs/           screenshots used in this README

Security

  • Passwords are hashed with bcrypt.
  • Sessions are a 7-day JWT in an httpOnly cookie.
  • Middleware blocks /dashboard when logged out.
  • Every quest and AI request is filtered by the logged-in user's id, so users cannot read or change each other's quests.
  • Uploaded syllabus files are sent to Gemini and not stored. Only the generated skill tree is saved.

Not included yet: rate limiting, email verification, password reset and tests. Add rate limiting before deploying publicly.

Preview

preview/index.html is a single file demo of the landing page, login and dashboard. It runs entirely in the browser with sample data, so it uses simple parsing rules instead of Gemini, and its demo accounts are not secure.

Deploy

Deploy to Vercel and add the four environment variables in the project settings. Use a MongoDB Atlas database that allows connections from Vercel.

Roadmap

  • Edit the generated skill tree
  • Boss prep quizzes generated by Gemini
  • Streaks and daily XP
  • Calendar export for deadlines
  • Password reset and email verification

License

MIT, see LICENSE. Built by Manash Khati.

About

Turn a syllabus into a skill tree with XP, levels and boss exams. Full-stack Next.js app with MongoDB, Gemini AI study coach, login and a glass-and-glow UI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages