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.
Check out the app here
Check out the mock-api test deployment here
- 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. 🌐
- Attendance Calculation: Calculates the total % absence/attendance for every semester and full year. 📊
- GPA Calculation: Calculates semestral and yearly GPA. 🎓
- Docker Support: Easily deploy using the provided Dockerfile. 🐳
- CI/CD Integration: Automated workflows with GitHub CI/CD. 🔄
- Python Integration: Utilize Python libraries through erlport using Venomous. 🐍
- HTTP Proxy Support: Bypass API blocks with proxy support. 🌐
- Health Checks: Monitor connection health with integrated health checks. ❤️
- 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 🥖
- Venomous - 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.17.x
- python 3.11
- pip
Set MIX_BUN_PATH (location of bun executable)):
```sh
export MIX_BUN_PATH=$(which bun) ```
Install mix and bun dependancies:
mix deps.get
bun install
-
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