svthalia / sagexit

A stripped down Django reservation system using SAML
https://reservations.thalia.nu
GNU Affero General Public License v3.0
4 stars 1 forks source link
django django-project reservation-management reservation-system reserveringssysteem saml-service-provider saml-sp-single-sign-on saml2 saml2-sp-sso

Sagexit

Even our beloved Mercator could not escape the coronavirus. Instead of a cozy space where far too many people, far too close to each other, trying to study while actually socializing and complaining about the dirt in the kitchen, Mercator has become a silent place where people actually come to study (or at least, that's what they should be doing).

Because everything in times of corona needs a registration system, also Mercator had to get one. As computer scientists, of course we developed are own one that exactly fits our needs searched the whole internet for buggy systems that we did not have to pay for. What we finally got: sagenda. A terrible system that did not allow cancelling reservations, or didn't even allow you to look up who actually did a reservation.

It's time for a sagexit.

With a lot of inspiration from https://github.com/GipHouse/Website and https://github.com/KiOui/TOSTI, I hacked together a rather minimal application (though I would love to get rid of the sass as well).

It features:

Set up server

  1. sudo apt install docker-compose
  2. sudo systemctl enable docker
  3. sudo usermod -aG docker ubuntu
  4. Run the deployment workflow

User authentication happens via the CNCZ Science SAML signon server. This server needs to be set up manually after deployment from the Django admin. It is thus required to create a temporary superuser on the server, to actually do this. After setup and first login, the superuser permissions can be transferred to an actual account.

NB: for local development, with either apt or brew, xmlsec1 must also be installed manually!