A degree audit compares your completed, in-progress, and planned coursework with the requirements for your degree, major, minor, or certificate. It answers the practical question: what is done, what is in progress, and what is left?
Degree Audit Plus reads that information from UT Austin's UT Direct audit system and turns the dense results page into an interactive dashboard for understanding progress and building a semester plan.
- See progress at a glance — degree-completion donut, requirement progress bars, GPA totals, credit-hour totals, and major/minor labels.
- Expand every requirement — inspect completion status, remaining hours or courses, grades, semesters, and the courses counted toward each rule.
- Manage audit history — view cached audits in the popup, open a selected audit, rename it, and sync uncached results in the background.
- Plan by semester — switch between Audit and Planner views, drag eligible courses between semesters, and add future semesters.
- Find courses easily — search a bundled UT course catalog by text, department, and lower/upper division.
- Get Core recommendations — surface catalog courses that match recognized UT Core Curriculum requirements and add them as planned courses.
- Keep your preferences — sidebar state, view mode, selected audit, and light/dark mode persist in the browser.
- Enter from UT Direct — an inline banner on the audit landing page opens the enhanced experience.
- Stay in the UT workflow — the extension can open UT Direct, run a new audit, detect expired sessions, and refresh audit data without a Degree Audit Plus account.
Stack: React · TypeScript · Tailwind CSS · WXT/Vite · Dexie/IndexedDB · dnd-kit · Bun
The extension is organized around feature-owned modules with strict one-way dependencies. We follow a deep module style of software design to "hide" logic. Audit state and persistence are the shared seam; the dashboard, planner, popup, and course search consume that state rather than maintaining competing copies.
<style class="style-fonts"> @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,d09GMgABAAAAAAmkAA4AAAAAEDwAAAlRAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbgjYcNAZgAHQRCAqUZI9QCx4AATYCJAM4BCAFgxgHIBuVDCOSkFYN2T8TbGPFjW6FTCBnFXUV2pVOVl7rdw0qKuqZknIE0VpZ3TsPSBYSVgAogUiYGMsqQgIZdzYxEvcHuvnvHDXf6hqIWk3V5EZ9WJjX7f+FlbSdknDliXO/iSOVScduPTtv64E1glwx4JtJEuZ2bf6HA9jDvar/ZYyl2aLZ4hHLvmwdC39sUXAs8IgFNLtjUmktK1WgWpWq1qAP8BxRg/HbTaCTqFNUukTOS7RbtUXZtefQKbaXXjy8zfbawyu32N6+8PguW4XXBituXXnIgcVFY2ZFIshS+kB+Ew0fteigPhe01SP8pyH+hsBWv9HIMm0QEldVmtGqXdkH6iSZkh/Jc2/SpkUzipsJUk3JNe+Yfq213hwZyV2LhiemHRM0ac0g84GD7jJxVoDfIDTs3XVy7xEHzHpSdfsfaFJWRrdZXkG87CczexqUrQqDVCZcbXH+Nr0qxaztkphUq1WvSddacvhVTMePYj98c11PV0dLVNDWqJXcbppk+kXVc3lJYSkkZoLnxafujIN2jW2Y3PzDAujWRmbXbP/l0F8BZksxG+D5GjPwUMwMjQAb5P59SN7DQG8v856Vy3h56dq1+nwHn7PM8EzFJt0I9rpCoyDMKKWIEkjWE6zUaCvOZslv4a2CulhhmtO6qxMBzwtIqDNcmizi2h0DK0OWVQAcYHYxUbreLsfYORNjpS7WUhAilCH5ryOXyAkSnSZF5PY7w+dCrN692ys9/sjkeq2tHm5VrkFRLCvSkSiu+BA6d/XS65T1gZvjs/XkEQgRnaUgA6Xv4tCYRvD8+tti5vra5zMEkiiudJdQQiJ4/5eitHjBi8Lk85idzXN8U80FufhnNSERVRA6wUKGE1XXy9K5IavmuDfOB2nHTEs9tegdFE/avh2Jilb1jy9IFENiBHMP3cczYv9zt/kAhGbpkdxQu4XXL3eVnlmgF3KyJ3YPjeDgXKT15L4bh6xiX1HV7q+eEWuFq7wMUJqFISge1dODc8Ht043Kn2/dPD9ba1vnlvWQT87MhmZxrTTTsv7cCPbeVWODctM9EO7woW8EmO3Nb59vEEgIhadCGQjLT/VyHciWINwSFWE3Ly8+P0N+IflbnLfr6b1ZyincFNEttAl/HC48i5lSOKmna2jVb8U95DcjjUDaObm3aid9fVCO98upFIQLfIocqnWF0GLZalUpJL9c2/Ro36sNZzQfnjaCHBvXG43zkKjd3SqNSUT2qPmw5ral562nFs8QpZrveDw1X2yhN25kr0Bo8RTnCiuXnU1we9Ox0guzcH5ftdUInpPrwyEkEbojF0jNt5+rjTd/vbmQXW3X1XQ6luAhDK5jxhLMOuamW/tM/dyaM1Uq0Wzxqliz5sbIaTi8LmCwGvrNGPlLaGZxgFn/A9JZTqvVLjx/+v1+cv3XIM8xS1ib9XVh5/lZ9hAn/aTUua6zaX7O5DfAQv8zgOe17hKaURAuKr3xjslBCDjN0JkRHzZ9OdpqkOqq72/8//eB776MGMzRye5/cAzBCvAekwG7qqqWi1ZopKbLpXnfui78Ms87OfGnrBgZhLS2bZDtBuqGUONIIghqtZ0pQCUTDw/XIlxk5TO/wHSxgWBlS2edXEp+JdvohM7rW6r8fCBv+adz4h2/gra5kMgw95G1c1jVlU3oBlO7ZfNmkhB3/VVYy9GhHCXrkJ59BAHNIaXJdVP4XTvu4h+J9AgXwQhzjs6i08TtLLupf3DpZvnRR/FOVeIxQqa77m3v+ZyamACJLocizP7GvMphRS32VFLIHiQ+BinEE6SGFqMLO2sP1AyUeCMJnEKj3bi0Z2iW286eYWHBtvytOXNyyDlks9TKjPfUlco3p0Lenh+PT6qqWhOYsYGqtEgl0F1kbOpEFDaOkHSKH8d9PdxNORS4dMej1ouZSb6L8fiHwZoHwBu3ohw7WCbxP3lr3U/SHE2xMwf3yuA9NLrFYBTWkyL9FFUZElEpGrXjg8VuehCYlniNjFM6E1fhm2dvF2d0fB1MyZrf2bS0CPWGw8eDlrRtdVZ+z/OKnipfiOrZ2dWB4HrmCFPTEGNOU32qPNBujnXBzQWYQh7YdO+kYLk1bbB04PHbiR1atezRMJPCnIknuCdpCl91Jzq/xnMc0KwngePa5bLTAbULQfZUqgstbJ4dZ5NRoZTsTpr0XY3BrUHs9FIJbkbHhfhHDo9I4QTn133PCNUD0eHHJbpvSzb9/dSoUydFRhpW1ewS32boBFmZE6vbXGz5MAbsNs/JdKoXdKerZt/xegHjDz766UBzlg2qkIpNlqlxIwJ6aXoi4eI88XDVmSXAn7KjTFQ+Zevw0uXoeXlz62VvltoXQX3dG2CgVHn8HtJXxac43BO2KPecV0+FvRPan8D0HL43fyc11YBgyfT6xfxex2G8ZrIgSUZsVPOUgWo+sniBcumYokFlMoJtOzZFxluh7zuSI9WOgo5h/pjwyKUPL0YLMAOmQJMgfrf0qjYs4LXDko1xXPtTk4O7ec9LT8ixjQ/WWS/Zkc3Pi5ksAnXGPvpvTuqWIrcMJcwftnT9ff3K0O/vN+d8zA9NKH1Eidud+/UD2eaLRdpL27Tc3i6ylNzEQzfYDhuttx8khkvzeQfCanfUKZb4uGJtNVr/WxvjLy5dDQMrvutEG5UlOmEYJ3O97b/qIL/Pps3xQ5K71/fR411l6w5cvGuOK+8dmm5qp/vBLR5JRcSPfNG/WmVBY3r3dKKXbBoWHLhiogpJ5ubwSZ9vUrX/QD1G+6CMNsLXct7qdpjtsMdYY290Czu7lsLw8sUCZ19PlzA8mq//9EdSAAABBFh/oWBUmTDqK4uLvQDgZ0+PJAB+LXrd+/+Qf73xV3g4gFaoGvs7KTZJSkR//wz/Y/jA7soKyTEBIN8DVJ3Az10QnyXgnjZgl57g6QuRhxAUc8A/ncAt3QFJBvz1Yu12HUgkj0A72Ab6WxTCIIUd6m+7ZEfI7LOjBDbYMR6G2XEMq50QgwHJXR/s1kOlCk3q1WjVogtvlj8o6tpZoUOuahudpRGul+bPhx+WIunLO3tqU6czlwIR4MKNp4DFodx790AP9taZJIteBjWy1SA3uhSJbqlNzxLU18rUjQS3GnB3SwH8TASpJaue6kDbUpUOqtKdz/8imnCebp/pjKHapWp043qq+MBAuPofAgA=); } @font-face { font-family: Nunito; src: url(data:font/woff2;base64,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); }</style>Degree Audit PlusUT Directlogin, history, resultsBundled UT catalogut-courses.jsonSession moduleCatalog IndexedDBAudit acquisitionBrowser storageAudit [provider + helpers]DashboardPlannercontent script parsesbackgrouxnd openshidden result tabshistory, requirements,completed/planned coursesselects an auditcalculates progressgropus coursesCRUD for planner coursescookie watch + authsearch + Core lookup The main folders are:
entrypoints/ WXT background, content, popup, and audit-page entrypoints
features/audit/ Audit state, persistence, calculations, and mutations
features/audit-scraping/ UT Direct parsing, session-aware scraping, and sync
features/dashboard/ Progress dashboard and navigation UI
features/planner/ Semester planning and drag-and-drop behavior
features/course-search/ Catalog search, recommendations, and add-course flow
features/catalog/ Bundled catalog, Dexie schema, and catalog tooling
domain/ Framework-free application types and semester helpers
components/ Shared UI primitives and application components
tests/ Parser, catalog, audit, and controller coverage
See docs/architecture.md for the full dependency graph and runtime flows. ESLint enforces the documented feature boundaries.
- Bun — the version family is declared in
mise.toml - A Chromium- or Firefox-based browser
- A UT Direct session for testing real audit data
bun install
bun run devThen open chrome://extensions, enable Developer mode, choose Load unpacked, and select:
.output/chrome-mv3
For Firefox, use bun run dev:firefox and load the generated Firefox output.
| Command | Purpose |
|---|---|
bun run dev |
Watch and rebuild the Chrome extension |
bun run dev:firefox |
Watch and rebuild the Firefox extension |
bun run build |
Create a production Chrome build |
bun run build:firefox |
Create a production Firefox build |
bun run compile |
Type-check the project |
bun run lint |
Run ESLint, including architecture boundaries |
bun test |
Run the test suite |
bun run format:check |
Check Prettier formatting |
bun run catalog:validate |
Validate the bundled catalog data |
To refresh the catalog during development:
bun run catalog:refresh
bun run catalog:validate| Area | Direction |
|---|---|
| Major-aware recommendations | Tailor course suggestions to a student’s major, minor, and remaining requirements. |
| Richer planning tools | Improve the semester-planning interface and make long-term plans easier to manage. |
| Advisor collaboration | Support safe audit sharing or export for review with academic advisors. |
| Multi-audit support | Compare and combine audits for multiple programs, minors, or planning scenarios. |
git clone https://github.com/Longhorn-Developers/Degree-Audit-Plus.git
cd Degree-Audit-Plus
bun installStart the WXT development build:
bun run devLoad .output/chrome-mv3 as an unpacked extension from chrome://extensions. See Local development for Firefox and browser setup details.
git switch -c feat/short-descriptionKeep changes within the feature that owns the behavior. Avoid unrelated refactors, new abstractions for one-off logic, and unnecessary dependencies. Update tests and documentation when behavior or setup changes. Do not commit .output/, .wxt/, dependencies, secrets, or personal UT Direct data.
bun run format:check
bun run compile
bun run lint
bun testFor UI changes, manually verify the affected surface in the unpacked extension and include a screenshot or short recording in the pull request when useful.
Use Conventional Commits:
git add README.md path/to/changed-files
git commit -m "feat: improve audit planner"
git push -u origin feat/short-descriptionOpen a pull request against main. A good PR includes:
- A short summary of the problem and solution
- Tests and commands run
- Screenshots for visual changes
- Known limitations or follow-up work
Keep pull requests small enough to review. CI checks formatting, types, lint rules, tests, and the production build before merge.
Degree Audit Plus is released under the MIT License.
This is an independent, student-led project by Longhorn Developers. It is not affiliated with or endorsed by The University of Texas at Austin. Always confirm your academic plan with your academic advisor.
