Lokal utvikling
Forutsetninger
- Node.js 20.x eller nyere
- Azure Functions Core Tools
- Azure Cosmos DB Emulator
Steg 1 — Klon og installer
git clone https://github.com/haflidif/chior-tickets.git
cd chior-tickets
# Installer API-avhengigheter
cd api
npm install
# Installer frontend-avhengigheter
cd ../frontend
npm installSteg 2 — Start Cosmos DB Emulator
Start Azure Cosmos DB Emulator på maskinen din. Standard tilkoblingsinnstillinger er allerede konfigurert i api/local.settings.json.
Steg 3 — Kjør lokalt
# Terminal 1: Start API
cd api
npm start
# Terminal 2: Start Frontend
cd frontend
npm run devÅpne http://localhost:5173 i nettleseren din.
Steg 4 — Sett opp database og opprett første superadmin
Kjør oppsettskriptene for å opprette databasecontainere og legge inn den første superadminen:
cd api
# Opprett alle containere med riktige indekser og TTL
npx ts-node scripts/setup-database.ts
# Opprett superadmin-bruker
npx ts-node scripts/seed-admin.ts your@email.com "Your Name"Dette oppretter:
- Alle nødvendige containere (users, organizations, organizationMemberships, events, registrations, osv.)
- En superadmin-bruker som kan opprette organisasjoner og administrere hele systemet
Steg 5 — Sjekkliste for førstegangsoppsett
Etter installasjon og databaseoppsett, fullfør disse stegene:
Logg inn som superadmin:
- Gå til
http://localhost:5173/login - Skriv inn e-postadressen du brukte i
seed-admin.ts - Sjekk konsollen for magic link (hvis
RESEND_API_KEYikke er satt)
- Gå til
Opprett din første organisasjon:
- Gå til Organisasjoner → Opprett organisasjon
- Fyll inn organisasjonsnavn og detaljer
- Du blir automatisk lagt til som admin
Legg til medlemmer:
- Alternativ A: Opprett invitasjonskode → Del lenke med medlemmer
- Alternativ B: Importer medlemmer via CSV (e-post, navn, rolle-kolonner)
- Alternativ C: Legg til medlemmer enkeltvis i Medlemmer-visningen
Opprett ditt første arrangement:
- Gå til Arrangementer → Opprett arrangement
- Sett arrangementsnavn, dato, sted, kapasitet
- Legg til forestillinger (flere datoer/tidspunkter)
- Legg til billetttyper med priser
Konfigurer innstillinger (Valgfritt):
- Lås salg ved behov
- Sett opp tildelinger for medlemmer
- Konfigurer sporing av eksternt salg
Testing
API-tester
cd api
npm test
# Kjør spesifikt testmønster
npm test -- ordersE2E-tester
cd frontend
npx playwright test
# Kjør spesifikk testfil
npx playwright test login.spec.tsUtviklingsnotater
Angrefrist for registreringer
Registreringer har en 1-times angrefrist for redigering/sletting:
- Innen 1 time: Admin kan fritt redigere eller slette registreringen
- Etter 1 time: Registreringen er låst for å forhindre utilsiktet tap av data
- Dette beskytter historiske data, samtidig som det tillater raske korrigeringer
Databaseopprydding (kun for utvikling)
DANGER
Et endepunkt for databaseopprydding finnes kun for utviklingsformål.
- Endepunkt:
DELETE /api/db-cleanup - Krever: Superadmin-autentisering
- Handling: Sletter ALL data på tvers av ALLE kor
- Kjør ALDRI dette i produksjon — kan ikke angres
Sikkerhetsanbefalinger for produksjon:
- Deaktiver dette endepunktet i produksjon via miljøvariabler
- Bruk Azure Functions' deployment slots for å ekskludere det fra produksjonskode
- Implementer ekstra sikkerhetstiltak (f.eks. krev en spesifikk utviklings-header)
- Overvåk revisjonslogger for forsøk på å nå dette endepunktet i produksjon
For å trygt tilbakestille utviklingsdata:
cd api
npx ts-node scripts/setup-database.ts
npx ts-node scripts/seed-admin.ts your@email.com "Your Name"Beste praksis for etterligning
Når du bruker etterligning (impersonation):
- Stopp alltid etterligning når du er ferdig (avslutter revisjonsøkten)
- Gjennomgå revisjonslogger jevnlig
- Etterligning er for feilsøking av brukerproblemer, ikke datamanipulering
- Alle etterligningsøkter logges permanent
Neste: Feilsøking · Se også: Miljøvariabler · Azure-utrulling