Personal tool · Python, Next.js, Postgres, Claude

Boiler Tracker

Purdue's Brightspace has no student API. I found one anyway, then built the tracker on top of it: every assignment, quiz, and grade in one place, ranked by an AI that also writes me a briefing on what each task actually is.

Boiler Tracker dashboard: a priority-ranked list of upcoming assignments beside an AI-generated week plan
Every item is a real assignment pulled from Brightspace. The left number is an AI priority score; the panel on the right is a work plan for the week.

Problem

Coursework for eight courses lived behind Brightspace's click-through UI, with no way to see everything due at once — and D2L doesn't hand students API access.

Decision

Reach the D2L Valence API through my own authenticated browser session, sync it to Postgres every two hours, and let Claude rank the backlog and brief each task.

Result

One dashboard that ranks assignments by urgency and grade weight, estimates effort, tracks what's submitted, and explains what each assignment is asking for.

An assignment detail page with an AI briefing explaining what the task is, how it connects to the course, and a suggested approach
Click any assignment for a briefing: what it is, how it connects to the rest of the course, and a suggested approach — generated from the assignment's own description, with the raw Brightspace text kept underneath.

Under the hood

A Python agent authenticates to Purdue's Brightspace with my live session cookies and pulls assignments, quizzes, grades, submission status, and announcements through the D2L Valence REST API. It syncs to Neon Postgres on a schedule, diffing each run for what changed.

A second pass hands the new and upcoming items to Claude, which writes a priority score and reason, an effort estimate, a grade-impact note, a per-assignment briefing, and a rolling seven-day plan. A Next.js dashboard on Vercel reads the database; an MCP server exposes the same data to Claude so I can ask "what's due this week?" from anywhere.

Python / D2L Valence API / Neon Postgres / Claude / Next.js / Vercel / MCP

The honest part

It runs on my own session cookies, which is fragile by design — a working proof that the demand is real. The next step is asking Purdue to register a sanctioned OAuth2 application so a tool like this can run on official credentials instead.