Aeroklubben-IT/arbetsgrupp-live/README.md

60 lines
No EOL
1.9 KiB
Markdown

# Live Audience Response System
Ett webbbaserat system för att samla in svar från en live-publik och visa resultaten i realtid. Systemet är byggt med Node.js, Socket.IO och SQLite, och kan köras i en Podman-container.
## Funktioner
- **Live-formulär**: Deltagare kan välja mellan förutbestämda alternativ eller lägga till egna
- **Flerval**: Användare kan välja flera alternativ
- **Dynamiska alternativ**: Nya alternativ som läggs till av användare blir automatiskt tillgängliga för andra
- **Live-resultat**: Admin-panel med realtidsuppdateringar av resultat
- **QR-kod**: Genereras automatiskt för enkel delning av formuläret
- **Responsiv design**: Fungerar på både desktop och mobil
- **Persistent data**: SQLite-databas för säker datalagring
## Teknisk stack
### Backend
- **Node.js** med Express.js
- **Socket.IO** för realtidskommunikation
- **SQLite** för datalagring
- **QR Code generator** för QR-kodgenerering
### Frontend
- **Vanilla JavaScript** med Socket.IO client
- **Chart.js** för datavisualisering
- **Responsiv CSS** med modern design
### Container
- **Podman** (eller Docker) för containerisering
- **Multi-stage build** för optimerad bildstorlek
# Kör applikationen
```bash
podman run -d --restart=on-failure --name aeroklubben-arbetsgrupp-live -p 7000:3000 -v ./data:/app/data:Z aeroklubben-arbetsgrupp-live
```
## Användning
### För deltagare
1. Besök huvudsidan: `https://aeroklubben.hostux.fr`
2. Välj ett eller flera alternativ
3. Lägg till egna alternativ om önskat
4. Skicka svaret
### För administratör
1. Besök admin-panelen: `https://aeroklubben.hostux.fr/admin`
2. Visa QR-koden för deltagare
3. Följ live-resultat i realtid
4. Se statistik och diagram
## API-endpoints
- `GET /` - Huvudformulär
- `GET /admin` - Admin-panel
- `GET /api/options` - Hämta tillgängliga alternativ
- `GET /api/results` - Hämta resultat
- `POST /api/submit` - Skicka svar
- `GET /api/qr` - Hämta QR-kod