# HDcon Muzak
> Gewoon een leuk tooltje om samen met je vrienden een muzieklijst samen te stellen.
## Features
* Stuur een spotify-link in om een nummer te nomineren
* Beluister en stem op de ingestuurde nummers
* Aan het einde heb je een mooie playlist
* AI-enabled. De toekomst is nu.
## Installatie
* Zie `requirements.txt`
* Message queue voor Celery, bijvoorbeeld [RabbitMQ](https://www.rabbitmq.com/)
* Optioneel [taalmodelletje](https://ollama.com/), wat ook op een andere server mag staan.
## Configuratie
Zie `example.env` voor alle environment variabelen die moeten worden ingevuld.

Waarschijnlijk hoef je niet zo heel veel te doen aan `settings.py`, maar let op bij een deployment.

### Authenticatie
Technisch gezien verloopt de auth via single-sign-on OIDC, maar je kan via het /admin eindpunt ook nog inloggen met local auth als je [zelf een lokale user hebt aangemaakt](https://docs.djangoproject.com/en/5.0/intro/tutorial02/#creating-an-admin-user).
## Development
Maak migraties en pas ze toe:
> `python manage.py makemigrations`\
`python manage.py migrate`

Start je message broker en een celery worker:
> `sudo systemctl start rabbitmq`\
`celery -A muzak worker -l INFO`

Start development server met:
> `python manage.py runserver`

## Belangrijke upstream documentatie
* https://docs.celeryq.dev/en/stable/
* https://docs.djangoproject.com/en/5.0/
* https://github.com/ollama/ollama/tree/main/docs
* https://htmx.org/docs/