Thank you to Luke Tervit for the prompt engineering in this project!
Calculate your University of Edinburgh honours degree classification in seconds.
# 1. Clone and install
git clone https://github.com/thecampel/grade-calc.git
cd grade-calc
npm install
# 2. Add your OpenAI API key (needed for transcript import)
cp .env.example .env
# Edit .env and add your key
# 3. Run
npm startThen open http://localhost:3000
- Log into EUCLID -> My Student Record -> Assessment & Progression -> Select Year 3 or Year 4
- Press Cmd/Ctrl + P to save as PDF
- Drop the file into the "Import Transcript" tab (after you have setup your API key)
- The AI extracts your modules, credits, and marks
The transcript import feature uses AI to parse your EUCLID export. You need an OpenAI API key.
- Open the app in your browser
- Go to Import tab
- Click "Set API Key" when prompted
- Paste your key - it's saved to
.envautomatically
cp .env.example .envThen edit .env:
OPENAI_API_KEY=sk-your-key-here
- Go to platform.openai.com/api-keys
- Create new secret key
- Copy it (you won't see it again)
| Feature | Description |
|---|---|
| Manual Entry | Add modules, credits, and marks |
| Transcript Import | Upload EUCLID PDF → auto-extract grades |
| What-If Calculator | "What do I need to get a First?" |
| Multiple Profiles | Track different scenarios or compare with friends |
Your final grade = (Year 3 × 50%) + (Year 4 × 50%)
| Classification | Grade |
|---|---|
| First Class | 70%+ |
| Upper Second (2:1) | 60-69% |
| Lower Second (2:2) | 50-59% |
| Third Class | 40-49% |
- Keyboard shortcuts: Press
1-4to switch views,Cmd/Ctrl+Sto save - Predicted vs Confirmed: Toggle status to mark grades as confirmed or predicted
- Compare profiles: Create multiple profiles to model different scenarios
- Express.js backend
- Vanilla JS frontend
- OpenAI GPT-4o for transcript parsing
- Local storage + JSON file persistence
MIT - do whatever you want with it.