Skip to content

navikt/mulighetsrommet

Repository files navigation

Mulighetsrommet 🎯

Introduksjon

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.

Oppsett

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:

Tooling via asdf

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.

Docker

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

Git hooks

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

Utvikling

Kodeformatering og linting i frontend

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.

Mocks via Wiremock

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

Overvåking av løsninger

Det finnes noen tilgjengelige dashboards, men nytten med disse kan variere:

Moduler

mulighetsrommet-veileder-flate

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/mulighetsrommet-veileder-flate
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mulighetsrommet-veileder-flate/README.md
Url (dev-miljø) https://veilarbpersonflate.intern.dev.nav.no/12118323058

mulighetsrommet-api-client

Klient til frontend for å snakke med backend. Auto-generert med OpenAPI via openapi.yaml i mulighetsrommet-api.

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/mulighetsrommet-api-client
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mulighetsrommet-api-client/README.md
openapi.yaml https://github.com/navikt/mulighetsrommet/tree/main/mulighetsrommet-api/src/main/resources/web/openapi.yaml

mulighetsrommet-veileder-cms

Sanity Studio til forvaltning av informasjon for veiledere.

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/frontend/mulighetsrommet-cms
README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mulighetsrommet-cms/README.md
Url (test-datasett) https://mulighetsrommet-sanity-studio.intern.nav.no/test/desk
Url (prod-datasett) https://mulighetsrommet-sanity-studio.intern.nav.no/production/desk

mulighetsrommet-api

Kildekode https://github.com/navikt/mulighetsrommet/tree/main/mulighetsrommet-api
README https://github.com/navikt/mulighetsrommet/blob/main/mulighetsrommet-api/README.md
Url (dev-miljø) https://mulighetsrommet-api.intern.dev.nav.no/
API (internt) https://mulighetsrommet-api.intern.dev.nav.no/swagger-ui/internal
API (eksternt) https://mulighetsrommet-api.intern.dev.nav.no/swagger-ui/external

mulighetsrommet-kafka-manager

Applikasjon som gir oversikt over kafka-topics relevante for dette prosjektet.

README https://github.com/navikt/kafka-manager
Kildekode https://github.com/navikt/mulighetsrommet/tree/main/iac/kafka-manager
Url (dev-miljø) https://mulighetsrommet-kafka-manager.intern.dev.nav.no
Url (prod-miljø https://mulighetsrommet-kafka-manager.intern.nav.no

mr-admin-flate

Administrasjonsflate for tiltak- og fagansvarlige i NAV som jobber med tiltakstyper og tiltaksgjennomføringer.

README https://github.com/navikt/mulighetsrommet/blob/main/frontend/mr-admin-flate/README.md
Url (demo) https://tiltaksadministrasjon.ekstern.dev.nav.no
Url (dev-miljø) https://tiltaksadministrasjon.intern.dev.nav.no
Url (prod-miljø) https://tiltaksadministrasjon.intern.nav.no

Overvåking av automatiske jobber

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:

Rutiner i teamet

Synkronisere kontaktpersoner til admin-flate

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

Datadeling på Datamarkedsplassen

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

Henvendelser

Spørsmål knyttet til koden eller prosjektet kan stilles via issues her på GitHub.

For NAV-ansatte

Interne henvendelser kan sendes via Slack i kanalen #team-valp