feat(v1.4.0): exports + smart year level + progress + encrypted passwords
v1.4.0: CSV/Excel/JSON/NextUp exports, units-first smart year standing, live export progress bar, AES-GCM at-rest password encryption.
This commit was merged in pull request #4.
This commit is contained in:
@@ -84,12 +84,27 @@ built `ismis-helper-chrome.zip` directly:
|
||||
|
||||
- **Saved login profiles** (stored in `browser.storage.local`) — only one enabled at
|
||||
a time, with a master on/off toggle.
|
||||
- **One-click Download PDF** button on the Study Load page.
|
||||
- **One-click Download PDF** button on the Study Load page, plus **CSV / Excel /
|
||||
JSON / Next Up** export buttons.
|
||||
- PDF settings in the popup:
|
||||
- Truncate long course descriptions to match the official PDF (default on).
|
||||
- Show/hide `Year Level`, and set a custom Year Level value.
|
||||
- Year Level mode: `Auto` (recommended), `Use custom value`, or `Profile value
|
||||
only`.
|
||||
- **Smart Year Level**: for the semester being printed, `Auto` derives the
|
||||
standing from remaining units (Student Prospectus total − Lacking Subjects,
|
||||
reflecting units actually passed) or, failing that, from the View Grades
|
||||
history. Custom value overrides; the profile-scraped value is the fallback.
|
||||
- **Live progress indicator**: during any export a status bar below the buttons
|
||||
shows the current step (reading table, fetching course descriptions `i/N`,
|
||||
profile, year level, building file) with a progress percentage.
|
||||
- **Next Up import**: the Next Up export writes CSV in the exact column contract
|
||||
the Raycast [Next Up](https://github.com/) extension accepts
|
||||
(`title, courseCode, days, startTime, endTime, room, units, professorName`),
|
||||
so schedules drop straight into the app.
|
||||
- **Bundled Segoe UI fonts** for a 1:1 look with the official document.
|
||||
- Builds and packages automatically via Gitea Actions (zips + versioned releases).
|
||||
- Builds and packages automatically via Gitea Actions (zips + versioned releases
|
||||
with a signed `.xpi`).
|
||||
|
||||
## Build
|
||||
|
||||
@@ -114,11 +129,19 @@ additionally creates a **Gitea Release** with both versioned zips attached.
|
||||
Open the extension popup to:
|
||||
- Manage login profiles (add / edit / enable).
|
||||
- Toggle the master on/off switch.
|
||||
- Set PDF options: truncate descriptions, show/hide `Year Level`, custom Year Level.
|
||||
- Set PDF options: truncate descriptions, show/hide `Year Level`, Year Level
|
||||
mode, and a custom Year Level value.
|
||||
|
||||
The Study Load page gets a button row — **Download PDF**, **CSV**, **Excel**,
|
||||
**JSON**, and **Next Up** — next to the total-units line.
|
||||
|
||||
## Data & privacy
|
||||
|
||||
- Auto-login stores your portal credentials **in plaintext** on your own device.
|
||||
- Profile **passwords are encrypted at rest** with Web Crypto AES-GCM (256-bit).
|
||||
The key lives in `browser.storage.local` so it survives restarts. This removes
|
||||
the plaintext-password smell from storage; it is NOT strong protection against
|
||||
an attacker who can read both the storage and the extension source — this
|
||||
extension only talks to the school portal, never any third-party server.
|
||||
- This is a personal-use helper for the university portal; use it only with your
|
||||
own account.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user