Cram.ai — Turn Notes Into Levels

Inspiration

Turn messy PDFs/notes into playable practice so studying feels like clearing levels, not grinding pages.

What it does

  • Upload PDF/TXT → auto topic roadmap (levels)
  • Per-node MCQs with hints + adaptive difficulty
  • XP/coins rewards; shop for hints/perks
  • Progress tracking and auto-advance

How we built it

Stack: Node.js/Express, MongoDB/Mongoose, React
Backend: JWT cookie auth; courses/notes CRUD; PDF/TXT ingestion; roadmap builder; quiz engine (per-node difficulty); progress; shop; rate-limit + error handling
Frontend: retro, responsive flow → Login → Course → Upload → Build → Play → Shop

Key flows:

  • Notes pipeline: extract → Note → link to Course
  • Roadmap: lightweight topic extraction → nodes + start location
  • Game loop: answer → award XP/coins → adapt difficulty → update location

Challenges

  • Noisy/scanned PDF parsing
  • Tracking game state with stateless requests
  • Cheat-resistance (answers server-side)
  • Syncing roadmap, progress, and rewards

Accomplishments

  • End-to-end upload → roadmap → quiz → rewards → shop on real notes
  • Adaptive difficulty with smooth progression
  • Clean API surface: /courses, /notes, /roadmap, /nodes/*, /progress, /shop

What we learned

  • UX speed matters as much as accuracy
  • Lightweight topic extraction is enough for an MVP
  • Hackathon shortcuts need a production hardening plan

What’s next

  • Plug real LLMs (OpenRouter/Gemini) + grounded distractors
  • Spaced repetition & mastery paths (boss levels)
  • Topic embedding graph across courses
  • Better ingestion (OCR/layout anchors to sources)
  • Leaderboards/streaks/cosmetics; richer shop
  • Production: password hashing, persistent game state, multi-tenant scaling
Share this project:

Updates

Submission history