Adds extra UI to the Hochschule Luzern website(s).
The module listing page now shows the requirements for your bachelors degree and how many credits you have already achieved. When registering for modules, the current amount of credits for that type is shown right on the page, so you know if you still need to take any modules of that type.
Install dependencies
npm installBuild extension
npm run buildLoad the unpacked extension in Chrome or Firefox (note: Firefox extension must be built with env BROWSER=firefox)
Before creating a pull request, lint and format your changes.
npm run lint
npm run formatData about modules is stored inside of the extension using the src/modules.json file. It needs to be updated once per semester using the modules.py script. The only argument is the first available semester (should always be F21):
python .\modules.py F21This process uses the API for the HSLU Module Master maintained by other students. We cache the data here because the API might stop existing.
In case the API ever stops being updated there's the original module-extractor Rust program which reads the data from the actual PDFs on MyCampus.
Unfortunately the newer PDFs use a matrix which can't be parsed using text, as it originally was implemented. I'd rely on a multimodal LLM or other neural network OCR solution to parse the matrix from the PDF.
This section is required for Mozilla to review the addon.
Software:
- Windows 10
- node v20.11.0
- npm 10.2.4
- powershell
Build instructions:
npm install
$env:BROWSER='firefox'
$env:NODE_ENV='production'
npm run build

