Velkommen til Regelrett!
Denne applikasjonen er bygget for visning av data i tabellformat på en oversiktlig og brukervennlig måte. Løsningen støtter for øyeblikket data fra AirTable og YAML-filer. Den er utviklet med fokus på å hjelpe brukere med å oppfylle krav og standarder ved å gi en strukturert oversikt over nødvendige data. Brukere kan legge inn svar i ulike formater samt legge til kommentarer direkte i tabellens rader, noe som gjør det enkelt å holde oversikt over status og nødvendig informasjon. Løsningen er fleksibel og tilrettelagt for videre utvidelser etter behov.
Følg stegene nedenfor for å komme i gang, og bruk de tilgjengelige skriptene for å administrere prosjektet effektivt.
Start med å klone repoet fra GitHub:
git clone <repository-url>
For å sette opp databasen må man ha installert Docker. Dette kan du gjøre ved å kjøre denne kommandoen:
brew cask install docker
Du trenger også et verktøy for håndtering av containere eller et container-runtime miljø som lar deg kjøre containere på din lokale maskin. Du kan bruker docker desktop dersom du har det. Hvis ikke kan du bruke Colima. Last ned Colima ved å kjøre denne kommandoen:
brew install colima
.
Etter å ha installert Colima, kan du starte det opp ved å kjøre denne kommandoen:
colima start
Når du har Colima eller Docker Desktop kjørende, kjør denne kommandoen:
docker run --name regelrett-db -it -e POSTGRES_PASSWORD=pwd -e POSTGRES_USER=postgres -e POSTGRES_DB=regelrett -p 5432:5432 -d postgres:15.4
Nå skal databasen være oppe og kjøre!
Kjør denne kommandoen for å migrere databaseskjemaer som ligger i resources/db.migration:
./gradlew flywayMigrate
- Filen curl.txt inneholder curl kommandoer for å utføre spørringer mot Airtable
- Applikasjonen bruker en PostgresQl Database, og Flyway migration for å gjøre endringer på databaseskjemaer.
- Alle filer i Flyway migration script må ha følgende format:
<Version>__<Description>.sql
For eksempel: V1.1__initial.sql
- Databasen heter "regelrett", og må foreløpig settes opp lokalt på utviklerens maskin utenfor Flyway.
- Databasemigreringer kjører automatisk ved oppstart av applikasjonen, eller så kan de kjøres manuelt med
./gradlew flywayMigrate
- Gå inn på
Run -> Edit configurations
- Trykk på + for å legge til ny konfigurasjon og velg KTOR
- Sett
no.bekk.ApplicationKt
som main class
Du trenger å sette følgende miljøvariabler:
AIRTABLE_ACCESS_TOKEN
CLIENT_ID
CLIENT_SECRET
TENANT_ID
For å få tilgang til hemmelighetene, spør noen på teamet om å gi deg tilgang til 1Password vaulten.
AIRTABLE_ACCESS_TOKEN
er lagret under AirTable
i vaulten, og CLIENT_ID
, CLIENT_SECRET
og TENANT_ID
er lagret under EntraId
.
Du kan sette miljøvariablene i IntelliJ ved å gå inn på Run -> Edit configurations
.
Du skal nå kunne kjøre backend, gå inn på http://localhost:8080
For mer dokumentasjon om build and deployment, kodestruktur og datamodell se /docs mappen.
Frontend er bygget med React, Vite og TypeScript.
Før du begynner, sørg for at du har følgende installert:
Gå inn i frontend mappen:
cd <repository-directory>/frontend/beCompliant
Installer avhengigheter ved å kjøre:
npm install
Forbered Husky (hvis aktuelt) ved å kjøre:
npm run prepare
Start utviklingsserveren ved å kjøre:
npm run dev
Dette vil starte Vite utviklingsserveren, og du kan se appen på http://localhost:3000.
- For å sikre kodekvalitet, kjør lint-verktøyet:
npm run lint
- For å automatisk fikse lintingproblemer:
npm run lint-fix
- For å formatere kodebasen med Prettier:
npm run format
. Dette vil formatere alle filer i src-mappen - For å lage en produksjonsklar versjon av prosjektet:
npm run build
. Dette vil kompilere TypeScript-filene og pakke applikasjonen ved hjelp av Vite. Output vil bli plassert i dist-mappen, klar for utrulling. - Før du ruller ut, kan du forhåndsvise produksjonsbygget lokalt:
npm run preview
. Denne kommandoen vil servere produksjonsbygget på en lokal server, slik at du kan verifisere at alt fungerer som forventet. - Husky er konfigurert til å kjøre visse skript før commits blir fullført. Dette inkluderer linting og TypeScript-sjekker
for å sikre kodekvalitet og konsistens. For å manuelt utløse disse sjekkene, kan du kjøre:
npm run pre-commit
. Dette vil kjøre lint-staged for å sjekke de stage’ede filene og sikre at TypeScript-filene er feilfrie før de blir committet. - Dette prosjektet bruker TanStack Query (tidligere kjent som React Query) for å håndtere nettverksforespørsler og servertilstand. TanStack Query forenkler datainnhenting, caching, synkronisering og oppdatering av servertilstand i React-applikasjoner. Ved å bruke dette kraftige biblioteket sikrer prosjektet effektiv og pålitelig datahåndtering, minimerer unødvendige nettverksforespørsler, og gir en optimal brukeropplevelse med automatiske bakgrunnsoppdateringer og feilhåndtering. Se dokumentasjonen for Tanstack Query her https://tanstack.com/query/latest
- For mer dokumentasjon om Build and deployment