# SAÉ 6 - Évolution d’une application existante > **La problématique professionnelle est de faire évoluer en équipe une application en suivant une démarche itérative ou incrémentale. En partant d'une application existante et d'un ensemble de nouveaux besoins complexes, l'objectif est de faire évoluer l'application en y intégrant les manques, après avoir étudié les éléments existants en veillant à la conformité réglementaire.** ## Formation initiale Les Jardins de Cocagne sont réputés pour leurs paniers de produits biologiques distribués localement. Afin d’améliorer l’efficacité de la distribution, ce projet propose le développement de **deux** applications mobiles : l’une pour les livreurs et l’autre pour les clients finaux. ### Application Livreurs - Optimiser le suivi des tournées journalières. - Gérer le récapitulatif des paniers à distribuer pour chaque tournée. - Faciliter la navigation et la validation des livraisons via des scans de QR codes. #### 1. Liste des tournées : - Écran principal affichant les tournées du jour (exemple : Charmes, Épinal, Remiremont). - Le livreur sélectionne une tournée pour démarrer. #### 2. Récapitulatif des paniers : - Deuxième écran listant les paniers à livrer pour la tournée choisie : - Nombre de paniers simples, familiaux, de fruits, d’œufs, etc. #### 3. Livraison par dépôt : - Écran indiquant les informations du premier dépôt : - Nom du dépôt - Adresse - Visualisation de l’itinéraire sur une **carte** interactive. #### 4. Validation des livraisons : - Fonction de scan QR code : - Le livreur scanne un QR code au dépôt. - Scanne ensuite chaque panier à livrer pour valider leur distribution. - Une fois validé, le système présente les informations du prochain dépôt. ### Application Clients - Informer les clients finaux en temps réel lorsque leur panier est livré. #### 1. Notifications : - Lorsqu’un livreur scanne un panier pour un dépôt, les clients reçoivent une notification confirmant que leur panier a été livré. #### 2. Informations du panier : - Accès aux détails du panier : type et composition du panier (légumes présents). - Historique des livraisons. ### Spécifications techniques : - **Langages** : Flutter, React Native, Kotlin ou Swift - Le rendu final devra être un paquet installable, pas un environnement de test tel qu'Expo Go - Dépôt Git : Dés le début du projet, communiquez l'emplacement de votre dépôt. Un suivi régulier sera fait. - **Fonctionnalités principales :** - Gestion des tournées (API backend pour synchronisation des données). - GPS et cartes pour afficher les itinéraires. - Scanners QR code pour valider les livraisons. - **Fonctionnalités principales :** - Notifications en temps réel. Même lorsque l'application est fermée. - Accès à un tableau de bord des livraisons. --- ## Apprentis Créer une application mobile qui utilise des technologies natives ou cross-platform. ### Objectifs : #### 1. Photographier un fruit ou légume : Permettre à l'utilisateur de capturer la photo d'un fruit ou légume via l'application. #### 2. Associer des coordonnées GPS : Utiliser les fonctionnalités de localisation du smartphone pour associer à chaque photo les coordonnées GPS de l'endroit où elle a été prise. #### 3. Identification par IA : Intégrer un moteur d'IA pour analyser la photo et identifier la plante avec par ordre préférence : - Utiliser Tesseract avec un modèle pré-entrainé en local pour la reconnaissance, ou - Exploiter une API que vous avez développé et que vous hébergez Les Jardins de Cocagne ne souhaitent pas utiliser d'API tierces. #### 4. Affichage des résultats : Afficher sur l'**écran d'accueil** une liste récapitulative des plantes identifiées, chaque entrée contenant : - Une miniature de la photo - Les coordonnées GPS - La date et l'heure de capture - Le nom de la plante identifiée - Le degré de confiance du modèle IA (en %). ### Contraintes : - **Langages :** Flutter, React Native, Kotlin ou Swift - Le rendu final devra être un paquet installable, pas un environnement de test tel qu'Expo Go - Dépôt Git : Dés le début du projet, communiquez l'emplacement de votre dépôt. Un suivi régulier sera fait. - Volume horaire par étudiant : **18 heures** ## Groupes ### Formation initiale Groupe | Dépôt --- |--- PHILIPPON-CHAMPROUX Florentin ; RATTI Martin |https://github.com/flo0s/Cocagne-Mobile-APP MATEJKA Milan ; MAURICE Simon | https://github.com/VoidOma/SAE6_MATEJKA_MAURICE ALVARIZA BILLAR Felipe ; KANY Thomas | https://github.com/tureisss/SAE6---Evolution-d-une-application-existante DUBREUIL Eliot ; ERRAES Mehdi ; MEHIAOUI Mohamed | https://gitlab.univ-lorraine.fr/erraes5u/sae6 MERIMI Ayat | https://github.com/merimia/SAE6_MERIMI HERRY Elwyn ; HERRY Matteo | GAILLIEGUE Ewan ; VINCENT Teo | https://github.com/EwanGailliegue/SAE6-mobile-app MEHRAZ Chayimaa ; RIFI ZAYNAB | https://github.com/Zineb-rf/jardins-cocagne-MEHRAZ-RIFI-sae6 ALGUL Sefer ; GRANDGIRARD Louis | https://gitlab.univ-lorraine.fr/algul12u/sae-6 COGNET Mattheo ; BECERRA BARBA Erik | https://github.com/MattheoCo/ApplicationJardinCocagne ### Apprentis (6 groupes) Groupe | Dépôt --- |--- COLIN Gabin ; DE RYCKE Leanne | https://gitlab.univ-lorraine.fr/derycke4u/sae6-colin-derycke DESERT Romain ; NIRRENGARTEN Tom | https://github.com/Rom444d/SAE-6 GIL Jérémie ; PETRAZOLLER Johan | https://github.com/LeviLout/Jardin_Cocagne_GIL_PETRAZOLLER NGUYEN Quang-Liem ; RALLI Clément | https://github.com/JustL0ading/NGUYEN-RALLI-SAE6 DUFOUR Louise ; MARTIN Mathis | ROBAIL Alexandre | ## Web Service Pour les groupes dont le web service de la SAÉ 5 est non fonctionnel ou incomplet vous pouvez utilisez ce web service. L'inconvénient est qu'il est en lecture seul car partagé et ouvert au public. Liste des distributions de la semaine 6. ``` GET https://api.neotech.fr/distribution ``` Pour voir la documentation OpenAPI : https://rest.wiki/?https://api.neotech.fr# Dépôts ``` GET https://api.neotech.fr/depot ``` Préparation ``` GET https://api.neotech.fr/preparation ``` Tournées ``` GET https://api.neotech.fr/tournee ``` Itineraires ``` GET https://api.neotech.fr/itineraire ``` Cette API a été réalisé à l'aide de postgREST une solution qui permet d'exposer une base de données postgreSQL directement en API. https://docs.postgrest.org/en/v14/index.html ### Pagination ``` GET https://api.neotech.fr/planning HTTP/1.1 HTTP/1.1 200 OK Alt-Svc: h3=":443"; ma=2592000 Content-Length: 5090 Content-Location: /planning Content-Range: 0-99/* Content-Type: application/json; charset=utf-8 Date: Tue, 17 Feb 2026 18:48:40 GMT Server: postgrest/14.3 Via: 1.1 Caddy Connection: close [ { "id": 1, "calendrier_id": 1, "jour": "2024-01-09" }, ``` Seuls les 100 (0-99) premiers enregistrements sont renvoyés sur un total inconnu. ``` GET https://api.neotech.fr/planning HTTP/1.1 Prefer: count=estimated ... Content-Range: 0-99/600 ``` L'API renvoi le nombre total d'enregistrement (une estimation pour les nombres > 1000) Cette fois ci vous avez le nombre total d'enregistrements en plus de plage 0-99 ``` GET https://api.neotech.fr/planning HTTP/1.1 Prefer: count=estimated Range-Unit: items Range: 500-600 Content-Range: 500-599/600 [ { "id": 501, "calendrier_id": 3, "jour": "2026-01-08" }, ```