Skip to content

Lokal utvikling

Forutsetninger

Steg 1 — Klon og installer

bash
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 install

Steg 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

bash
# 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:

bash
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:

  1. 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_KEY ikke er satt)
  2. Opprett din første organisasjon:

    • Gå til Organisasjoner → Opprett organisasjon
    • Fyll inn organisasjonsnavn og detaljer
    • Du blir automatisk lagt til som admin
  3. 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
  4. 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
  5. Konfigurer innstillinger (Valgfritt):

    • Lås salg ved behov
    • Sett opp tildelinger for medlemmer
    • Konfigurer sporing av eksternt salg

Testing

API-tester

bash
cd api
npm test

# Kjør spesifikt testmønster
npm test -- orders

E2E-tester

bash
cd frontend
npx playwright test

# Kjør spesifikk testfil
npx playwright test login.spec.ts

Utviklingsnotater

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:

bash
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

Built with VitePress