Dossier de Conception Système - Coivoiturage taxi

Voici le dossier de Conception Système pour le projet ECOM 2016-2017 Covoiturage.

Page d'accueil du projet

= Équipe =
 * LECORPS Germain (Chef de projet)
 * VOUTAT Manuel
 * MATHIEU Tanguy
 * HALLAL Marwan (Scrum Master)
 * FOUNAS Abdelaziz

= Fonctionnalités = Rapide rappel des fonctionnalités de notre application.

Pour les clients :
 * Créer un compte
 * S'identifier
 * Réserver un trajet
 * Consulter ses trajets (éventuellement les annuler)
 * Éditer son profil

Pour les administrateurs :
 * S'identifier
 * Ajouter une voiture taxi
 * Ajouter une voiture pour le covoiturage
 * Supprimer une voiture taxi
 * Supprimer une voiture de covoiturage
 * Ajouter un nouveau trajet de covoiturage
 * Editer des comptes Admin et Client

= Architecture Système =

Diagramme de Contexte
Voici le diagramme de Contexte de notre application.




 * Les administrateurs sont les personnes ayant des droits plus élevés sur le site, ils ont notamment un accès à l'interface Admin du site. Ils ont des possibilités que les clients lambda n'ont pas.
 * Les clients sont les personnes portant un intérêt au service que l'on propose, elles n'ont pas donc pas nécessité d'avoir les droits des administrateurs.

Vue physique
Ici est présenté la séparation physique de toute notre architecture logicielle.




 * HA Proxy correspond à l'élément permettant de sécuriser notre application en nous permettant d'utiliser HTTPS pour atteindre notre site ou Grafana par l'intermédiaire de HTTP.
 * Glassfish correspond à notre serveur sur lequel notre application avec notre site sont présents.
 * MySQL correspond à notre base de données applicative, contenant tous les éléments permettant le bon fonctionnement de notre site.
 * InfluxDB est la base de données que l'on utilise pour stocker les métriques que notre application (sur le serveur Glassfish) nous envoie.
 * Grafana est l'outil que l'on souhaite utiliser pour mettre en forme les données enregistrées dans InfluxDB, et ainsi avoir des données exploitable.

Vue composants du côté Glassfish
Ici est présenté le diagramme de composants côté Glassfish.



Sur le serveur on souhaite utiliser une servlet Jersey pour créer notre API REST. Nous souhaitons utiliser les EJB à la fois pour représenter la BDD (Entity Bean) et pour créer la logique métier (Session Bean Stateless) et enfin pour les éventuels session clients (Session Bean Stateful).

Vue composants du côté Client
Ici est présenté le diagramme de composants côté Client.



On peut y voir les choix que l'on fait pour créer notre application. Notamment, on souhaite utiliser AngularJS et faire des appels AJAX pour atteindre notre API REST afin d'interagir avec le serveur.