Skip to content

Repository files navigation

Outil open source de collecte, traitement et valorisation des données de pêche

Appli pêcheur (basée sur Fishola cf: https://gitlab.nuiton.org/inrae/fishola)

Application smartphone en sciences participatives pour la pêche amateur sur les plans d'eau français.

Pré-requis

Les prérequis sont :

  • OpenJDK 15+
  • Maven 3.6.2+
  • Node v12.18.3
  • NPM 6.14.6
  • Docker

À noter qu'il est possible de construire le front sans installer Node & NPM, mais il ne sera pas possible de démarrer le projet en mode dev.

Démarer le projet (mode dev)

Il est recommandé de lancer une première fois la compilation pour installer le POM parent :

sudo apt install default-jdk maven
mvn clean install

Ensuite il faut démarrer :

Tout lancer / tout arrêter (raccourci)

Deux scripts à la racine orchestrent l'ensemble de la stack en mode dev :

./start_all.sh   # PostgreSQL (Docker) + backend Quarkus + fronts pêcheur/admin
                 # + back-office Django + maildev. Ctrl+C arrête les serveurs de
                 # dev (les conteneurs Docker restent en place).

./down_all.sh    # arrête TOUT : serveurs de dev (tués par port) + conteneurs
                 # Docker (maildev supprimé, PostgreSQL stoppé — les données
                 # restent dans le volume). Utile pour repartir propre.
Service URL
Backend (statut) http://localhost:8080/api/v1/status
Front pêcheur http://localhost:8081
Front admin http://localhost:8082
Back-office (admin Django) http://localhost:8083/admin/
Maildev http://localhost:41080

start_all.sh lance aussi les migrations Django du back-office (tables framework + profil opérateur). Le premier démarrage installe l'environnement (./setup.sh) si .venv est absent.

Lancer les tests

Le script run_tests.sh (racine) exécute les suites de tests, avec un scope optionnel :

./run_tests.sh              # tout : backoffice (Django) + mobile (vitest) + backend (Quarkus)
./run_tests.sh backoffice   # Django, tests DB-free — rapide
./run_tests.sh mobile       # front pêcheur — vitest (unitaires)
./run_tests.sh backend      # Quarkus — mvn (Testcontainers → Docker + JDK ≥ 25)
./run_tests.sh e2e          # Cypress headless — nécessite la stack lancée (start_all.sh)

Il affiche un récapitulatif et sort en erreur si une suite échoue. (Le front admin n'a pas de tests ; les tests backoffice tournent sans base via un runner unittest.)

Déploiement sur démo

Sur chaque pipeline il y a une tâche permettant de construire les images Docker contenant l'application : package:docker-demo. Une fois que les images sont construites, elles sont disponibles dans le registry. Il suffit ensuite d'utiliser la tâche deploy:demo pour déclencher un rechargement de l'application. Quelques instants plus tard, l'application nouvellement déployée sera utilisable à l'adresse : https://fishola-mobile.demo.codelutin.com.

Releaser la version

Se mettre sur develop et initier le process de release :

mvn gitflow:release-start

Il faut maintenant vérifier la version avec la commande :

mvn clean verify -DperformRelease

Une fois la vérification terminée, il est possible qu'il y ait des modifications à faire pour corriger le build.

Si tout va bien (BUILD SUCCESS) examinez les fichiers modifiés et les commiter le cas échéant (Exemple : headers de fichiers générés, etc.).

Enfin, terminer la release avec la commande :

mvn gitflow:release-finish

Celle-ci va merger la branche sur develop, créer le tag et mettre à jour master.

De façon automatisée, le Gitlab CI va construire l'image Docker associée au tag.

Mise en production

L'application FISHOLA est composée de 5 éléments :

  • 1 base de donnée PostgreSQL
  • 1 serveur SMTP
  • 1 backend en JAVA
  • 1 application mobile Android
  • 1 application mobile iOs

Le déploiement est détaillé dans le Guide de mise en production

Licence

L'application FISHOLA est sous licence GNU Affero General Public License v3.

Schéma de données

Le DDL généré à partir des migrations est disponible ici : fishola-backend/target/init-fishola-database.sql.

Data

Données Hydrographiques

Pour étendre à tous types de plan d'eau et de cours d'eau, nous utilisons la base de données TOPO fournie par l'IGN disponible sur https://cartes.gouv.fr/rechercher-une-donnee/dataset/IGNF_BD-TOPO

Dans le geopackage téléchargé, les attributs pertinents sont:

  • noeud_hydrographique (les points de jointure entre les cours d'eau, plans d'eau et tronçon)
  • troncon_hydrographique (Cours d'eau non permanent?)
  • cours_d_eau
  • plan_d_eau
  • surface_hydrographique (Donne la largeur des cours d'eau, si largeure significative)

Connexion à la base de dev locale

psql postgresql://postgres:whatever@localhost:15432/fishola

Lancer les migrations

cd fishola-backend && mvn flyway:migrate

Créer un utilisateur de test

Le mot de passe doit être un hash bcrypt (pas un mot de passe en clair), et created_on est obligatoire :

INSERT INTO fishola_user (first_name, last_name, email, password, created_on, pseudo)
VALUES ('Arthur', 'Talpaert', 'arthur@symbiome.eu', '$2a$10$...bcrypt...', now(), 'arthur');

Lancer l'app mobile Fishola en mode dev

Éditer le fichier .env et décommenter :

VITE__FORCED_DEVICE_TYPE=application

About

Outil de science participative pour les captures de peche

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages