hackGrader
README
HackGrader
Hackathon devpost webscraper and code grader/checker pipeline. This aims to check for AI usage, code correctness, format and other parameters that will be used to create an additional metric towards participants scores.
Getting Started
Prerequisites
The project spins up and hosts a model locally for the analysis phase. HackGrader uses a custom model trained off AI generated code to better predict such code in given hackathon repositories. Although the project primarily uses the model, it will work with a base qwen coder model. ollama, regardless, is a necessary requirement. Additionally, you will need either uv or pip to install packages for the scraper. The core hackGrader code is built around python versions >=3.14, while the model code works on python version 3.12.
Installation
Pull the code locally
bash# clone the repo
git clone https://github.com/Google-Developers-Student-Club-LSU/HackGrader.git
# cd into the project
cd hackGraderFollow steps in model.md or Install a qwen coder model
bash# pull in the qwen 2.5, 7b parameter model
ollama pull qwen2.5-coder:7b
# pull in the qwen 3, 30b parameter model
ollama pull qwen3-coder:30bPython pip
Create your virtual environment
bash# Windows 10/11
python -m venv .venv
# Linux/MacOS
python3 -m venv .venvSource into your virtual environment
bash# Windows 10/11
. .venv/bin/activate.ps1
# Linux/MacOS
source .venv/bin/activateInstall the packages
bashpip install -r requirements.txt
UV
Create the virtual environment
bashuv init
install the packages
bashuv syncRunning
Run the pipeline with and pass in a devpost url as an argument for the script
bash# standard run
python src/hackGrader/__init__.py https://example.devpost.com
# uv run
uv run hackgrader https://example.devpost.comTesting
Testing the crawling, scoring, or entire pipeline can be done entirely through the test scripts.
The following flags may be used to test various components.
- -c : devpost crawling testing
- -s : llm scoring testing
If no flags are provided, then the entire pipeline will be tested.
bash# example script execution
./run_test -cGenerating a Report
A PDF report can be generated once the core scoring pipeline has completed and output a .json file.
shuv run src/format.py