PROJET-INFO5 2021 Go Farmer

=Le projet= Réaliser un prototype de l'application (portée à définir). Cette phase de prototypage a trois objectifs majeurs :

Disposer d’un prototype montrable à différents stakeholders dans un but de démonstration et d’apprentissage (ex : consommateurs, producteurs, organisations gouvernementales) Etablir un algorithme de publicité ciblée basée sur la géolocalisation des utilisateurs Explorer le développement de l’application dans un nouvel environnement de programmation de plus en plus populaire (voir "contraintes")

=L'équipe=
 * Leila Michelard
 * Manon Chaix
 * Rémy Palomo
 * Baptiste Boléat

Supervisé par : Gérard Pollier, Sylvain Delangue

=Journal=

29/01/2021 : Kickoff
Réunion avec Sylvain et Gérard Pollier (à contacter en cas de problèmes) dans le but de découvrir le projet.

01/02/2021 : Premier point
Réunion pour apprendre à se connaître : utilisation de Mural

Parcours des outils déjà mis en place par Sylvain (Jira, Confluence), puis définition des objectifs à long et court terme

Objectif court terme : validation de l'utilisation de Flutter/Dart Objectif long terme : création d'un prototype d'application

09/02/2021 :
Mise en place de l'environnement de travail :
 * installation de flutter/dart
 * définition des équipes pour pair-programming (Manon-Leila / Rémy-Baptiste)
 * réflexion sur choix : 1 ou 2 repos ? --> Pour validation à court terme : 2 repos (un pour l'application concernant les producteurs et un pour celle concernant les consommateurs)

Commencer à regarder Bitbucket et lien avec Jira.

Nous avons commencé à regarder quelle BD serait intéressante à utiliser (en fonction du coût, des fonctionnalités, etc.)

Mise en place des 2 repos (back = application producteur / app = application consommateur)

12/02/2021 :
Début d'implémentation côté app : création d'une liste pour voir différents fruits et implémentation d'une barre de recherche pour permettre la sélection d'un fruit + redirection sur la page de celui-ci.

Début d’implémentation côté back : récupération de données json via datatourisme, parsing et affichage des données

Semaine du 15/02/2021
Interruption pédagogique

Semaine du 22/02/2021
Objectif pour soutenance intermédiaire (vendredi 26/02/2021) : démonstration basique + validation flutter (ou pas)

22/02/2021 :
Côte app : Affichage de la position sur une carte Google Maps (persistance de l'affichage ?)

Côté back : Avancement du parsing de json. Mise en place d'une structure dans le code ( pour les widgets,   pour les différentes entités et   pour les fonction à appliquer aux entités)

23/02/2021 :
Côté app : Problème affichage carte sur Web. Affichage des marqueurs pour les 2 POIs sélectionnés par Sylvain pour démo (si un POI est sélectionné, affichage d'une carte contenant sa description et pouvant rediriger sur la page du POI + redirection possible vers Google Maps pour itinéraire)

Côté back : Réflexion sur l'architecture de la BD et sur la mise en place du site Web (Url ? SSL ?). Affichage d'une liste de Producteurs. Affichage du POI d'un producteur sélectionné dans la liste. Bouton permettant de modifier ses informations (Nom du domaine d'exploitation, adresse, description)

24/02/2021 :
Côté app : Affichage Web OK. Problème pour autorisation d'utilisation de géolocalisation. Création d'un volet sur le côté pour recherche de POI (puis si clic : redirection sur la page du POI)

Côté back : Déploiement du back sur proto:app.jorigine.fr, questionnement sur la sécurité

25/02/2021 :
Finalisation des applications pour démo et préparation soutenance.

26/02/2021 :
Soutenance à 14h30.

01/03/2021 :
Côté app : Problème affichage des POI en APK, mais OK en mode développement.

Côté back : Explorations des différentes fonctionnalités de Firebase.

02/03/2021 :
Côté app : Exploration de l'implémentation iOS pour validation de Flutter. C'est le côté app qui s'en charge car Manon a un Mac et un iPad + Problème GoogleMaps en mode APK (point bleu de géolocalisation ne fonctionne pas toujours --> changer de package GoogleMaps ?)

Côté back : Explorations des différentes fonctionnalités de Firebase. Réflexion sur architecture. Recherche sur Datatourisme.

03/03/2021 :
Côté app : Problème point sur carte (fonctionne parfaitement sur iOS, besoin de recentrer pour que point et POI s'affichent sur Android)

Côté back : Datatourisme ne permet pas d'aller chercher les infos au fur et à mesure --> copier l'ensemble du flux en local.

04/03/2021 :
Côté app : Choix de libraire geolocator pour géolocalisation (nous pose le moins de soucis : seul pb = pose 2 fois la question pour activer géolocalisation de l'utilisateur).

Côté back : Finition documentations pour validation flutter.

05/03/2021 :
Sylvain s'est déplacé sur Grenoble. Nous avons donc pu discuter des différents objectifs restants :
 * fusionner les repos (n'en faire plus qu'un)
 * réfléchir à l'algo de pub (quand envoyer des notifications, sous quelle forme seront les coupons, etc.

08/03/2021
Début de la fusion de App et Back : réunir les deux prototypes dans une seule applications et former une base stable pour la suite du développement Vérification de la validation de HTTPS par Google Début de réflexion sur comment importer les infos depuis Datatourisme et quel flux prendre par rapport au nombre de POI.

09/03/2021
Continuité de la fusion : création d’une interface pour faire la différence entre côté producteur et consommateur Création des environnements de dev et de prof pour pouvoir travailler sur une base de donnée éculée et ne pas faire des accès payant à la base de donnée pendant nos tests

10/03/2021
Fusion terminée sur les 2 OS (Android et web), problème iOS à cause de la nouvelle version de GoogleMaps Travail sur le script d’import de DataTourisme en base de donnée avec le flux déterminé la veille. Début de réflexion sur l’algorithme de localisation : comment fonctionne les notifications dans les différents états de l’application (fermée, minimisée, arrière-plan ?). Recherche sur les Cloud Functions, un service de firebase pour pouvoir faire fonctionner les notifications tout le temps.

11/03/2021
Impossible de continuer le développement sur iOS car besoin d’un compte développeur payant avec 10 jours d’activation et nécessité d’un matériel iOS. Développement des notifications en passant par CloudFunctions Amélioration du script d’import pour dataTourisme : exploitation des premiers résultats avec insertion en base de donnée. Début discussion sur une release pour la semaine prochaine

12/03/2021
Début du travail pour la release : définition des objectifs pour vendredi. Amélioration de l’interface producteur et communication avec la base de donnée pour l’affichage des POI. Écriture d’un fichier pour faciliter toutes les requêtes à faire en base de donnée.

15/03/2021
Problème complétion d’adresse sur web : besoin de contourner la CORS policy en passant par les cloud functions Continuité de l’implémentation des fonctions CRUD pour la base de donnée. Amélioration du front de la vision consommateur

16/03/2021
Merge des différentes fonctionnalités : réglage des conflits et des erreurs. Point sur la sécurité : discussion sur la mise en production du script sur la base de donnée. Mise en place de comptes admin et de boutons pour accéder à l’espace producteur et consommateur.

17/03/2021
Communication entre la page de visualisation et de modification pour les producteurs Définition de compte utilisateur et producteur pour plus de sécurité avant le déploiement ainsi que des règles afin de gérer qui peut accéder à quelle page. Mise en place de la 1er APK avec l’application et discussion sur les choses à améliorer avant la soutenance.

18/03/2021
Amélioration de la 1er release : essayer de gagner du temps dans le chargement du front et changer quelques éléments du front pour un rendu plus user-friendly Amélioration des rules pour plus de sécurité. Début préparation soutenance.

=Liens=
 * Workspace Bitbucket
 * Board Jira