By: Tony, Sebastian, Gurbaz, Dongyoung
McMaster AI Hackathon 2025 — AI-powered STEM study platform
Learn faster. Score higher. Built for students, by students.
Feature
Description
Priority
🧠 Concept Quiz
AI-generated MCQ quizzes from any topic, notes, or uploaded file
100%
🔍 Solution Walkthrough
Step-by-step problem solutions in plain English
100%
📋 Cheat Sheet Maker
Turn notes or files into organized formula sheets — downloadable as .txt or .md
50%
📅 Daily Review
QotD + daily warm-up quizzes to build your streak
70%
🎯 Adaptive Quizzes
Auto-targets your weak areas
20%
🏆 Leaderboard
Compete with classmates via XP rankings
20%
🔥 Streak System
Daily study streaks + XP rewards
20%
📁 File Upload
Upload .txt, .md, .pdf, .doc, .docx, .ppt, .pptx to any tool
NEW
macai-study-tool/
├── server/
│ ├── index.js # Express server entry point
│ ├── utils/
│ │ └── gemini.js # Gemini AI client
│ └── routes/
│ ├── quiz.js # Quiz generation API
│ ├── cheatsheet.js # Cheat sheet API
│ ├── walkthrough.js # Solution walkthrough API
│ ├── daily.js # Daily review/QotD API
│ └── upload.js # File upload + text extraction API
├── public/
│ ├── index.html # Main HTML shell
│ ├── styles/
│ │ └── main.css # Custom styles
│ └── js/
│ ├── app.js # App initialization
│ ├── state.js # State management + localStorage
│ ├── api.js # API client
│ ├── ui.js # UI utilities + page router + file helpers
│ └── pages/
│ ├── home.js # Dashboard
│ ├── quiz.js # Quiz page
│ ├── walkthrough.js # Walkthrough page
│ ├── cheatsheet.js # Cheat sheet page
│ ├── daily.js # Daily review page
│ ├── leaderboard.js # Leaderboard page
│ └── settings.js # Settings page
├── package.json
├── .env.example
└── README.md
cp .env.example .env
# Edit .env and add your Gemini API key:
# GEMINI_API_KEY=your_key_here
# Development (with auto-reload)
npm run dev
# Production
npm start
Backend: Node.js + Express
AI: Google Gemini 2.5 Flash Lite (free tier)
Frontend: Vanilla JS + Tailwind CSS
Fonts: Syne + DM Sans + DM Mono
Storage: localStorage (client-side)
File Parsing: pdf-parse
Package
Purpose
express
Web server
cors
Cross-origin requests
dotenv
Environment variables
body-parser
Request body parsing
@google/genai
Gemini AI SDK
pdf-parse
PDF text extraction
nodemon
Dev auto-reload
Method
Endpoint
Description
POST
/api/quiz/generate
Generate MCQ quiz
POST
/api/quiz/adaptive
Adaptive quiz for weak areas
POST
/api/cheatsheet/generate
Generate cheat sheet
POST
/api/walkthrough/solve
Step-by-step solution
POST
/api/walkthrough/concepts
Concept dependency map
POST
/api/daily/qotd
Question of the Day
POST
/api/daily/review
Daily review quiz
POST
/api/upload/extract
Extract text from uploaded file
Type
Extension
Method
Plain text
.txt, .md
Browser (instant)
PDF
.pdf
Server-side extraction
Word
.doc, .docx
Server-side extraction
PowerPoint
.ppt, .pptx
Server-side extraction
Max file size: 10MB
Quiz: Paste lecture notes or upload a file for targeted exam-prep questions
Walkthrough: Works best with specific problems (e.g. "Find ∫x²e^x dx")
Cheat Sheet: Upload entire course notes — download as .txt or .md for Notion/Obsidian
Daily Review: Do it every morning to maximize your streak XP
Adaptive Quiz: The more quizzes you take, the smarter it gets about your weaknesses
Action
XP Earned
Correct quiz answer
+25 XP
Perfect quiz score
+50 bonus XP
QotD correct
+100 XP
QotD attempted
+30 XP
Daily review correct
+20 XP each
Generating cheat sheet
+15 XP
Solution walkthrough
+20 XP
Built with ❤️ at McMaster AI Hackathon 2025