Gatorassist banner
qpkiley qpkiley

Gatorassist

Productivity community

Description

University-student agent/planner program; compiles academic and extracurricular information, provides learning assistance and note storage. Multiple Claude chatbots (Dashboard, Learn, Notes); additional entered via manual self-input.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

GatorAssist

A local-first desktop planner for a student carrying courses, a commitment with a drill schedule, and a term of deadlines nobody consolidated. Canvas feeds, syllabus PDFs, lecture decks and Zoom transcripts go in; one encrypted SQLite file on your own machine comes out. Nothing is stored on anyone else's server.

`Electron 44` · `TypeScript` · `React 19` · `SQLCipher` · `Drizzle ORM` · `Tailwind v4` · `Anthropic API`

**Version 1.0.0** · in active development · not yet code-signed or released

![The week grid, with a course colour applied](docs/screenshots/calendar.png)


If you are here from a CV, read this part

Four things in this repository are worth a technical reader's time, and each one is a decision with a written rationale rather than a library call.

**1 · A privacy boundary that is enforced structurally, not by discipline.** `src/shared/redaction/` holds a policy indexed by PURPOSE — extracting a syllabus, tutoring, summarising a message — and every one of them is deny-by-default: a field nobody has argued for in writing does not leave the machine. Content detectors catch what a field rule cannot, because free text is the case you cannot enumerate: identifiers, campus buildings, military unit designators, and the clubs a person belongs to. A tripwire re-checks the payload after redaction and refuses to send if anything sensitive survived. See `scripts/smoke-pii.ts` — the tests are adversarial on purpose, and half of them assert what must **not** be redacted, because a scrubber that eats the coursework makes the notes useless for the class they came from.

**2 · The model proposes; a person accepts.** Nothing inferred by an LLM reaches the database on its own. The syllabus importer extracts and waits. The planner suggests study blocks and writes nothing. The dashboard assistant returns proposals with the sentence it read each one from, and accepting one calls the *same* function the manual form calls — there is no privileged write pat