Mulighetsrommet er en applikasjonsportfølje som skal hjelpe brukere og veiledere til å få en helhetlig oversikt over alle arbeidsmarkedstiltak NAV kan tilby. Brukere vil på sikt få en oversikt gjennom en egen åpen flate med sine muligheter og kan selv melde sin interesse på diverse tiltak, oppfølging eller kurs. Veiledere vil også kunne få en samlet oversikt over all informasjon fra flere fagsystemer som Navet og Arena. Hensikten er å kunne gi begge parter lett tilgang til den samme kvalitetssikret tiltaksinformasjonen som vi har i NAV.
Dette prosjektet er strukturert som et monorepo, der både backend- og frontend-kode er organisert i samme kodebase. Enn så lenge benytter vi følgende tooling for å kjøre tasks for henholdsvis backend og frontend:
- Gradle med subprojects
- Turborepo i kombinasjon med NPM workspaces
Om ønskelig så kan asdf benyttes til å installere verktøyene som trengs for å kjøre dette
prosjektet lokalt.
Dette prosjektet inkluderer en asdf
.tool-versions-fil
som spesifiserer versjoner for runtime-avhengigheter som matcher det vi kjører på Github Actions (CI) og på NAIS.
For å benytte asdf
så må du installere programmet og deretter
plugins for hver toolchain eller verktøy du ønsker å administrere med asdf
(du kan utelate plugins etter eget ønske
hvis du ønsker å administrere dette manuelt i stedet):
asdf plugin-add java
asdf plugin-add gradle https://github.com/rfrancis/asdf-gradle.git
asdf plugin-add nodejs
asdf plugin-add kubectl https://github.com/asdf-community/asdf-kubectl.git
Når plugins er installert så kan du kjøre kommandoen asdf install
i rot av prosjektet, samt for hver
gang .tools-versions
har endret seg.
For å gjøre utvikling på lokal maskin enklere benytter vi Docker og Docker Compose til å kjøre databaser og mocks av tredjeparts tjenester. Sørg for å ha Docker installert, se instruksjoner for Mac eller Ubuntu.
Når installasjon er fullført kan du bl.a. benytte følgende kommandoer til å administrere containere definert
i docker-compose.yaml
:
# Starter alle containere som trengs for lokal utvikling
docker compose --profile dev up -d
# Stopper alle containere
docker compose -p mulighetsrommet down
# Stopper alle containere og sletter samtidig tilhørende volumer
docker compose -p mulighetsrommet down -v
For å gjøre noen rutineoppgaver enklere er det mulig å installere følgende git hooks på eget initiativ (ikke en komplett liste, blir oppdatert etter hvert som behovet oppstår):
- Installasjon av pre-commit hook for å kjøre
ktlintFormat
på endrede filer: Kjør kommando./gradlew addKtlintFormatGitPreCommitHook
- Installasjon av pre-commit hook for å kjøre
ktlintCheck
på endrede filer: Kjør kommando./gradlew addKtlintCheckGitPreCommitHook
Vi bruker prettier for kodeformatering og eslint for linting.
Du kan kjøre npm run fix-lint
for å formatere koden i forhold til Prettier-konfigurasjon, og samtidig fikse lintefeil.
Vi har en rekke mocks for tredjeparts tjenester som blir administrert via Wiremock i docker-compose.yaml og som blir benyttet når du kjører tjenestene i dette prosjektet på lokal maskin. Se konfigurasjonen der for hvor mockene er definert hvis du ønsker å utvide med flere responser.
Følgende endepunkter kan være kjekke for benytte under testing:
- Get all mocks:
curl -XGET http://localhost:8090/__admin/mappings
- Reload mocks:
curl -I -XPOST http://localhost:8090/__admin/mappings/reset
Det finnes noen tilgjengelige dashboards, men nytten med disse kan variere:
Klient til frontend for å snakke med backend. Auto-generert med OpenAPI via openapi.yaml
i mulighetsrommet-api
.
Sanity Studio til forvaltning av informasjon for veiledere.
Applikasjon som gir oversikt over kafka-topics relevante for dette prosjektet.
Administrasjonsflate for tiltak- og fagansvarlige i NAV som jobber med tiltakstyper og tiltaksgjennomføringer.
Vi har satt opp to Slack-bots som kan gi beskjed til oss på Slack i kanalen #team-valp-monitoring dersom det oppstår feil under kjøring av de automatiske jobbene.
Botene finner man her:
- Dev-monitorering: https://api.slack.com/apps/A04PW7S8J94/general
- Prod-monitorering: https://api.slack.com/apps/A04Q2NNABDZ
For å legge til eller fjerne kontaktpersoner i admin-flate så går du til https://portal.azure.com/#view/Microsoft_AAD_IAM/GroupDetailsMenuBlade/~/Members/groupId/0fdd133a-f47f-4b95-9a5e-f3a5ec87a472/menuId/ og logger inn med din nav-bruker.
Velg så Members -> Add members -> Søk opp personen med navn -> Huk av og velg Select. Synkronisering av kontaktpersoner kjører en gang i timen, så du må potensielt vente en time før kontaktpersonen blir tilgjengelig i admin-flate.
MERK: Hvis du mangler tilgang til AD så kan du selv be om tilgang ved å følge beskrivelse her: https://github.com/navikt/azure-ad-self-service/blob/main/DirectoryRead/README.md
Vi har to datasett tilgjengelig på datamarkedsplassen. Det er data om tiltakstypene vi skal migrere og data om tiltaksgjennomføringer. Datasettene finner du her: https://data.intern.nav.no/dataproduct/5755b188-6670-41a2-8bbc-74fba810bd9e/Data%20om%20arbeidsmarkedstiltak%20fra%20Team%20Valp
Spørsmål knyttet til koden eller prosjektet kan stilles via issues her på GitHub.
Interne henvendelser kan sendes via Slack i kanalen #team-valp