Kildekoden er på engelsk.
Kildekoden er på engelsk For at testene skal fungere, bruk node version >=22
/db/database modullib/generell delt kodesrc/serverkode (CORE og API samlet)
Start med å kjøre
pnpm installog 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=truefor å sjekke at tilkoblingsinstillingene til databasen ser bra ut når du kjører appen.
Kjør:
og databasen burde være oppe og gå med en gang.
I .env sett
DATABASE_SSL_OPTION=falsefordi lokale databaser ikke tillater ssl-tilkoblinger.
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=devEventuelt 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_certog
CA_CERT=*CA-sertifikatet*i .env.
For å kjøre appen og migrere databasen, se scripts.
The API sends email through Gmail using OAuth 2.0. Add the following values to your .env file:
GOOGLE_FROM_EMAIL=vektorbot@vektorprogrammet.no
GOOGLE_CLIENT_ID=*Google OAuth client ID*
GOOGLE_CLIENT_SECRET=*Google OAuth client secret*
GOOGLE_REFRESH_TOKEN=*OAuth refresh token for the sender account*GOOGLE_FROM_EMAIL is the email address used as the sender. GOOGLE_CLIENT_ID and
GOOGLE_CLIENT_SECRET identify the OAuth client, and GOOGLE_REFRESH_TOKEN lets
the API obtain access to Gmail without storing the account password. All four
values are required for the API to start. Keep the client secret and refresh token
private, and do not commit them to the repository.
christian-kohler.npm-intellisense
Paste the following into .vscode/settings.json
{
"editor.formatOnSave": true,
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
}
}Run server
pnpm dev:onceRun server, watch for changes:
pnpm devRun tests in /src/tests:
pnpm testFormat files, safe fixes applied:
pnpm formatLint files in, safe fixes applied:
pnpm lintFormat and lint files, safe fixes applied:
pnpm checkBuild into /build:
pnpm buildRun the built javascript in /build:
pnpm startBuild, then start:
pnpm prodStart a postgres database in a docker container:
docker compose upGenerate migration files to /db/migrations:
pnpm db:generateMigrate the database with the generated migrationfiles in /db/migrations:
pnpm db:migrateOpen the database in the drizzle studio interface:
pnpm db:studioSeed the database with random, but deterministic values:
pnpm db:seedTabellnavn er i flertall (users > user)