Skip to content

Opetushallitus/koto-rekisteri

Repository files navigation

Kielitutkintorekisteri

Riippuvuudet

  • Docker
  • PostgreSQL
  • maven
  • java 21
  • node 22.9.0
    • npm 10.8.3

Kehittäminen

Paikallinen testaus- ja kehitysympäristö vaatii toimiakseen PostgreSQL -tietokannan. Tietokantaa ajetaan Dockerissa ja ne saa käyntiin docker compose:lla. Tietokannan skeema alustetaan migraatioilla. Migraatiotyökaluna käytössä on Flyway. Migraatioiden suorittamiseen paikallisessa kehitysympäristössä on konfiguroitu Maven-liitännäinen.

docker compose up -d db # Käynnistä tietokanta
./mvnw flyway:migrate # Aja migraatiot

Kontissa suoritetaan PostgreSQL -palvelinohjelmaa, johon on konfiguroitu tietokannat kitu-dev (paikallisen kehitysympäristön käyttöön) ja kitu-test (automaattisille testeille). Flyway alustaa tietokannan skeeman migraatioilla.

mise

Javan ja noden voi asentaa mise-työkalulla. Misen asennus onnistuu homebrewlla (brew install mise) tai vaihtoehtoisilla tavoilla. Asennettuasi misen voit ajaa komennon mise install, ja oikeat java- ja node-versiot asentuvat.

Linttaus

Sovelluksessa käytetään ktlint - teknologiaa kotlin - tiedostojen tyylittämiseen. MacOS:llä sen saa asennettua ajamalla brew install ktlint. IntelliJ IDEA:aan saa plugin ktlint, jonka asentamisen jälkeen IDEA:n voi laittaa formatoimaan tallentamisen yhteydessä Settings -> Tools -> KtLint alta Mode: Distract free - radiobutton ja Format: on save - checkbox täpätty.

IDEA

Frontendia varten on .run - kansiossa Konfiguraatio, jolla voi ajaa nodea IDEA:sta.

Hyödyllisiä komentoja

# Jos haluat lisätä formatointitarkastuksen commitin luonnin yhteyteen
./scripts/setup-hooks.sh

# Tarkista formatointi. Voit formatoida koodin ajamalla `ktlint --format`
ktlint

# paketoi projektin.
mvn package

# Voit käyttää tätä jos ajat ympäristöä terminaalin kautta
./mvnw spring-boot:run

# e2e-testien ajaminen e2e-hakemistossa
# Playwrightin UI testien ajamiseen --ui flagilla
npx playwright test

Ympäristöt

Sovellus julkaistaan kolmelle AWS-tilille:

Nimi AWS-tili
dev 682033502734
test 961341546901
prod 515966535475

Julkaisu tapahtuu automaattisesti GitHub Actions -palvelussa Build-tiedoston mukaisesti jokaisella main-haaran päivityksellä. Julkaisun voi myös ajaa omalta koneelta komennoilla:

(cd infra && npx cdk deploy 'Util/**')
(cd infra && npx cdk deploy 'Dev/**')
(cd infra && npx cdk deploy 'Test/**')
(cd infra && npx cdk deploy 'Prod/**')