Inspiration
Grade deflation in CS and Engineering courses render the average grade calculator useless. It's not fun to spend more time thinking about how cooked you've gotten this semester by re-reading the syllabus, stalking the edDiscussion exam statistics, and calculating what you need to get on the final (that may have an average of 40%).
What it does
Upload your syllabus (or input course info) and enter your grades. Students can report midterm or homework result distributions live during the semester. The logic is deterministic and will predict a potential curve using llm logic and previous course data that was requested by BoilerGrades.
How we built it
- Frontent - React + Framer
- Backend - FastAPI, SQLite + Claude API
- Data - SQLite for course data, Selenium for web scraping MyPurdue course catalog
Challenges we ran into
- PDF Syllabi variance - one specific one used a graph instead of text or a table for grade weightings, this was not able to be parsed initially.
- Prediction honesty - I added the llm wrapper to be transparent about prediction decisions.
- Rate limiting - I didn't want someone to steal my api tokens so I spent quite a bit of time limiting expensive routes which I've never done before.
Accomplishments that we're proud of
- I think the concept is pretty well thought out, if this project was to be taken super seriously, the base of it could remain over time.
What we learned
- The difference between free LLMs and paid is pretty extreme, even with hyper specific prompts.
What's next for BoilerGPA
- The idea has grown on me while working on it, it is not in a deployable state right now, but incorporating more features and adding real prediction models would be nice.
Built With
- anthropic-claude-api-(haiku)
- boilergrades
- distribution
- fastapi
- framer-motion
- grade
- httpx
- javascript
- public
- purdue-odata-api-(api.purdue.io)
- pymupdf
- python
- python-dotenv
- react-18
- selenium
- slowapi
- sqlite
- uvicorn
- webdriver-manager
Log in or sign up for Devpost to join the conversation.