Skip to content

⛵ Outil de rapportage pour le dispositif de contrôle et surveillance des Affaires Maritimes pour le littoral français

Notifications You must be signed in to change notification settings

MTES-MCT/rapportnav2

Repository files navigation

RapportNav

Quality Gate Status [Build & Test] Frontend [Build & Test] Backend

What is it ?

RapportNav is a mission reporting tools developed by the French administration (https://mer.gouv.fr/).

Stack

  • Infra:
    • Docker
    • GitHub Actions
  • Backend:
    • Gradle
    • Kotlin
    • Spring-boot
    • Flyway migrations
  • Database:
    • PostgreSQL 15
  • Frontend:
    • TypeScript
    • React
    • Vite + Vitest
    • Monitor-ui design system

Development process

Before starting

Before trying to run the project, make sure you have:

  • installed Postgres 15
  • created the rapportnavdb database with the right users and passwords
    • on macOS: createdb rapportnavdb
    • use dropdb rapportnavdb if you wanna start clean
  • created the role postgres: createuser --interactive
    • get into the database: psql -d rapportnavdb -U postgres -h localhost
    • check the role is present with the cmd: \du
  • created a metabase schema" CREATE SCHEMA metabase; and verify with \dn

Running the project

The app is fully dockerized for local development. Run the command make docker-run-local

If you have an Apple chipset don't forget to add the following line in your .bashrc: export DOCKER_DEFAULT_PLATFORM=linux/amd64

Security and Vulnerabilities analysis

The following checks are performed through Github Actions:

Deployment

Pre-requisites

As we are mirroring our repo onto our host's repo, who can also provide changes and commits, make sure to align the two repos before deploying:

  • add mirror if you haven't: git remote add mirror https://gitlab-sml.din.developpement-durable.gouv.fr/num3-exploitation/deploiement-continu/gitlab-ci/applications/rapportnav-v2/rapportnav-v2.git
  • fetch changes: git fetch mirror
    • username: use your @i-carre.net email
    • password: use token provided by other devs or devops at DSI
  • pull changes if existing: git pull mirror main
  • push to this repo if necessary

Instructions

  • Make sure you have the last changes from the mirror: so fetch & pull code from mirror
  • Set version number in build.gradle.kts
  • Set version number in package.json and make front-ci again to regen the package-lock.json
  • Set version number in the variable PROJECT_VERSION in the file .gitlab-ci.yml
  • Create a GitHub release with the same version number
  • check the running release Action
  • check the pipeline here