Honors EligibilityAug 2026 – now

Honors Eligibility
Checks a transcript against 17 honor societies, fully offline
#Desktop app#Data#Automation
- Type
- Tool for OCC'sGarrison Honors Center
- Team
- Me
- Duration
- Aug 2026 – now
- Tools
- PythonPydanticPySide6BeautifulSoupMicrosoft Access
- Link
- Private
Seventeen honor societies, seventeen rulebooks, and one registrar checking every transcript against all of them by hand.
Overview
A desktop app that decides which of Orange Coast College's 17 honor societies a student qualifies for. It reads the student's transcript, has a person confirm it, works out eligibility for every society, and writes the result back into the registrar's Access database. It's fully offline and deterministic: the same transcript always gives the same answer.

The problem
Each society has its own rule: a GPA floor, a unit floor, a set of qualifying courses, sometimes a document that must be on file. Two things go wrong when that's done by hand, and the app is built to prevent both.
- A misread transcript value silently changes the answer.
- A membership gets written into the wrong column of a twenty-year-old database.
How it works
- Reads the Banner transcript export with a parser that matches columns by heading, never by position.
- Shows every extracted value beside the source page, flagged as unverified until a person confirms it.
- Recomputes GPA and units from the confirmed courses instead of trusting the printed totals.
- Runs all 17 society rules, including the ones that aren't numbers.
- Previews every database write as a diff before anything changes.

Design decisions
Unverified and confirmed transcripts are separate types, so no calculation can ever read data a person hasn't signed off. A broken society rule fails loudly instead of quietly turning into "doesn't qualify". And an unreadable old record means "ask the registrar", never "not a member", so no student loses a membership they earned.
Every Access column name lives in one file and is checked against the live database at import. 557 tests cover the parser, the confirmation gate, all seventeen rules, the GPA maths and the write planner.
Reflections
[What changed for the honors center, and what you'd do next.]