RICM4 2017 2018 - UltraTeam 7.1

=Project presentation=

This project is a project carried out by two teams.

The first team composed of Enzo MOLION and Léo VALETTE UltraTeamMV is in charge of creating a mobile application allowing the members of a team or a group of hikers to locate each other with different information such as walking speed, distance between users, the possibility to see if a user is in distress (e. g. if he has broken a leg), etc.

This application will use the LoRa network with ESP-32 cards, connected via Bluetooth to the team's smartphones to run.

The smartphones of the team, if they are connected to the 3G/4G network, will send through a REST API all the information accumulated during the hike to a server that our team composed of Bastien TERRIER and Hugo GROS-DAILLON will have to set up.

This server will be implemented with the JHipster application generator. It will be a web application allowing hikers to create an account and thanks to the information provided by the mobile application, to visualize the information of the current or completed hike (with the route taken during the hike, average speed, participating members, etc.).

It can also be used to visualize the position of hikers during a hike and display whether a person sent a distress signal with their smartphone. This can be useful in cases where rescue workers are trying to locate the injured person precisely.

= Team =


 * Supervisor : Didier Donsez


 * Members : Hugo GROS-DAILLON, Bastien TERRIER


 * Departement : RICM 4, Polytech Grenoble

= Progress of the project =

The project started January 15th, 2018.

Week 1 (January 15th - January 16th)

 * Indication of preferences for proposed projects.
 * Assignment of project groups according to preferences.

Week 2 (January 22th - January 28th)

 * Discovery of UltraTeam projects from previous years.
 * Unable to execute the 2016-2017 AndroidStudio UltraTeam project due to project errors and lack of documentation.
 * Discovery of jhipster thanks to the eCOM project My Races'' We have to start from this project to make our web application.
 * Requirements.

Week 3 (January 26th - February 01st)
Separation of the two UltraTeam project teams with definition of the specifications for each team.

We decide to recreate a new application with jhipster and not to restart the eCOM project. The eCOM project no longer concerns us.

Document ourselves about the structure of jhipster applications.

Week 4 (February 02nd - February 08th)
Skype video conferencing with Didier Donsez to indicate our progress and ask a few questions about jhipster.

Jhipster JDL language discovery

Creation of a database for our application with the jhipster JDL language.

Week 5 (February 09th - February 15th)
Modification de l'appli en application avec des onglets. Un onglet terminal USB série, un onglet GPS, un onglet configuration

Week 6 (February 23th - March 1st)
Travail sur la map. Suivi d'un tuto pendant de longues heures pour que celui ci se révèle obsolete et donc inutilisables. Génération de la clé pour l'API de Google pour les maps.

La clé : AIzaSyB4iTwLc9rSwh5RebtpKjUR0XKIIv5P9gY

Week 7 (March 02nd - March 08nd)
Travail sur la map, tous les tutos se contredisent. Création d'un nouveau dépot GitHub afin de repartir sur de bonnes bases car tout le dépot est cancérisé

Week 8 (March 09nd - March 15nd)
La carte commence à fonctionner, on peut ajouter des markers. On positionne aléatoirement des gens sur la carte. On peut calculer les distances entre eux.

Ajout d'une page de configuration des groupes

Début du travail sur le bluetooth, à l'aide du Googlesamples sur le Bluetooth Low Energy

Week 9 (March 16nd - March 22nd)
Corerection de bug sur la map Partage de données entre activity Ajout de la possiblité de mettre un point de rendez vous que tous le monde voit

Que se passe-t-il sur le bluetooth low energy?? Impossible d'intégrer le google sample

Week 10 (March 23nd - March 29nd)
Ajout d'animation à la carte

Amélioration des structures de données -> création de la classe Personne et UltrateamApplication

Bluetooth finalement opérationnel. Il fallait changer le type de la classe principale en AppCompatActivity (au départ en ListActivity) et résoudre tous les problèmes que ce changement impliquait. J'avais déjà tenté cette solution mais m'étais résigné en voyant l'étendue des problèmes soulevés par ce changement, j'aurai du aller au bout de mes rêves.

Week 11 (March 30nd - April 05nd)
Merge de notre application avec celle que l'autre groupe viens de push, rien n'est en commun. Aucune structure de donnée, rien. Une nuit passée à faire en sorte de concilier les structures afin que les classes les deux applications puissent communiquer au sein d'une seule.

Aucune nouvelle de mqtt et de la reception de donnée par LoRa, le push de l'autre groupe n'incluant rien de cela. Du coup création de méthodes utiles pour la démonstration, afin de montrer que les receivers fonctionnent, qu'il ne manque plus qu'à recevoir les données.... On nous a promis un push, attendons.

Refonte du design de l’application.

Ajout d'un bouton SOS.

Ajout de son lors du démarrage de la carte et de l'appui sur le bouton SOS.

Push arrivé à 23h40 la veille de la soutenance. Tant pis, on fera sans.