Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS210 Autograder Dashboard

Instructor-facing dashboard to grade PRs against team PRDs.

Made with Cursor, based on my PRD

What This Includes

  • Team selector for CS210 project repos
  • PRD upload (file or Google Drive link)
  • Overall progress summary
  • P0/P1 recommendations
  • PR summaries timeline (score + summary per PR)
  • Force refresh and nightly backfill actions
  • "Talk to Autograder (Experimental)" panel

Quick Start (Recommended: Docker)

1) Clone and configure env

git clone <your-repo-url>
cd 210_autograder
cp backend/.env.example backend/.env

Edit backend/.env and set at minimum:

  • GITHUB_TOKEN=<token-with-access-to-cs210-private-repos>

Optional for better summaries:

  • OPENROUTER_API_KEY=<your-key> and LLM_PROVIDER=openrouter

2) Run

docker compose up --build

Open:

  • http://127.0.0.1:8000

Docker stores SQLite data in a persistent named volume (autograder_data).

3) Stop

docker compose down

Local Python Run (No Docker)

cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload

Open:

  • http://127.0.0.1:8000

Required Access and Tokens

  • GITHUB_TOKEN is required for most CS210 team repos (private org repos).
  • If force refresh fails with repo access errors, verify token permissions and org authorization.

Recommended token permissions:

  • Private repo read access
  • Pull requests read
  • Contents read
  • Metadata read

LLM Options (Free-Friendly)

Choose one:

  1. OpenRouter free model (easiest)
  • LLM_PROVIDER=openrouter
  • OPENROUTER_API_KEY=<key>
  • OPENROUTER_MODEL=meta-llama/llama-3.1-8b-instruct:free (default)
  1. Local Ollama
  • Install Ollama app
  • Run ollama pull llama3.1
  • Keep Ollama running on http://localhost:11434
  • Set LLM_PROVIDER=ollama

If no LLM is reachable, app falls back to heuristic summaries and shows warning text.

Environment Variables

See backend/.env.example.

Important values:

  • GITHUB_TOKEN
  • MAX_PRS_PER_TEAM (default 40)
  • AUTO_IMPORT_CS210_TEAMS (default true)
  • LLM_PROVIDER (auto, openrouter, ollama, heuristic)
  • OPENROUTER_API_KEY
  • OPENROUTER_MODEL
  • OLLAMA_URL
  • OLLAMA_MODEL

Admin Onboarding (Suggested)

For each new admin:

  1. Pull latest code
  2. Copy env and add their own token
  3. Start with Docker (docker compose up --build)
  4. Open dashboard and click Force Refresh on a team
  5. Confirm summaries populate

Health Check

  • GET /healthz returns {"status":"ok"}

Notes for Contributors

  • Backend: FastAPI + SQLite
  • Main entrypoint: backend/app/main.py
  • Core grading logic: backend/app/services.py
  • GitHub/LLM integrations: backend/app/integrations.py

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages