Skip to content

Commit

Permalink
update readme (#541)
Browse files Browse the repository at this point in the history
* update readme

---------

Co-authored-by: Mailn Nifeli Snieske <malin@bekk-mac-3333.shared>
  • Loading branch information
malinnsnieske and Mailn Nifeli Snieske authored Dec 10, 2024
1 parent f480db7 commit 7fc6c3f
Show file tree
Hide file tree
Showing 3 changed files with 131 additions and 243 deletions.
145 changes: 131 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,136 @@
# spire-kk
# Kartverket - Regelrett

Spire: Kartverket - regelrett*
Velkommen til Regelrett!

Solution for receiving information from several views/tables in Airtable and present it in a GUI.
Provides a user interface which allows the user to insert and update answers to the questions to a PostGresQl Database.
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.

See README.md in backend and frontend directories for setup
Følg stegene nedenfor for å komme i gang, og bruk de tilgjengelige skriptene for å administrere prosjektet effektivt.

## How to run using docker
## Sette opp database lokalt
### Steg 1
Start med å klone repoet fra GitHub:

1. Clone the github repository
2. Follow these steps in the backend
readme [Add airtable token](https://github.com/bekk/spire-kk/blob/main/backend/README.md#add-airtable-token)
and [Local Postgres](https://github.com/bekk/spire-kk/tree/main/backend#local-postgres)
3. In compose.yaml change the environment variable `DB_USER` to the username that is given when initializing the
database cluster in the previous step.
4. Run in the root folder `docker compose up`
5. To stop the docker container run `docker compose down`
`git clone <repository-url>`

### Steg 2
For å sette opp databasen må man ha installert Docker. Dette kan du gjøre ved å kjøre denne kommandoen:

`brew cask install docker`

### Steg 3
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`.

### Steg 4
Etter å ha installert Colima, kan du starte det opp ved å kjøre denne kommandoen:

`colima start`

### Steg 5
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!

### Steg 6
Kjør denne kommandoen for å migrere databaseskjemaer som ligger i resources/db.migration:

`./gradlew flywayMigrate`

### Info
- 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`


## Kjøre backend lokalt

### Steg 1
- Gå inn på `Run -> Edit configurations`
- Trykk på + for å legge til ny konfigurasjon og velg KTOR
- Sett `no.bekk.ApplicationKt` som main class

### Steg 2
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`.

### Steg 3
Du skal nå kunne kjøre backend, gå inn på http://localhost:8080

### Mer dokumentasjon
For mer dokumentasjon om [build and deployment](./docs/build-and-deployment.md), [kodestruktur](./docs/code-structure.md) og
[datamodell](./docs/data-model.md) se /docs mappen.


## Kjøre frontend lokalt
Frontend er bygget med React, Vite og TypeScript.

### Steg 1
Før du begynner, sørg for at du har følgende installert:

- **[Node.js](https://nodejs.org)** (versjon 14.x eller nyere)
- **[npm](https://www.npmjs.com/get-npm)**

### Steg 2
Gå inn i frontend mappen:

`cd <repository-directory>/frontend/beCompliant`

### Steg 3
Installer avhengigheter ved å kjøre:

`npm install`

### Steg 4
Forbered Husky (hvis aktuelt) ved å kjøre:

`npm run prepare`

### Steg 5
Start utviklingsserveren ved å kjøre:

`npm run dev`

Dette vil starte Vite utviklingsserveren, og du kan se appen på http://localhost:3000.

### Mer informasjon
- 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](./docs/build-and-deployment.md)
96 changes: 0 additions & 96 deletions backend/README.md

This file was deleted.

133 changes: 0 additions & 133 deletions frontend/beCompliant/README.md

This file was deleted.

0 comments on commit 7fc6c3f

Please sign in to comment.