Edupage Extras is a browser extension that improves the Edupage web portal with small (and big) quality-of-life features.
This project is not affiliated with Edupage, aSc Applied Software Consultants, or any school using Edupage.
Features · Permissions · Privacy · Development · Compatibility
Install directly from the Chrome Web Store.
Install directly from the AMO listing.
Edupage Extras is Chromium-first. If something does not work on your school's EduPage, open a GitHub issue or report it on Discord.
- Clone the repository.
- Open
about://extensionsin any chromium browser, orabout://addonsin any firefox browser. - Enable Developer mode.
- Click Load unpacked.
- Select the project folder:
Edupage-Extras/. - Configure settings.
- Automatic updating does not work on cloned repositories, git pull is needed to update.
- Themes for Edupage pages and extension menus, custom themes supported.
- Centered layout centers the page layout.
- Help text hide for hiding the annoying top-right Edupage help greeting.
- Color-coded average bars for subject averages.
- Subject sorting and filtering Search by subject, name, grade count, or average, and hide subjects without grades.
- Virtual Grade Calculator — add grades to any subject and see the projected average, using EduPage's grade weights to calculate "future" grades.
- Grades export to
.json,.csv, or.txtvia an export button. One row per grade with subject, date, value, weight, title, and the subject's average. CSV includes a UTF-8 BOM so Excel renders diacritics correctly.
- Subject attendance shows attendance for individual subjects calculated from the Attendance page.
- Halfyear absence percentage overall absence percentage inside Edupage's existing attendance page.
- Curriculum export — on a subject's topic plan page, export the
full year's chapters, topics, and taught dates as
.txtor.csv.
- Auto-login (off by default) — clicks through EduPage's multi-step login (account picker included) and submits to log in. No credentials are ever stored or read by the extension, and it stops the moment you type anything yourself. A preferred account can be chosen in settings.
- Substitution and room-change highlights, colored by change type instead of EduPage's single generic color, so you can tell at a glance what changed.
- Export to .ics — download the current week or the whole half-year as a standard calendar file, importable into calendar apps.
Some features can be bound on the browser's extension-shortcuts page.
(chrome://extensions/shortcuts, or Add-ons Manager on Firefox)
- Localized interface Extension is translated into English, Slovak, and Czech.
- The language follows the browser UI language automatically
(
chrome.i18n/browser.i18n), falling back to English.
- Chrome Web Store / AMO installs: update automatically through the browser's store.
- Chrome/Edge (unpacked/development installs): an update reminder
checks the public GitHub project manifest and compares it with the
installed version. If a newer version is available, it prompts you to git pull
the latest project and reload the unpacked extension from
chrome://extensions/.
See CHANGELOG.md for what changed in recent versions.
Edupage Extras requests:
storage- saves extension settings locally in the browser.alarms- checks for updates on a daily schedule.notifications- shows an unpacked-version update reminder when a newer GitHub version is available.https://*.edupage.org/*host access - injects the extension scripts only on Edupage pages, reads timetable/attendance data already present in Edupage, and lets the settings UI find and reload open Edupage tabs (no separatetabspermission is requested).- Optional
https://edublurtesting.ct.ws/*access is requested only after you choose to open the testing site from the experimental settings. https://raw.githubusercontent.com/JustAlex0000/Edupage-Extras/*host access - reads the public project manifest for update checks.- Optional access to
localhost,127.0.0.1,integrate.api.nvidia.com, oropenrouter.aiis requested only when the user tests the matching AI provider connection.
The extension does not request access to all websites.
- No backend server.
- No analytics.
- External requests are limited to the optional public GitHub update check and user-triggered Test Question Helper requests. Ollama and LM Studio stay on the local computer; Gemini, NVIDIA, and OpenRouter receive the current question text and any responses already chosen in that question.
- No Edupage credentials are collected.
- Settings are stored locally.
- Structured attendance and timetable data used by enhancements is cached locally.
- Grade enhancements are generated from data already present in the currently loaded Edupage page.
- Attendance percentages are generated from Edupage's existing attendance page data and do not use an external API.
- Timetable export generates a calendar file locally.
Development notes and publishing checks
This is a plain browser extension with an npm-based toolchain for the
Firefox side (linting, packaging, and publishing). There's no build step for
loading it unpacked in Chrome/Edge — that still works directly from source.
See the architecture guide and contributor workflow for development details.
Recommended checks before publishing:
npm install
npm test # runs every tests/*.test.js file
npm run lint:firefox # web-ext lint — should report 0 errors
node -e "JSON.parse(require('fs').readFileSync('manifest.json','utf8')); console.log('manifest ok')"
node -e "['en','sk','cs'].forEach(l=>JSON.parse(require('fs').readFileSync('_locales/'+l+'/messages.json','utf8'))); console.log('locales ok')"To build and sanity-check a Firefox package locally:
npm run build:firefox # produces a .zip in web-ext-artifacts/
npm run verify:package # enforces the exact extension shipping allowlist
npm run run:firefox # launches Firefox with the extension loadedEdupage changes its HTML, CSS, and JavaScript over time. Some selectors or data formats may need updates when Edupage changes its pages.
If a feature stops working:
- Reload the extension.
- Reload the Edupage tab.
- Check whether the feature is enabled in Settings or Experimental.
- Open the browser console and look for Edupage Extras errors.
- Report it as an issue or through Discord.
MIT