Skip to content

blindern/billett

Repository files navigation

Billettsystemet til UKA på Blindern

https://billett.blindernuka.no

Kort om systemet

  • Betalingsløsning integrert med Vipps Checkout
  • Kjøp av ett-og-ett arrangement (ingen handlekurv på tvers av arrangementer)
  • Billetter mottas som PDF på e-post og fremvises ved inngang
  • Strekkodescanner ved inngang for enkel validering og registrering av billetter
  • Salg av løse billetter, f.eks. i billettskranke eller på stand

Historie

Det ble tatt initiativ til å lage et eget billettsystem til UKA på Blindern 2011, da vi ønsket en rimeligere og mer integrert løsning enn det som var alternativene. I slutten av november/starten av desember 2010 begynte arbeidet med billettsystemet, og det ble satt i drift tidlig januar 2011. Det samme systemet ble benyttet igjen i 2013. For festivalen i 2015 ble systemet skrevet på nytt som en separat løsning, og det er dette systemet som finnes her.

Systemet er utviklet av Henrik Steen som også vedlikeholder det ved behov.

Tekniske detaljer

Systemet bruker Laravel-rammeverket som backend i kombinasjon med en selvstendig frontend-applikasjon.

Mer teknisk dokumentasjon

Produksjon

Systemet deployes automatisk for hvert bygg på main. Se GitHub Action og https://github.com/blindern/drift/tree/master/ansible/roles/service-uka-billett

Ev. nye databasemigrasjoner må kjøres manuelt:

ssh root@fcos-1.nrec.foreningenbs.no
docker exec -t uka-billett-fpm ./artisan migrate

Lokal utvikling

For å gjøre lokal utvikling trenger du:

  • Docker
  • PHP 8.3+ med Composer
  • Node.js 18+

Kjøre backend lokalt

  1. Start databasen i egen terminal:

    docker compose up database phpmyadmin
  2. Så i backend-mappa:

    cd backend
  3. Installer/oppdater avhengigheter:

    composer install
  4. Kjør migrasjoner:

    php artisan migrate
  5. Seed databasen med testdata:

    php artisan db:seed
    
  6. Start backend:

    php artisan serve --port 8081
  7. Du skal nå kunne nå f.eks. http://localhost:8081/api/me

Kjøre frontend lokalt

  1. cd frontend
  2. Installer/oppdater avhengigheter:

    npm ci
  3. Kjør lokal server

    npx ng serve --port 3000 --open

    Denne går mot lokal backend som standard. For å gå mot produksjon kan man kjøre følgende i nettleser-konsollen (og oppdater siden):

    localStorage.setItem("billett-baseurl", "https://billett.blindernuka.no/")

    Og for å endre tilbake:

    localStorage.removeItem("billett-baseurl")

phpMyAdmin

Kan brukes for å enkelt se og gjøre manuelle endringer i den lokale databasen.

http://localhost:8080/