-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* update readme --------- Co-authored-by: Mailn Nifeli Snieske <malin@bekk-mac-3333.shared>
- Loading branch information
1 parent
f480db7
commit 7fc6c3f
Showing
3 changed files
with
131 additions
and
243 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.