GradePilot
I. Charge
The university portal calculates CGPA incorrectly and gives students no way to simulate the effect of retaking a course before committing to it.
II. Investigation
GradePilot is a client-side Chrome extension that parses the student's grade report from the university portal and recalculates CGPA and SGPA using the correct retake-replacement rules. It also provides a simulation interface where students can test different retake scenarios and see their projected GPA before making enrollment decisions. All processing happens in the browser. No data leaves the device.
III. Exhibits - Architecture
- The calculation engine implements the university's retake-replacement policy exactly. When a student retakes a course, the higher grade replaces the original in the GPA calculation. Non-credit courses are excluded. The engine handles this correctly; the portal does not.
- The interface has three tabs: Overview shows current calculated metrics, Plan shows the student's full grade history, and Simulate allows testing retake scenarios against projected outcomes.
- An error correction module lets students manually override parsing errors caused by inconsistent portal HTML. The university portal is not stable across sessions.
- The extension exports grade data as JSON backups and multi-sheet Excel files via SheetJS.
- The extension uses vanilla JavaScript targeting Manifest V3. The architecture is split into a DOM parser, a calculation engine, and a UI layer. No build step is required.
- Distribution bypasses the Chrome Web Store entirely. The extension is installable via WinGet, an Inno Setup executable, and direct ZIP download.

IV. Cross-Examination
Q: Why distribute via WinGet and Inno Setup instead of the Chrome Web Store?
A: Institutional Chrome Web Store policies at Air University delay or block extension publication. Students needed the tool during finals week, not after an approval process that could take weeks. WinGet and Inno Setup allowed immediate distribution to any student with a Windows machine.
Q: Why use vanilla JavaScript instead of React?
A: Manifest V3 sandboxes the extension context in a way that complicates bundled frameworks. Vanilla JS eliminates the build step entirely. Students can install the unpacked extension folder without needing Node.js, npm, or any build tooling on their machine.
V. Failure Modes
- The university portal HTML structure changes occasionally. When it does, the DOM parser breaks and the extension displays a clear error message rather than showing incorrect data.
VI. Lessons Learned
- Waiting for institutional approval is a deployment blocker, not a safety requirement. For a tool that processes only client-side data, alternative distribution paths are a practical solution.
VII. What I'd Build Next
- Build a sync mechanism that updates the calculation engine when the university changes its CGPA rules, without requiring a full reinstall.
Verdict
ALLOW - Version 1.0 released via WinGet, Inno Setup, and ZIP. Full simulation, planning, and export features are working. Verified adoption data is not available.