Elixirus is a web application written in Elixir Phoenix for the librus_apix web scraper, providing a superior replacement for the native Librus web interface.
- Data Caching: Efficient data caching for faster load times. β‘
- Token Management: Flexibly maintains tokens inside ets Erlang memory storage, allowing users the option to enable or disable token storing for refreshing purposes π
- Seamless Experience: Enjoy a smooth and uninterrupted user experience. π
Push Notifications π²
- Attendance Calculation: Calculate percentage attendance effortlessly. π
- GPA Calculation: Compute semestral and yearly GPA with ease. π
- Docker Support: Easily deploy using the provided Dockerfile. π³
- CI/CD Integration: Automated workflows with GitHub CI/CD. π
- Python Integration: Utilize Python libraries through erlport. π
- HTTP Proxy Support: Bypass API blocks with proxy support. π
- Health Checks: Monitor connection health with integrated health checks. β€οΈ
- UI design is far from perfect... π
- Notifications are only present when the Token is being kept and refreshed server-side π
- Phoenix LiveView - Rich, real-time user experiences with server-rendered HTML π₯π¦
- bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager π₯
- erlport - Connecting Elixir with Python π§ͺ β€οΈ π
- librus-apix - Web Scraper for Librus Synergia written in Python πͺπ
Run direnv allow
to allow .envrc
execution
- bun
- erlang
- elixir 1.16.3
- python 3.11
- pip
-
Set MIX_BUN_PATH (location of bun executable) and PYTHONPATH (location of python libraries for Erlport):
export MIX_BUN_PATH=$(which bun) export PYTHONPATH="$PWD/priv/librus-apix:$PWD/priv/librus-apix/venv/lib/python3.11/site-packages"
Install mix and bun dependancies:
mix deps.get bun install
Setup python environment:
python -m venv $PWD/priv/librus-apix/venv source $PWD/priv/librus-apix/venv/bin/activate pip install -r $PWD/priv/librus-apix/requirements.txt deactivate
-
Now you can visit
localhost:4001
from your browser.
βοΈ Check out example on deploying to remote NixOS machine with Colmena
π Docker
- you can pull the existing container with
docker pull ghcr.io/rustysnek/elixirus:latest
- with docker-compose
You will need
- SECRET_BASE_KEY (mix phx.gen.secret)
docker-compose up --build