Skip to content

eOpetussuunnitelmat ja tutkinnot

License

Notifications You must be signed in to change notification settings

Opetushallitus/eperusteet

Repository files navigation

Eperusteet

Build Status

1. Palvelun tehtävä

Opetushallituksen ePerusteet-palvelu tutkintojen ja yleissivistävän koulutuksen opetussuunnitelmien perusteiden laadintaan ja julkaisuun.

Palvelukortti

https://wiki.eduuni.fi/display/ophpolku/ePerusteet+palvelukokonaisuus

2. Arkkitehtuuri

Javalla ja Springillä toteutettu web service (eperusteet-service kansio). Tarjoaa rajapinnan eperusteet-ui:lle ja ulkoisille palveluille. Tallentaa tiedot postgreSQL-kantaan.

Sisältää myös vanhan eperusteet käyttöliittymän (eperusteet-app kansio) mutta tämän on jo korvannut uusi eperusteet-ui.

3. Kehitysympäristö

3.1. Esivaatimukset

Asenna haluammallasi tavalla

  • Amazon Corretto JDK 11
  • Maven 3
  • Docker
  • luo dev-settingsin mukaiset käyttäjäkohtaisten asetusten tiedostot annettuihin polkuihin ja täytä omilla tiedoilla

Riippuvuuksien takia käännösaikana tarvitaan pääsy sisäiseen pakettien hallintaan, koska osa paketeista (lähinnä build-parent) ei ole julkisissa repoissa.

Ajoaikana riippuu mm. keskitetystä autentikaatiosta (CAS), käyttäjähallinnasta, organisaatiopalvelusta ja koodistosta joihin täytyy olla ajoympäristöstä pääsy.

3.2. Testien ajaminen

cd eperusteet/eperusteet-service
mvn clean install

3.3. Migraatiot

Tietokantamigraatiot on toteutettu flywaylla ja ajetaan automaattisesti kännistyksen yhteydessä. Migraatiotiedostot löytyvät kansioista

eperusteet/eperusteet-service/src/main/resources/db/migration

eperusteet/eperusteet-service/src/main/java/db/migration

3.4. Ajaminen lokaalisti

Tietokantojen lokaalia pyöritystä varten luo koneellesi esim projektin juureen docker-compose.yml tiedosto jonka sisältö on alla:

version: "3.1"
services:
  eperusteet:
    image: postgres:12.10
    environment:
      POSTGRES_USER: oph
      POSTGRES_PASSWORD: test
      POSTGRES_DB: eperusteet
    ports:
      - "127.0.0.1:5432:5432"
    #volumes:
    #  - "./eperusteet:/var/lib/postgresql/data"
  eperusteet-amosaa:
    image: postgres:12.10
    environment:
      POSTGRES_USER: oph
      POSTGRES_PASSWORD: test
      POSTGRES_DB: amosaa
    ports:
      - "127.0.0.1:5433:5432"
    #volumes:
    #  - "./eperusteet:/var/lib/postgresql/data"
  eperusteet-ylops:
    image: postgres:12.10
    environment:
      POSTGRES_USER: oph
      POSTGRES_PASSWORD: test
      POSTGRES_DB: ylops
    ports:
      - "127.0.0.1:5434:5432"
    #volumes:
    #  - "./eperusteet:/var/lib/postgresql/data"

aja tiedoston kanssa samassa kansiossa komento docker compose up

Tämän jälkeen palvelun saa käyntiin seuraavilla komennoilla:

cd eperusteet/eperusteet-service
mvn spring-boot:run -Dspring-boot.run.profiles=default,dev

  API-generointi

Jos muutat tietomallia tai rajapintoja aja tämä (vaatii https://github.com/casey/just):

just gen_openapi

ExternalController-rajapintojen muutoksien jälkeen aja tämä:

just gen_openapi_ext

3.4.1. Kikkoja lokaaliin kehitykseen

3.5. IDE setup

IDEAssa saattaa olla helpompi avata vain eperusteet-service koko repon juuren sijaan, sillä joillakin on tullut ide:n sekoilua koko repon avauksen tapauksessa.

3.6. Versiohallinta

Git käytäntönä projektissa on suosittu kehityshaaran squashausta päähaaraan mergettäessä.

4. Ympäristöt

4.1. Testiympäristöt

Testiympäristön rajapintojen swaggerit löytyvät osoitteesta virkailija.testiopintopolku.fi/eperusteet-service/swagger External-rajapintojen swaggerit löytyvät osoitteesta opetushallitus.github.io/eperusteet

4.3. Lokit

Lokit löytyvät AWS:n cloudwatchista

4.4. Continuous integration

Buildipalveluna käytetään Github Actionsia (build.yml). Pushaaminen remoteen aiheuttaa sen että eperusteet-ui ja eperusteet-service buildataan. Tämän jälkeen luodaan kontti-image OPH:n deploytyökaluja varten.

ePerusteet-projektit

Projekti Build status Maintainability Test Coverage Known Vulnerabilities
ePerusteet Build Status Maintainability Test Coverage
ePerusteet-amosaa Build Status Maintainability Test Coverage
ePerusteet-ylops Build Status Maintainability Test Coverage
ePerusteet-ui Build Status Maintainability
eperusteet-ylops-ui Build Status Maintainability
ePerusteet-amosaa-ui Build Status Maintainability
ePerusteet-opintopolku Build Status Maintainability Test Coverage
ePerusteet-backend-utils Build Status Maintainability
ePerusteet-frontend-utils Build Status Maintainability
ePerusteet-pdf Build Status Maintainability
eperusteet-e2e-smoke-test Build Status Maintainability