Denne mappen inneholder frontend-koden for Tavla (Next.js 16, React 19, TypeScript, Tailwind, Firebase-emulator i utvikling).
- Node 22 (bruk gjerne
miseellernvm) - Yarn 4 (Berry) – allerede satt opp i repoet
- Firebase CLI (for emulatorer)
- To interne service key JSON-filer:
ent-tavla-dev-*.jsonogent-tavla-prd-*.json(Disse finner du i teamets passord-manager, de skal ikke sjekkes inn i git)
Frontend-koden ligger i tavla/-mappen i repo-roten (altså tavla/tavla sett fra mappen over repoet). Fra repo-roten:
cd tavla
yarn install --frozen-lockfile
brew install mise
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
exec $SHELL
node -v
# Skal vise v22.x
yarn dev # uten persistering av lokal database
yarn dev:persist # anbefalt – lagrer emulator state (.db)
Tilgang:
- App: http://localhost:3000
- Firebase Emulator UI: http://127.0.0.1:4000/
Dette repoet er admin-/konfigurasjonsappen. Selve tavle-visningen (det som rendres på skjermene) ligger i et eget repo. For å forhåndsvise tavler lokalt må du derfor også kjøre tavla-visning: https://github.com/entur/tavla-visning
Lag .env.localog kopier innnholdet fra teamets passord-manager.
Sentry- og PostHog-variabler er valgfrie og trengs ikke for lokal kjøring.
| Oppgave | Kommando |
|---|---|
| Start dev (persist) | yarn dev:persist |
| Fix (lint + format) | yarn fix |
| Lint | yarn lint |
| Type-sjekk | yarn typecheck |
| Format-sjekk | yarn format |
| Bygg (dev/prod) | yarn build / yarn build:prod |
| GraphQL codegen | yarn generate |
yarn generate bruker oppsett i codegen.ts og graphql.config.json for å generere typer fra skjema.
Frontend kaller Rust-backenden med bearer-token (BACKEND_API_KEY). Sørg for at nøkkelen samsvarer med verdien backend-prosessen forventer. For å peke mot en lokal backend kan du midlertidig endre getBackendUrl() i tavla/src/utils/backendUrl.ts til å returnere 'http://127.0.0.1:3001' (ikke commit denne endringen).
Vi bruker et avgrenset sett gitmoji i starten av commit-meldinger for å gjøre historikken mer skumbar. Start commitmelding med imperativ form ("legg til", "oppdater", "fjern").
Emojis / kategorier:
| Emoji | Kategori | Når brukes |
|---|---|---|
| ✨ | Feature | Ny funksjonalitet / større tillegg |
| 🐛 | Bug | Fikser en konkret feil |
| 📝 | Dokumentasjon | Endrer / legger til dokumentasjon |
| 💄 | Styling | Visuelle endringer (CSS, layout, ikke funksjonell endring) |
| 🧹 | Rydding | Refaktor, fjerner død kode, strukturelle forbedringer |
| 🚸 | Bedre UX | Forbedrer brukeropplevelse / tilgjengelighet |
| 📦 | Pakker | Legger til / oppdaterer avhengigheter |
| 👷 | CI/CD & bygg | Pipelines, byggskript, tooling-infrastruktur |
| 🔒 | Sikkerhet | Sikkerhets- eller personvernrelaterte endringer |
| 📈 | Målinger | Telemetri, logging, målepunkter |
| 🤖 | KI | Skills, instruksjoner og annet som forbedrer bruk av agenter |
Branches kan valgfritt bruke en kort kategori + beskrivelse, f.eks:
feature/filtrering-av-linjer
bugfix/feil-i-refresh-endpoint
rydding/refaktor-board-context
Kjør fra tavla/migrations/. Migreringsscriptet tar inn ett av to argumenter – enten setup eller run:
For å sette opp mijøet for første gang:
./migration setup
For å kjøre en migreringsfil, putt filen i /scripts mappen og kjør:
./migration run scripts/<filnavn>
Du kan teste migreringsskriptene ved å kjøre de lokalt. Trenger du å skaffe deg litt ekte data, kan du "rollbacke" din lokale Firebase med data fra dev 🔥 Dette gjøres slik:
- Avslutt emulatoren (kill typ
yarn dev:persist) - Kjør
./migration run scripts/rollback_firestore.py local - Start emulatoren:
yarn dev:persist
Nå kan du kjøre migrasjonsskriptet ditt som om det var mot dev. Dette korter ned litt på utviklingstiden for migrasjonsskripter.
| Symptom | Mulig årsak | Tiltak |
|---|---|---|
| 401 mot backend | Ulik API-key | Sjekk .env.local og backend miljøvariabel |
| Ingen WebSocket-oppdatering | Backend ikke oppe / CORS | Start backend, sjekk nettleserkonsoll |
| Data forsvinner | Ikke brukt persist | Bruk yarn dev:persist |
| Typefeil etter schema-endring | Codegen ikke kjørt | Kjør yarn generate |