logo

Découvrez notre application

Le projet IUT GO est un projet de groupe réalisé par les étudiants de l’IUT Informatique de Nice (06) dans le cadre du module méthodologie de la production d’applications (M331) qui a débuté en septembre 2016 et s’est terminé en décembre 2016.

L'objectif de ce projet était de concevoir collaborativement les briques d'un réseau social basé sur la géolocalisation. Les PokéStud (étudiants) devaient pouvoir se déplacer à leur guise tout en retrouvant leurs amis à volonté. Nous avions 6 briques à coder individuellement pour ensuite les intégrer et ne former plus qu’un projet global (IUT GO). Chacune de ces briques possédaient des fonctionnalités qui lui était propre.

De manière plus détaillée notre projet devait permettre :

  • À un PokéStud de créer un compte personnel (brique Face Notebook avec la notion de compte)
  • Sur ce compte il pouvait retrouver ses amis qui ont eux aussi leur compte (brique Linked In My World avec la notion de relation)
  • Chaque PokéStud devait avoir accès à une carte qui lui était propre (brique Alice Map avec la notion de carte)
  • Grâce à cette carte il pouvait planifier ses voyages/trajet (je pars d’ici pour aller là) (brique Tchatch’car avec la notion de voyage)
  • Ou bien s’en servir pour repérer des endroits intéressants (des points d’intérêts) (brique Place advisor avec la notion de points d’intérêts)
  • De manière à ne jamais se perdre, un PokéStud était localisé pour pouvoir se localiser sur la carte (brique Marauder’s trace avec la notion de position)

En plus de ces objectifs nous nous sommes imposés celui de réaliser une application mobile qui regrouperait également les fonctionnalités énoncées précédemment.

Ce site permet donc de présenter le travail réalisé par le Groupe 1 ayant travaillé sur ce projet et de vous donner un aperçu de ce que nos applications (PC et mobile) peuvent faire !

Présentation en vidéo

Fonctionnalités et téléchargement

Après ces 4 mois de développement nous avons réussi à répondre aux objectifs initiaux présentés précédemment et ainsi obtenir deux applications (PC et mobile) fonctionnelles.

Cliquez pour télécharger l'application

Windows
Android

L'application PC

Lorsque l’on ouvre l’application, la toute première fenêtre permet de s’inscrire c’est-à-dire de créer un compte puis de s’identifier sur ce compte.
Dès lors qu’on s’est identifié on accède à une interface regroupant toutes les fonctionnalités d’IUT GO.
Tout d’abord parlons de l’élément qui est au centre de notre application : la carte liée à la brique Alice Map. Sur la carte il est ainsi possible en faisant un clic droit, d’ajouter un point ou un chemin (ligne droite) entre deux points. A chaque ajout de point ou de chemin il est ajouté dans l’arbre sur la gauche.
image application pc 1
On peut alors cliquer droit sur chaque point ou chemin pour avoir accès à de nouvelles options comme par exemple la possibilité d’ajouter un avis ou une note.
On peut bien évidemment modifier les informations d’un point ou d’un chemin et les supprimer.
Ensuite, en haut à droite de la fenêtre dans l’onglet « Profil », on a accès à un panel profil qui regroupe les informations essentielles de l’utilisateur. Ce dernier peut ainsi les visualiser facilement et les modifier s’il le souhaite. Ce panel reprend les fonctionnalités de la brique Face Notebook.
image application pc 2
Toujours en haut à droite mais cette fois dans l’onglet « Relation » l’utilisateur pourra visualiser ses relations c’est-à-dire les personnes avec qui il a des liens (d’amitié, de parenté…). Par la même occasion il pourra ajouter des relations.
image application pc 3
Toujours dans l’onglet « Relation » on a un second onglet « Recherche » qui permet de rechercher un utilisateur dans la liste de ses amis avec qui il est en relation. Quant au troisième onglet de « Relation », « Chemin » il permet de rechercher la distance la plus courte entre deux personnes.
image application pc 4
A côté de cela nous avons, dans la partie supérieure plusieurs boutons qui représentent pour chacun l’une des briques de notre application. En cliquant sur l’un des boutons présents, le contenu en bas à droite de la fenêtre est mis à jour pour afficher les actions possibles pour cette brique.


L'application Android

Voyons dans une seconde partie les fonctionnalités de notre application mobile. S’agissant du même projet on retrouvera quasiment les mêmes fonctionnalités. Néanmoins voyons voir où les retrouver !

Connexion Inscription Lorsque vous arrivez sur ce menu vous pourrez créer votre compte en rentrant les informations qui vous seront demandées ou alors vous connecter si vous avez déjà créé un compte précédemment.

1. La carte

Carte Sur la carte vous avez accès à différentes fonctionnalités, chaque bouton vous emmène vers un nouveau menu qui seront détaillés ci-dessous.
Sur la carte, si vous maintenez votre doigt sur un endroit vous créerais un nouveau point. Si vous le touchez, vous obtiendrais des informations le concernant. De plus, si vous appuyez par la suite sur le bouton Maps vous ouvrirais l’adresse de ce point dans l’application Google Maps, quand ou bouton itinéraire il vous permettra d’aller d’ouvrir la fonction itinéraire dans l’application Google Maps.

2. Chemins

Chemin Dès lors que vous avez au moins de points sur la carte vous pouvez créer un chemin entre deux de ces derniers, nommer et décrire ce chemin. S i vous restez appuyez sur un chemin présent dans la liste, vous avez la possibilité de l’effacer.

3. Positions

Positions Vous pouvez depuis ce menu, localiser une personne, obtenir votre localisation, retrouver vos positions entre deux dates, trouver votre position la plus proche d’une date, et vos positions probables en fonctions des positions que vous avez déjà précédemment rentrées et d’une plage horaire sur un jour en particulier.

4. Profil

Profil Ici, vous pourrez rentrer votre humeur ainsi qu’une description de cette dernière si vous le souhaitez, modifier les informations de votre profil ainsi que vous déconnecter de l’application.

5. Les voyages

Voyages Depuis ce menu, vous avez la possibilité de créer un voyage avec un titre, nombre de passagers, horaire de départ, et point de départ ainsi que destination.
Vous pourrez également consulter un voyage que ce soit ceux pour lesquelles vous êtes impliqués ou tout simplement l’ensemble des voyages, en touchant un voyage vous obtiendrais plus d’informations sur ce dernier.
De plus vous pouvez afficher l’historique des voyages que vous avez effectués et une fois de plus avoir des infos sur ces derniers.

6. Les points

Points C’est ici que vont s’afficher l’ensemble des points insérés sur votre carte, vous pouvez en ajouter de nouveaux à l’aide d’une adresse, les nommer et les rendre visibles aux yeux des autres utilisateurs. Vous pouvez également supprimer un point en restant appuyé sur l’un d’eux.

Découvrez notre équipe !

Parce qu'une application ne peut pas se faire toute seule, découvrez les acteurs de celle-ci !

Alexandre LANG

Alexandre LANG

Chef de projet et développeur

Je suis passioné par les nouvelles technologies et la programmation. Je m'investis un maximum dans les projets que j'entreprends. “C'est dans l'effort que l'on trouve la satisfaction et non dans la réussite. Un plein effort est une pleine victoire.” (Gandhi).

Mike AUBENAS

Mike AUBENAS

Développeur FaceNotebook

Etudiant en seconde année de DUT Informatique à Nice, comme tous mes collègues d'ailleurs ! Je suis passionné par la musique électronique.

Alexandre BRUYAT

Alexandre BRUYAT

Développeur Alice's Map

J'aime la programmation car elle permet de créer pleins de choses. Je suis perfectionniste dans les projets que j'entreprend.

Karl BUSSON

Karl BUSSON

Développeur FaceNotebook

Passionné par le back-end web, les jeux vidéos et les voyages.

Luc CHAURIS

Luc CHAURIS

Développeur Marauder's Trace

Etudiant en Informatique curieux et motivé. J'aime programmer des interfaces, mais également créer des jeux vidéos. Je me passionne pour les nouvelles technologies, notamment ce qui touche de près ou de loin à l'impression 3D

Ivaylo CHIVIDZHIYAN

Ivaylo CHIVIDZHIYAN

Développeur LinkedInMyWorld

Programming, nature, culture, music and pivo... da!

Rémy DARGENT

Rémy DARGENT

Développeur Marauder's Trace

Musique + amis + bouffe + sport = vie

Clément GUILLAUME

Clément GUILLAUME

Développeur PlaceAdvisor

Etudiant en DUT informatique, esperant travailler dans l'industrie du jeux vidéo a la fin de ses etudes.

Alexandre HOWARD

Alexandre HOWARD

Développeur LinkedInMyWorld

Etudiant en DUT informatique, passionné par la cyber-sécurité, le developpement d'application et le developpement et design web.

Théos MARIANI

Théos MARIANI

Développeur Marauder's Trace

Je suis un étudiant en IUT informatique. Ce qui m'intéresse le plus c'est le développement d'applications, et c'est pourquoi j'aimerais en faire ma profession.

Rémy MUNIER

Rémy MUNIER

Développeur Alice's Map

Etudiant en DUT informatique passionné par ses études et le développement des jeux vidéo.

Arno OLIVIERI

Arno OLIVIERI

Développeur FaceNotebook

J'aime ce qui est bien fait

Louis-Edouard KLEVERMAN

Louis-Edouard KLEVERMAN

Développeur Tchatche'car

Develloping enthusiast ! Never make me use JFrames again please :'(

Erdal TOPRAK

Erdal TOPRAK

Développeur PlaceAdvisor

Eleve en DUT Informatique, passionné de nouvelles technologies

Mathieu TUA

Mathieu TUA

Développeur LinkedInMyWorld

Un jour je serai le meilleur étudiant, j'étudirai sans répit, je ferai tout pour être major, et passer mes partiels ! Je parcourai toutes les matières, revisant avec espoir, les DST et leurs mystères, mon DUT je vais l'avoir !

Simon WOLKIEWIEZ

Simon WOLKIEWIEZ

Développeur FaceNotebook & Application mobile

J’ai choisis le secteur de la programmation car j’aime l’idée de créer des choses à partir de rien.

Notre organisation

L'organisation est souvent la clé d'un projet c'est pour cela que nous lui avons porté une attention particulière.

Pour l'équipe

Notre organisation dans ce projet s’est basée sur des artefacts des méthodes agiles de développement vues lors de cours.
Ainsi nous avons décomposé notre travail en deux sprints, deux périodes de développement, séparés par une rétrospective.

Pendant le premier sprint nous avons travaillé séparément sur chacune des 6 briques présentées précédemment (Maurauder’s trace, Face notebook,…) formant ainsi 6 sous-projets indépendant travaillant chacun à développer les fonctionnalités propres à sa brique. Nous n’avions pas donc pas de chef de projet à ce stade.
Chaque sous-projet a alors élaboré des user stories (histoires utilisateurs) qui sont des phrases simples dans le langage de tous les jours permettant de décrire avec suffisamment de précision le contenu d'une fonctionnalité à développer. Pour cela nous sommes partis des spécifications données par notre professeur, Mme Blay-Fornarino, sur son site et de nos objectifs personnels.
La fin de ce 1er sprint est venue avec une démonstration de chaque sous-projet et une rétrospective, artefact de la méthode agile, visant à « faire le point » sur les user stories et donc sur les fonctionnalités développées.

Dès lors le second sprint a débuté et était placé sous le signe de l’intégration. On a alors élu un chef de projet, Alexandre Lang et les 6 sous-projets se sont progressivement réunis pour ne former plus qu’un seul projet : IUT GO.
Pendant cette seconde phase nous avons encore utilisé les user stories en en développant des nouvelles. Il s’agissait soit de user stories « nominales » c’est-à-dire des user stories propres au sous-projet concerné et des user stories d’« intégration » qui permettait de décrire les nouvelles fonctionnalités engendrées par l’intégration de sous-projets.
Afin de ne pas s’éparpiller dans l’intégration le chef de projet avait donné un planning d’intégration qui visait à montrer l’ordre d’intégration des sous-projets.
Ce planning peut être résumé par le schéma suivant :

Planning d'intégration
La fin du second sprint et de ce projet est venue avec la démonstration finale réalisée devant tous les autres groupes ayant travaillé sur ce même projet.

Pour le code

L’architecture de notre projet est basée sur le système de sous projets. En effet, nous avons regroupé toutes les classes d’un sous projet dans un package au nom de ce sous projet. Nous avons ainsi 5 packages différents qui sont tous regroupés dans un même package, le noyau fonctionnel. Nous avons choisi cette solution car cela nous a permis de concevoir plus facilement l’application mobile qui utilise, à quelques exceptions près, le même package !
tech 1
Pour la partie Interface Homme Machine (IHM), nous avons créé un package IHM au même niveau d’arborescence que le noyau fonctionnel.
tech 2
Concernant l’architecture de nos tests, nous avons également choisi de créer des packages spécifiques à chaque sous projet.

Les technologies que nous avons utilisées

Tout projet, même avec la meilleure organisation possible ne peut être parfait que s’il utilise les outils de développement adéquat

La méthode SCRUM

est un schéma d’organisation de développement de produits complexes. C’est une méthode agile, c’est-à-dire un groupe de pratiques de pilotage et de réalisation de projets. Elle s’appuie sur le découpage du projet en « boites de temps » appelées « Sprints ». Chaque sprint commence par une estimation suivie d'une planification opérationnelle. Le sprint se termine par une démonstration de ce qui a été achevé et une rétrospective sur le travail réalisé.
La planification de ce genre de projet est souvent faite avec les deux outils suivants :
Scrum

La méthode PERT

consiste à représenter sous forme de graphe, un réseau de tâches dont l'enchaînement permet d'aboutir à l'atteinte des objectifs d'un projet. Cette méthode implique un découpage précis du projet en tâches, l’estimation de la durée des tâches et la nomination d’un chef de projet.
PERT

Le diagramme de Gantt

couramment utilisé en gestion de projet, est un outil permettant de représenter visuellement l'état d'avancement des différentes activités (tâches) qui constituent un projet. A titre d’exemple voici notre diagramme de Gantt pour le sprint 2 (phase d’intégration)

GANTT

Java

est un langage de programmation orientée objet très largement répandu qui a été créé par Sun Microsystems. Nous avons utilisé ce langage pour développer notre application.

Java

Visual Paradigm

un outil très puissant qui permet de créer les diagrammes de classes, de cas d’utilisation et également de séquences. Une de ses fonctionnalités les plus pratiques est la génération de code Java à partir d’un diagramme de classe, ce qui nous a permis d’économiser un certain temps de programmation en a créant rapidement la structure des codes de chaque sous-projets.

Visual paradigm

IntelliJ IDEA

est un Environnement de Développement (IDE) Java, soit un logiciel permettant de développer une application en Java tout en apportant de multiples fonctionnalités (simuler le fonctionnement de l’application par exemple.) Ainsi notre projet complet a été fait sur ce logiciel.

IntelliJ

Maven

est un outil pour la gestion et l’automatisation de production des projets logiciel Java en général. Cela permet de simplifier la configuration d’un projet Java. Nous avons ainsi défini notre application comme un projet Maven, ce qui l’a simplifié en imposant une convention d’arborescence, une gestion automatique des dépendances,…

Maven

JUnit

est un Framework (Bibliothèque avancée) de Tests Unitaires pour le langage Java. Nous l’avons utilisé afin de réaliser nos tests unitaires.
Junit

GIT

est un logiciel de gestion de versions décentralisé. Pour notre projet, nous l’avons utilisé comme extension à IntelliJ. Ainsi tout le monde avait accès à la dernière version du projet. Pour la récupérer il suffit de « Pull » la dernière version du projet depuis IntelliJ. Pour y ajouter son propre travail, il faut « Push » le projet sur le GIT. Les modifications faites sont alors ajoutées à la dernière version tout en conservant le travail effectué par les autres membres du groupe.

GIT

Le module Member

nous a été donné au tout début de notre projet et est désormais affilié au package de classes concernées par plusieurs sous-projets comme FaceNotebook. Il s’est par la suite fait étendre par la classe Profil et à eux deux permettent la création d’un profil pour chaque utilisateur.
Member

Le module OpenStreetMap

est Open Source, gratuit et de licence libre, il permet d’avoir accès aux routes du monde entier et permet en général de cartographier tout ce qui peut l’être en ligne. Il a été la base du sous-projet AliceMap leur permettant d’avoir à leur disposition une carte du monde et la possibilité d’utiliser des coordonnées GPS ce qui fut l’un des enjeux majeurs de la phase d’intégration du projet.

Open street map

Si l'on doit retracer l'utilisation des technologies précédentes dans l'ordre chronologique, voici ce que l'on aurait :
  • Tout d'abord nous avons utilisé la méthode SCRUM afin de définir nos sprints et l'organisation globale du projet ce qui donna lieu à la création des user stories et la définition de notre KanBan (via la Forge Unice). A partir de ceci nous avons pu élaborer le PERT et le Gantt.
  • Nous avons ensuite pu passer à la partie conception du projet à l'aide des logiciels Visual Paradigm et Modelio. Ceux-ci nous ont permis de générer le code Java afin que nous puissions coder grâce à l'IDE IntelliJ.
  • Pour nos codes nous nous sommes aidés des modules Member et OpenStreetMap. Grâce au système de Git chaque modification d’une personne était automatiquement ajoutée aux codes des autres membres.
  • Pour les phases de tests, qui se sont déroulées au fur et à mesure de la création de nouvelles classes et méthodes, nous nous sommes donc servi de JUnit ce qui, une fois ces derniers concluants et la phase d'intégration et de correction terminées, nous permis de finir le projet IUT GO.

Conclusion et perspectives

Tout au long de la réalisation de ce projet, l’ensemble du groupe s’est maintenu motivé et efficace. En effet, à la fois l’organisation et l’ambiance régnant au sein du groupe ont permis à ses membres de se montrer productif. Les outils et méthodes imposées par l’IUT se sont également avérées efficaces et pertinentes.

Cependant, l’équipe a dû faire face à certains problèmes au cours du projet. En effet, nous avons eu pas mal de soucis par rapport au GIT au niveau des « Push » : nous nous sommes retrouvés plusieurs fois avec un projet non fonctionnel, l’origine du problème étant un « Push » mal effectué. Nous avons eu également eu des difficultés au niveau de la gestion de projet : Le premier sprint ayant été effectué sans chef de projet, il n’y avait pas de coordination entre les 6 sous projets. Cela a donc engendré un problème au niveau du début de l’intégration réglé rapidement par l’arrivée du chef de projet.

Les objectifs initiaux ont bien été remplis. Pour ce qui concerne les délais, ceux-ci ont été respectés, et plusieurs équipes ont même pris de l’avance : Marauder’s Trace, FaceNotebook et AliceMap.

Pour l’ensemble du groupe, ce projet s’est montré enrichissant à plusieurs niveaux. Premièrement, cela a apporté une expérience de projet de groupe positive, car les efforts apportés par tous les membres de l’équipe ont été récompensés par un projet final fonctionnel et répondant aux objectifs initiaux. Cela a également permis à chaque étudiant d’améliorer son niveau de conception et de développement en Java. De plus, nous avons appris à appliquer la méthode SCRUM sur un cas concret, mais aussi à travailler sur un système de gestion de versions (GIT). Notre connaissance des différents logiciels utilisés (IntelliJ, Visual Paradigm…) a également été renforcée grâce à ce projet. Cette expérience a prouvé qu’on peut allier sans problèmes une bonne ambiance et un sérieux dans le travail accompli ! Enfin ce projet a permis d’appliquer bon nombre de méthodes théoriques vues en cours lors du semestre en cours mais aussi des semestres précédents.

Pour une autre année, nous avons pensé que la mise en place d’un 3e sprint ayant pour but de porter notre application sur Smartphone et d’utiliser ses fonctionnalités (localisation GPS par exemple) était une idée vraiment intéressante. On pourrait également y ajouter la mise en place d’une base de données hébergée sur un serveur afin d’y stocker toutes les informations utiles à l’application, et qu’elle y soit connectée, que ce soit sur PC ou sur Smartphone afin que les PokéStud puissent communiquer entre eux !