Mountain Madness 2026
SaveMyGrade helps students discover lower-difficulty courses by combining:
- class average/performance data
- professor quality data (RateMyProfessor)
- query-based recommendations from an LLM-backed backend
The frontend lives in frontend/ and is already wired to call:
POST /api/recommendations
When running locally, Vite proxies /api/* to http://localhost:5050 by default, so your Flask backend should run there during development.
- Install dependencies:
cd frontend
npm install- Start the React dev server:
npm run dev- Open the app:
http://localhost:5173
Clone the repo
sudo docker build -t savemygrade .
sudo docker run --rm -p 5050:5050 -p 3069:5173 -e GEMINI_API_KEY="INSERT GEMINI API KEY HERE" savemygradeNavigate to http://localhost:3069
Create your local env file:
cp .env.example .envThen update .env with your real secrets, especially:
GOOGLE_API_KEY
Important:
.envis git-ignored and should never be committed..env.exampleis safe to commit and contains placeholders only.
- Python / Flask backend
- React frontend (JavaScript)
- Docker
- RateMyProfessor Database API: https://pypi.org/project/RateMyProfessor-Database-APIs/ SaveMyGrade is a project built to help SFU students discover courses that are more likely to be manageable and grade-friendly for their program goals.
Choosing courses can feel like guesswork. Students often rely on scattered opinions, outdated advice, or word of mouth when trying to balance GPA and workload.
SaveMyGrade combines student review signals and AI-assisted analysis to surface courses that appear easier to succeed in.
At a high level, the platform will:
- Collect professor review data from RateMyProfessors.
- Identify which courses those reviews refer to.
- Estimate course difficulty and effort level.
- Highlight classes that are likely to be lower effort with stronger grade outcomes.
- Course difficulty insights based on professor-linked review data.
- Class discovery for students who want GPA-friendly options.
- AI filtering of reviews into:
- Low-effort signal
- High-effort signal
- Program-focused course recommendations for SFU students.
We use AI to classify review text quality and effort signals, helping separate reviews that suggest:
- a class is manageable with reasonable effort
- a class demands heavy workload or has high complexity
This improves recommendation quality by reducing noise in raw review data.
- SFU students planning future semesters
- Students optimizing for workload + GPA balance
- Students comparing multiple electives or program requirements
This project is in active development. The initial focus is:
- Data collection and cleaning
- Review-to-course mapping
- AI-based review classification
- Ranking logic for “easy class” recommendations
- Build data ingestion pipeline for professor/course review sources.
- Train/tune effort-classification model for review text.
- Develop scoring system for course difficulty and grade-friendliness.
- Build UI for searching and filtering by program.
- Add transparency metrics so users can understand why a class is recommended.
SaveMyGrade provides guidance, not guarantees. Course experience varies by instructor, semester, and student learning style.
Built at Mountain Madness 2026.