Keskeiset entiteetit, ja järjestelmät, joihin nämä tallennetaan.
käsite
selite
tunniste
tallennuspaikka
Koodisto
Kooditus objekteille, esim tutkintonimikkeet
id (tekstiä)
Koodistopalvelu
Koodi
Yksittäisen objektin koodi koodistossa
id (tekstiä)
Koodistopalvelu
Exam
Koe tyyppi (SUKO / LD / PUHVI)
-
-
ContentType
Sisältö tyyppi (koetehtävä / ohje / todistus)
Assignment
Koetehtävä
Instruction
Ohjeet ja tukimateriaalit
Teknologiat
Nämä ovat keskeiset LUDOS-järjestelmässä käytettävät teknologiat. Lista kuvaa järjestelmän nykytilaa ja muuttuu matkan varrella tarpeen mukaan.
PostgreSQL xx.xx -tietokanta
Palvelinteknologiat
Kotlin (Java 25)
Spring boot
Flyway-migraatiotyökalu kannan skeeman rakentamiseen ja päivittämiseen kehityksessä ja tuotannossa
Gradle buildaa
Web-sovelluksen frontend-teknologiat
npm-työkalu riippuvuuksien hakuun
Vite
TypeScript
React
Tailwind
Playwright e2e-testaukseen
Tiptap tekstieditori
Kehitystyökalut
Minimissään tarvitset nämä:
JDK 25
Docker PostgreSQL:n
Node ^20.0.0
Tarvittaessa tmux start-local.sh-skriptiä varten
AWS-tunnusten konffaus
Hanki käyttäjätunnukset OPH:n AWS:ään (oph-aws-sso). Käyttäjätunnuksen tulee kuulua LudosAdmins-ryhmään tai muuten omata AdministratorAccess-policy seuraavilla tileillä:
oph-ludos-dev, accountId = 782034763554
oph-ludos-qa, accountId = 260185049060
oph-ludos-prod, accountId = 072794607950
oph-ludos-utility, accountId = 505953557276
Asenna AWS CLI ja konffaa tilit siihen tiedostoon ~/.aws/config. Esimerkki:
Ludos
Wiki: https://wiki.eduuni.fi/display/OPHPALV/LUDOS
Ludos lokaalit linkit
http://localhost:8000/api/test/mocklogin/YLLAPITAJA
Trivy
https://trivy.util.yleiskayttoiset.opintopolku.fi/muut.html
Käsitteet
Keskeiset entiteetit, ja järjestelmät, joihin nämä tallennetaan.
Teknologiat
Nämä ovat keskeiset LUDOS-järjestelmässä käytettävät teknologiat. Lista kuvaa järjestelmän nykytilaa ja muuttuu matkan varrella tarpeen mukaan.
Kehitystyökalut
Minimissään tarvitset nämä:
start-local.sh-skriptiä vartenAWS-tunnusten konffaus
aws --profile oph-ludos-dev sso loginaws --profile oph-ludos-dev s3 lspitäisi listata bucketitAjaminen paikallisesti
Oikotie kehitysympäristön käyynistykseen
./start-local.shBackend
Käynnistä ensin PostgreSQL tietokanta Dockerissa projektin juuressa:
docker compose upBackendiä ajettaessa on valittava sopiva ympäristöprofiili:
local= devaus ja testaus osoitteessa localhost:8000 (vite) tai localhost:8080 (buildattu)untuva= https://ludos.untuvaopintopolku.fi/ = AWS Fargatessa pyörivä Untuva-LUDOSqa= https://ludos.testiopintopolku.fi/ = AWS Fargatessa pyörivä QA-LUDOSprod= https://ludos.opintopolku.fi/ = AWS Fargatessa pyörivä Tuotanto-LUDOSSalaisuuksien hakeminen:
server/.envjaplaywright/.env, jossa tarvittavat salaisuudet serverin ajamiseen ja testaamiseen:aws --profile oph-ludos-dev sso login && aws --profile oph-ludos-utility sso login && scripts/fetch_secrets.shVaihtoehtoja backendin ajamiseen:
LudosApplication.kt:n main-metodi IDEAsta. Lisää run configurationiin halutut profiilit, esim.localja lisää working directoryserverSPRING_PROFILES_ACTIVE=local server/gradlew bootRun -p server bootRunyarn build:docker:local+yarn run:docker(profiili kovakoodattulocal)cd server && ./gradlew build -x test && LUDOS_PROFILES=local ../docker-build/run.shyarn dev:webois päällä, vaan on ajettavayarn build:weberikseen joka kerta.yarn dev:webja käyttää selaimessa porttia8000eikä8080niin autoreloadid yms toimiiBackend-testit ajetaan esim. komennolla
yarn test:server.Frontend
Playwright e2e
Skriptit
/scriptsfetch_secrets.shhakee AWS-secrets-managerista backendin tarvitsemat salaisuudet ja tallentaa ne.env-tiedostoihinupdate_backups.shkopio lokalisaatio ja koodisto palveluista Ludokseen tarvittavat datat/server/src/main/resources/backup_data-kansioon. Skripti ajautuu git on-push hookissa.localizations.tskomentorivi wrapperi lokalisaatio palvelulle. Käyttohjeet:yarn localizations, sekä käyttö esimerkkejä: https://wiki.eduuni.fi/pages/viewpage.action?pageId=380016595Riippuvuuksien päivitykset
Backend
cd server./gradlew refreshVersionslisää saatavilla olevat uudemmat versiot versions.propertiesiin kommentteina./gradlew clean test --rerun-tasksFrontend
cd webyarn upgrade --latest--latestcd .. && yarn playwrightAWS Infrastructure
Tekninen dokumentaatio
eduuni-wikissä: https://wiki.eduuni.fi/display/OPHPALV/LUDOS_tekninen+dokumentaatio (vaatii kirjautumisen)