Opetushallituksen ePerusteet-palvelu tutkintojen ja yleissivistävän koulutuksen opetussuunnitelmien perusteiden laadintaan ja julkaisuun.
https://wiki.eduuni.fi/display/ophpolku/ePerusteet+palvelukokonaisuus
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 osin korvannut uusi eperusteet-ui. Uudesta käyttöliittymästä ei kuitenkaan vielä aivan kaikkea toiminallisuutta löydy, mistä johtuen vanha pyörii edelleen tuotannossa.
Asenna haluammallasi tavalla
- Amazon Corretto JDK 8
- 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.
Jos on tarve kehittää vanhaa käyttöliittymää asenna:
- Nodejs, yo, bower, grunt-cli
- http://nodejs.org/download/
- (sudo) npm -g install yo
- (sudo) npm -g install bower
- (sudo) npm -g install grunt-cli
cd eperusteet/eperusteet-service
mvn clean install -Plocal
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
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 jetty:run -Plocal
Jos muutat tietomallia tai rajapintoja aja tämä:
cd eperusteet/eperusteet-service
mvn clean compile -Pgenerate-openapi
Tämän jälkeen kopio eperusteet/eperusteet-service/target/openapi/eperusteet.spec.json
-tiedoston sisältö tiedostoon eperusteet/generated/eperusteet.spec.json
Päivitys 30.5.2022: API generoidaan buildin yhteydessä github actionsissa joten sitä ei tarvitse enää tehdä käsin.
Jos jostain syystä tulee tarvetta tätä
cd eperusteet/eperusteet-app/yo
npm install
bower install
npm run dev
cd eperusteet/eperusteet-app/yo
npm run unit
IDEAssa saattaa olla helpompi avata vain eperusteet-service koko repon juuren sijaan, sillä joillakin on tullut ide:n sekoilua koko repon avauksen tapauksessa.
Git käytäntönä projektissa on suosittu kehityshaaran squashausta päähaaraan mergettäessä.
Testiympäristöjen swaggerit löytyvät seuraavista osoitteista
Lokit löytyvät AWS:n cloudwatchista
Buildipalveluna käytetään Github Actionsia (build.yml). Pushaaminen remoteen aiheuttaa sen että eperusteet-app ja eperusteet-service buildataan, servicen api:sta generoidaan json tiedosto uusia käyttöliittymiä varten. Tämän jälkeen luodaan kontti-image OPH:n deploytyökaluja varten.
Projekti | Build status | Maintainability | Test Coverage | Known Vulnerabilities |
---|---|---|---|---|
ePerusteet | ||||
ePerusteet-amosaa | ||||
ePerusteet-ylops | ||||
ePerusteet-ui | ||||
eperusteet-ylops-ui | ||||
ePerusteet-amosaa-ui | ||||
ePerusteet-opintopolku | ||||
ePerusteet-backend-utils | ||||
ePerusteet-frontend-utils |