greybaron / campus-unbloat

The not-entirely-broken Home for the humble BA Sachsen student
https://campus.unbloat.app
GNU General Public License v3.0
2 stars 0 forks source link

campus.unbloat.app

CampusUnbloat is the go-to home for any[^1] BA student. It combines both CampusDual and Studentenwerk data into a modern and fast webapp. This is the frontend and main repository.

[^1]: The only supported mensa provider is Studentenwerk Leipzig, other mensa providers are TBD.

This project was inspired by the poor condition of campus dual

Components

This repo: SvelteKit-based very cool app.io.dev.sh

🦀 campus-api: Adapter API for NetWeaver-based CampusDual

🦀 mensa-api: Adapter API for Studentenwerk Leipzig Mensae

docker-compose.yml

services:
  unbloat-frontend:
    image: docker.io/flschmidt/campusunbloat-webapp
    environment:
      - CD_API_URL=http://unbloat-api-campus:8080
      - MENSA_API_URL=http://unbloat-api-mensa:9090

      # Impressum data
      - PUBLIC_IMPRESS_FULLNAME= # your full name
      - PUBLIC_IMPRESS_STRASSE_HAUSNR= # your street and house number
      #- PUBLIC_IMPRESS_ADDRZUSATZ= Optional Adresszusatz
      - PUBLIC_IMPRESS_ORT_PLZ=placeholder_city_zip # your city and zip code
      - PUBLIC_IMPRESS_TELEFON=placeholder_phone # your phone number
      - PUBLIC_IMPRESS_EMAIL=placeholder_email # your email address
    ports:
      - '3000:3000'
    networks:
      - eduroam

  unbloat-api-campus:
    image: docker.io/flschmidt/campusunbloat-api-campus
    environment:
      - JWT_SECRET= # your JWT secret. The longer the better
      - AES_KEY= # your AES key. Has to be 32 bytes or longer (only the first 32 bytes will be used)
    networks:
      - eduroam

  unbloat-api-mensa:
    image: docker.io/flschmidt/campusunbloat-api-mensa
    volumes:
      - mensa_volume:/app/data # used for caching mensa data, technically optional
    networks:
      - eduroam

networks:
  eduroam:
volumes:
  mensa_volume:

Developing

  1. Build both APIs
  1. Clone this repo

Building

Dockerfiles exist in each repo, and workflows exist which demonstrate what needs to be done