Ce projet a pour objectif de rénover une application Android pour enregistrer des sorties sportives d'une seule personne : historique et statistiques. En particulier, pour chaque sortie, on souhaite mémoriser la date et l'heure, la durée, le lieu, la météo, un commentaire, une évaluation, un objectif... L'application présente un bilan hebdomadaire, mensuel et des courbes de progression.
L'application doit également gérer les aspects matériels, c'est à dire les équipements, véhicules ou autres qui servent pour les sorties. Il faut pouvoir suivre l'usure de chaque composant, ex le nombre de kilomètres faits avec telle chaîne de vélo.
L'application doit permettre de chercher des sorties sur une carte. Elle enregistre les traces GPX.
Les données de l'application doivent être placées sur un serveur WebService, mais sécurisé afin qu'un tiers ne puisse pas consulter les informations même s'il pirate la base. D'autre part, les données doivent pouvoir être accédée en local sans accès internet. Il faudra donc prévoir un mécanisme de cache.
Le MLD (liste des tables) de la base de données est :
On peut distinguer les aspects « sorties » qui concernent cette partie du MLD :
- La table Champs représente les informations à mémoriser : distance, durée, évaluation, météo, dénivelé, vitesse max, etc. Certaines de ces informations sont communes à tous les sports, elles ont donc été intégrées directement en tant qu'attributs dans la table Sorties.
- La table TypeChamps n'est pas codée en SQL mais en Java, elle indique les différents types de données possibles qu'on peut mettre dans un champ : booléen, note, nombre, temps, date...
- L'association ChampsSports indique quelles sont les informations pour chaque sport. Ex: le dénivelé pour le VTT, la température pour la planche à voile...
- La table Valeurs contient les valeurs des champs. Ex le dénivelé de telle sortie.
- La table Sorties représente les sorties avec les quelques informations obligatoires.
Les aspects matériels sont dans cette partie du MLD :
- La table TypeComposants contient les noms des éléments matériels : cassette, pneu avant, pied de mat, voile, chaussures...
- La table Composants contient tous les éléments matériels utilisés dans l'une des sorties : tel pneu avant, telle cassette, telle paire de chaussure. Chacun est associé à un prix d'achat, une date de mise en service, une date de destruction (quand le composant est trop usé, on ne doit plus pouvoir l'employer).
- La table ComposantsUsure indique comment on mesure l'usure d'un composant, ex: durée totale des sorties avec, distance totale parcourue avec, délai entre mise en service et date actuelle...
- La table Famille décrit un regroupement de composants. Par exemple une planche pour naviguer par vent fort. Une famille est composée de plusieurs types de composants.
- Une famille est générale, ex: "planche vent fort", tandis qu'une sélection de matériel indique quels sont les composants exacts qui sont utilisés dans telle famille. Ex: telle voile pour la famille "planche vent fort". La table SelMatComposant fait la liaison entre familles et les composants.
Pour mieux comprendre (ou pas) avec un extrait des données entrées dans la base : sorties_extrait.sql.
L'application existante est dans le dossier compressé.
Remonter au dossier parent