Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: introduce documentation skeleton #467

Merged
merged 3 commits into from
Jan 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added docs/.nojekyll
Empty file.
47 changes: 47 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# RapportNav

## Rédiger simplement les compte-rendus de missions des affaires maritimes

RapportNav est l’application de rédaction de rapport qui vise à remplacer la multiplicité des outils et formats de rapport par un unique compte rendu de mission. L’ensemble des statistiques en sont ensuite extraites. L’agent est guidé pour rédiger son rapport au fil de sa mission. Cet outil présente encore des problèmes de développement et agrandit son périmètre d'intervention (outil utilisable par les ULAM, les patrouilleurs, et les agents Navpro).

Lien vers la page Produit : https://beta.gouv.fr/startups/rapportnav.html

### Contexte

Le Dispositif de Contrôle et de Surveillance (DCS) des Affaires Maritimes englobe l’ensemble des moyens des Affaires Maritimes dédiés aux contrôles des pêches, de l’environnement marin, du travail et de la navigation maritime. Ces unités interviennent sur plusieurs politiques publiques avec, pour chacune, plusieurs donneurs d’ordres et centres de coordination nationale, chacun exigeant la transmission d’un rapport à un format spécifique avec les données le concernant.
Problème

Nous listons plusieurs problèmes:
- La multiplication des demandes de rapports avec des modalités et formats différents aux unités est fortement chronophage pour elles.
Les modalités de comptabilisation et de rapportage variant au niveau local, il est complexe de construire une vision nationale de l’action de l’État.
- L’hétérogénéité de la qualité des données collectées ne permet pas une analyse pertinente de la situation sur le terrain
Des outils de rapportage et de ciblage comme Monitor Fish et Monitor Env se développent sur le périmètre de la pêche et de l’environnement marin, mais n’adressent qu’une partie du périmètre d’activités des unités concernées

### Solution

RapportNav est initialement une application de rédaction de rapport qui vise à remplacer la multiplicité des outils et formats de rapport par un unique compte-rendu de mission. L’ensemble des statistiques en sont ensuite extraites. Nous souhaitons refondre l’expérience utilisateur du RapportNav existant afin d’optimiser son usage par les unités terrain, et ainsi la qualité des données saisies. L’engagement des bureaux de la DGAMPA dans l’analyse de ces données permettra d’améliorer les orientations et la coordination des actions des unités sur le terrain, et de maximiser leur impact auprès des citoyens. Les périmètres où nous souhaitons améliorer l’impact de l’action de l’État : la pêche, la protection de l’environnement marin, les conditions de travail des gens de mer, la navigation maritime, la sécurité des navires.
Étapes

La 1ere version de Rapport Nav a eu plusieurs objectifs:
- Unifier la rédaction des rapports de missions pour les ULAM : le produit s’est d’abord focalisé sur la suppression de rapports existants et redondants rédigés par les agents des Unités Littorales des Affaires Maritimes (ULAM).
- Extension aux Patrouilleurs des Affaires Maritimes (PAM) : l’inclusion des Patrouilleurs des Affaires Maritimes (PAM) comme bénéficiaires du produit permet d’aller plus loin dans l’unification du rapportage.

Sur la base de cet existant, une réflexion pour faire de Rapport Nav une start up d’état a été mise en œuvre. À cette occasion, nous avons retravaillé la trajectoire du produit mais aussi son impact.
Impact
- Faciliter la saisie des informations pour les unités sur le terrain, et donc maximiser la qualité des données collectées
- Optimiser la visibilité des activités terrain mais aussi l’utilisation des moyens mis à disposition des unités par l’Etat.
- Faciliter le partage et la diffusion d’information sur les contrôles effectués par les affaires maritimes, au sein des affaires maritimes ainsi qu’avec les autres administrations.
- Permettre aux bureaux concernés de définir des grandes orientations sur les missions de surveillance et contrôle, et de constater les résultats de ces actions
- Permettre aux unités de mieux cibler leurs actions sur le terrain
- le cas échéant, améliorer la réglementation pour la rendre plus applicable
- Mieux protéger la population halieutique, l’environnement nautique, les gens de mer dans l’exercice de leur activité, les individus pratiquant des activités nautiques de plaisance

### Futurs développements

Rapport Nav est actuellement utilisé par l’ensemble des agents des ULAM et en partie par les PAM. Les futurs développements doivent permettre :
- d’améliorer l’expérience utilisateur de l’outil afin de faciliter la saisie des informations,
- d’harmoniser le schéma de données avec ceux de Monitor Fish et Monitor Env afin que les données soient interopérables, et que ces applications puissent être utilisées de manière complémentaire,
- de prendre en compte les besoins spécifiques de chacun des bureaux engagés dans la démarche d’amélioration du ciblage des contrôles des unités terrain, en commençant par le bureau des gens de mer.

Ces futurs développements s’inscrivent dans le cadre d’un changement de procédure pour les unités terrain.

6 changes: 6 additions & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<!-- docs/_sidebar.frontend.md -->
* [Home](/)
* [Concepts généraux](concepts/index)
* [Fonctionnalités utilisateurs](features/index)
* [Concepts techniques](engineering/index)
* [Process opérationnels](operations/index)
6 changes: 6 additions & 0 deletions docs/concepts/_sidebar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* [Retour](/)
* [Concepts et Objectifs](concepts/index)
* [Utilisateurs](concepts/users.md)
* [Missions](concepts/missions.md)
* [MonitorEnv & MonitorFish](concepts/fish-env.md)
* [Entités à maîtriser](concepts/main-entities.md)
35 changes: 35 additions & 0 deletions docs/concepts/fish-env.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Co-saisie avec MonitorFish et MonitorEnv

Il y a un concept essentiel à assimiler ici : RapportNav n'est pas un outil standalone, il dépend de [MonitorFish et MonitorEnv](https://beta.gouv.fr/startups/monitorfish.html) pour exister.
Ces 3 softwares sont intimement liés.

## Leur raison d'être

Monitor est là pour optimiser l’effort de contrôle en permettant aux agents de mener des actions les plus efficientes possibles (notion de coût/efficacité de la mission), et ce en valorisant l’ensemble de leurs compétences et des moyens mis à leur disposition. Le projet vise à favoriser la réalisation des objectifs des plans de contrôle et améliorer le taux d’infraction des inspections. Le suivi de ces deux indicateurs-clés permet d’objectiver sur le long terme l’impact de la start-up.

La solution se décline en deux outils opérationnels : MonitorFish pour la partie “pêche professionnelle” (CNSP), MonitorEnv pour la partie “environnement marin” (CACEM).

Plusieurs axes de développement :
- centraliser toutes les informations importantes sur une carte
- développer des outils d’aide au ciblage (alertes en temps réel, facteur de risque…)
- faciliter le partage d’informations entre le CNSP, le CACEM et les agents de terrain
- outiller une montée en compétence en matière d’analyse de données

## Les liens RapportNav <> Monitor

En préambule, il est mentionné que RapportNav ne peut être considéré standalone car il dépend de Monitor. Pourquoi cela ?
Cela est dû à des raisons organisationnelles et techniques.
Organisationelles car ces 3 softwares sont gérés par 3 startups d'état différentes, sur des budgets et timeline différentes.
Techniques car les Missions sont stockées a l'heure actuelle chez MonitorEnv, d'où la forte dépendance.


## La co-saisie

Avec RapportNav2, le concept de co-saisie a été intégré.
Il consiste à partager la saisie des rapports par différents acteurs afin que chacun puisse s'occuper des parties dont il a la plus fine connaissance tout au long de la chaine d'execution.
Chacun apporte sa pierre à l'édifice là où il est le plus compétent.

Ainsi, certaines informations seront saisies par les centres (ouverture d'un mission, saisie des moyens engagés, actions de controles ou surveillances...)
alors que d'autres seront complétées par les unités terrains qui sont au plus proche de la réalité (détails des controles effectués, infractions, membres d'équipages...)

Ces informations sont synchronisées entre RapportNav et Monitor afin que les centres et les unités puissent les consulter.
15 changes: 15 additions & 0 deletions docs/concepts/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# RapportNav - Concepts généraux

Dans cette section, nous allons passer en revue les concepts les plus importants autour de RapportNav et des missions du DCS (Dispositif de Contrôles et Surveillances).

Ces concepts sont essentiels à maîtriser afin de comprendre RapportNav dans sa globalité.


## Objectifs

A la fin de la lecture de ce module, il vous faudra comprendre :
- ce qu'est RapportNav, pourquoi, comment et pour qui
- le lien à MonitorFish/Env
- la co-saisie
- les concepts de Mission, Action etc

80 changes: 80 additions & 0 deletions docs/concepts/main-entities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Les concepts à maîtriser


## Missions

La Mission est le concept le plus important car il réside tout en haut de la pyramide.

Au niveau d'une mission seront stockées :
- un identifiant
- les dates de début/fin
- les unités impliquées
- les moyens impliqués
- qui a ouvert la mission (CNSP, CACEM, unité)
- des observations
- si le rapport est complet
- tout un tas d'autres infos

Cet objet est commun à RapportNav + MonitorFish + MonitorEnv.


## Actions

Au sein d'une mission, plusieurs actions peuvent être ajoutées.

Au niveau d'une action seront stockées :
- un identifiant
- les dates de début/fin
- des observations
- potentiellement des contrôles
- potentiellement des infractions
- tout un tas d'autres infos relatives au type d'action

Certaines Actions sont communes avec MonitorFish/Env mais pas toutes. Celles en commun sont :
- MonitorFish
- Contrôles
- MonitorEnv
- Contrôles
- Surveillance

Les autres actions sont seulement disponibles pour RapportNav.


### Types d'actions

Il existe environ une trentaine d'actions différentes :
- Les actions en co-saisie
- Contrôles Pêche pro
- Contrôles environement marin
- Surveillances environement marin
- Le statut du navire (PAM)
- Des notes libres
- Les contacts avec les centres
- Des actions spécifiques telles que :
- assistances et sauvetages
- lutte anti pollution
- lutte anti immigration illégale
- permanence Vigimer
- cérémonies et événements
- ...


A l'exception des notes libres, toutes les actions sont comptabilisées en stats.

### Contrôles

Pour les actions de contrôle, selon les cas, plusieurs types de contrôles peuvent être effectués tels que :
- Contrôles administratifs
- Contrôles règles de navigation
- Contrôles respect des règles de sécurité
- Contrôles Gens de Mer

Une action peut donc avoir 0 ou plusieurs contrôles.

Il est important de ne pas confondre une action de contrôle (control pêche ou env par ex) et un contrôle au sein d'une action (généralement de contrôle).

### Infractions

Un contrôle peut déboucher sur une infraction. Un contrôle peut donc avoir 0 ou 1 infraction.
Une infraction peut avoir plusieurs [NATINF](https://www.justice.gouv.fr/documentation/ressources/liste-infractions-vigueur-nomenclature-natinf).

69 changes: 69 additions & 0 deletions docs/concepts/missions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Missions

## Definition

Ume mission s'étend sur un plage temporelle allant de quelques heures à plusieurs jours.

Elle est effectuée par divers agents (PAM, ULAM) utilisants divers moyens (Patrouilleurs, semi rigides, véhicules terrestres, moyens aériens...)


### Statut de mission

Une mission est considérée :
- à venir : quand la mission n'est pas encore commencée
- en cours : quand elle est commencée mais non terminée
- terminée : quand la date de fin est déjà passée


### Statut du rapport

Il existe aussi des informations concernant le statut du rapport afin de vérifier que toutes les données requises ont été correctement remplies.

Il est affiché si :
- le rapport est complété ou non
- quel type d'utilisateur doit entrer/modifier des informations (unités, CNSP ou CACEM)



## Types de missions

Pour chaque type d'unité, plusieurs types de missions peuvent être rencontrés.

### PAM

#### Mission "standard"

Ces missions sont d'une durée de 12 jours et occupent une bordée.

Au cours de ces missions, de multiples actions de contrôles, surveillances env, lutte anti pollution etc etc peuvent être effectuées, en co-saisie ou non avec les centres.

Cette mission peut contenir indirectement d'autres missions.

#### Mission inter-services

Ces missions interviennent lorsqu'un patrouilleur effectuera des missions avec d'autres services de l'état, tel que l'OFB, les douanes...

Ces missions sont généralement plus courtes que 12 jours.


### ULAM

#### Mission avec sortie terrain

Le type de mission le plus courant pour les ULAMs. Il s'agit de rapporter ce qu'il s'est passé lors d'une sortie terrain.
Plusieurs types d'actions y seront répertoriées, en co-saisie ou non avec les centres.

Ces missions ne dépassent jamais la journée et il peut y en avoir plusieurs par jour pour la même unité.

#### Mission sans sortie terrain

A COMPLETER

#### Mission renfort extérieur

Il existe des cas où des agents ULAM sont déployés dans d'autres services de l'état.
Ces missions ne possèdent aucunes actions, juste un début et une fin.

Elles sont surtout présentes afin de mettre en valeur le temps passé par ces unités à aider d'autres services.


30 changes: 30 additions & 0 deletions docs/concepts/users.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Les utilisateurs de RapportNav

Il existe 4 types différents d'utilisateurs
- Admin
- PAM (Patrouilleurs)
- ULAM (Unités Littorales)
- GM (Gens de Mer)

## Qui sont-ils?

### Admin

Les administrateurs sont les membres de l'équipe RapportNav au sein du bureau DGAMPA.
On y trouve l'intrapreneur.e ainsi que d'autres membres tels que les développeurs.

### PAM

Les Patrouilleurs ont accès à la plateforme, et ce pour chaque bordée.
Il s'agira du commandant de chaque bordée mais aussi potentiellement de son second et potentiellement aussi des chefs de quart.
Il n'y a pas de règle fixe, cela dépendant d'un commandant à un autre.

### ULAM

Dans le cas des ULAMs, à la fois le/la chef/cheffe ULAM ainsi que les unités auront accès.


### GM

Des membres du bureau en charge des problématiques Gens de Mer (agents NavPro) ont aussi accès à RapportNav (seulement sur la v1, un jour sur la v2)

12 changes: 12 additions & 0 deletions docs/engineering/_sidebar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
* [Retour](/)
* [Tech homepage](engineering/index)
* [Stack](engineering/stack/index)
** [Frontend](engineering/stack/frontend)
** [Backend](engineering/stack/backend)
** [Database](engineering/stack/database)
** [Infrastructure](engineering/stack/infra)
* [Concepts principaux](engineering/concepts/index)
** [Gestion des utilisateurs](engineering/concepts/auth)
** [L'objet Mission](engineering/concepts/missions-and-actions)
** [Complétude des missions](engineering/concepts/mission-completion)
** [Gestion des dates](engineering/concepts/dates)
19 changes: 19 additions & 0 deletions docs/engineering/concepts/auth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Gestion des utilisateurs

## Utilisateurs

Les utilisateurs sont stockés dans la table `users` de la base de données.

Les mots de passe sont hashés a l'aide de [BCrypt](org.springframework.security.crypto.bcrypt.BCrypt) (`BCrypt.gensalt(10)`)

## Authentification

### Méthode

L'authentification email/password se fait à l'aide d'un JWT token ayant une validité de 30 jours.

Ce Bearer token est transmis avec les requêtes API entre le frontend et l'API.

### Gestion des mots de passe

Aucune gestion des mots de passe, comme redemander un mot de passe, n'a été mise en place.
2 changes: 2 additions & 0 deletions docs/engineering/concepts/dates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Gestion des datetimes

8 changes: 8 additions & 0 deletions docs/engineering/concepts/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Concepts techniques


Objectifs :
- comprendre comment les Missions et les Actions sont récupérées et agrégées
- comprendre la gestion des utilisateurs
- comprendre la notion de complétude de mission

2 changes: 2 additions & 0 deletions docs/engineering/concepts/mission-completion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Complétude des missions

2 changes: 2 additions & 0 deletions docs/engineering/concepts/missions-and-actions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Mission et Actions

Binary file added docs/engineering/images/hexa-archi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions docs/engineering/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Concepts techniques





Les objectifs à la fin de ce module :
- comprendre l'architecture de RapportNav
- comprendre les intéractions avec MonitorEnv/Fish
- comprendre l'infrastructure
Loading
Loading