Skip to content

vektorprogrammet/api

Repository files navigation

Vektorprogrammets API

Kildekoden er på engelsk.

Innholdsfortegnelse

Mappestruktur

Kildekoden er på engelsk For at testene skal fungere, bruk node version >=22

  • /
    • db/ database modul
    • lib/ generell delt kode
    • src/ serverkode (CORE og API samlet)

Oppsett

Start med å kjøre

pnpm install

og pass på at du har fått installert alle avhengighetene riktig. Deretter lag en .env-fil for å lage egne miljøvariabler. Start med å sette:

PORT=*porten du vil kjøre apien fra, f.eks. 8080*

HOSTING_URL=*urlen du kjører apiet fra, f.eks. localhost*

Deretter må du sette opp databasetilkoblingene.

Nå legger du inn databasetilkoblingsinnstillingene som miljøvariabler, anbefaler å bruke en .env fil. Du må legge inn alle disse innstillingene:

DATABASE_HOST=*f.eks. localhost*
DATABASE_PORT=*f.eks. 5432*
DATABASE_NAME=*f.eks. vektorpostgres*
DATABASE_USER=*f.eks. postgres*
DATABASE_PASSWORD=*f.eks. pass123*

Eventuelt kan du sette:

LOG_DATABASE_CREDENTIALS_ON_STARTUP=true

for å sjekke at tilkoblingsinstillingene til databasen ser bra ut når du kjører appen.

Med lokal database

Kjør:

docker compose up scriptet

og databasen burde være oppe og gå med en gang. I .env sett

DATABASE_SSL_OPTION=false

fordi lokale databaser ikke tillater ssl-tilkoblinger.

Med dev-database på digital ocean

Du finner tilkoblingsinnstillingene på digital ocean. Siden databasen fortsatt er i utvilking og vi ikke har skaffet et CA-sertifikat til den enda, må du sette:

DATABASE_SSL_OPTION=dev

Eventuelt kan du kopiere CA-serifikatet til databasen fra digital ocean og sette dette i en miljøvariabel, men dette er unødvendig under utvilking. Om du uansett vil prøve må du sette:

DATABASE_SSL_OPTION=prod-provide_ca_cert

og

CA_CERT=*CA-sertifikatet*

i .env.

For å kjøre appen og migrere databasen, se scripts.

Recommended Extensions

Imports Autocomplete

christian-kohler.npm-intellisense

Formatting and Linting

biomejs.biome

Configure format on save in VSCode

Paste the following into .vscode/settings.json

{
  "editor.formatOnSave": true,
  "[typescript]": {
    "editor.defaultFormatter": "biomejs.biome"
  }
}

Pretty TypeScript Errors

YoavBls.pretty-ts-errors

Scripts

Development

Run server

pnpm dev:once

Run server, watch for changes:

pnpm dev

Run tests in /src/tests:

pnpm test

Linting and formatting

Format files, safe fixes applied:

pnpm format

Lint files in, safe fixes applied:

pnpm lint

Format and lint files, safe fixes applied:

pnpm check

Production

Build into /build:

pnpm build

Run the built javascript in /build:

pnpm start

Build, then start:

pnpm prod

Database

Start a postgres database in a docker container:

docker compose up

Generate migration files to /db/migrations:

pnpm db:generate

Migrate the database with the generated migrationfiles in /db/migrations:

pnpm db:migrate

Open the database in the drizzle studio interface:

pnpm db:studio

Seed the database with random, but deterministic values:

pnpm db:seed

Info

Tabellnavn er i flertall (users > user)

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •