Dossier de Conception Système - Site d'annonces

Voici le Dossier de Conception Système du projet ECOM 2016-2017 : Site d'annonces.

Page d'accueil du projet

= Équipe =
 * NOUGUIER Thibaut (Chef de projet)
 * RAMEL Régis (Scrum Master)
 * HATTINGUAIS Julian
 * NIOGRET Edwin

= Architecture du Système =

Diagramme de contexte
Description des acteurs :
 * Les administrateurs sont chargés de la gestion du site, que ce soit la maintenance, ou la modération des annonces. L’interaction avec le système consiste en une interaction avec les composants de contrôle du site grâce à un compte administrateur, qui comporte des privilèges supplémentaires comme, la suppression d’annonces.
 * Un acheteur est un utilisateur du site qui a déposé une ou plusieurs annonces. Son interaction avec le site consiste en une création d’un profil avec ses coordonnées, et de la gestion de ses annonces (dépôt, suppression). Il peut aussi éditer son profil. Un acheteur peut aussi être un client.
 * Un vendeur est un utilisateur du site qui vient pour chercher des annonces. Son interaction avec le site consiste en une consultation des annonces du site. Il peut aussi éditer son profil. Un client peut aussi être un client.
 * L’acteur Agence publicitaire représente les agences de publicités qui peuvent ajouter des pubs sur le site.

Interface Web
Le composant Interface Web contient toutes les fonctions d’affichage des pages web pour les utilisateurs (vendeurs et acheteurs). Ce composant comporte les fonctions qui affichent les annonces, qui permettent aux utilisateurs d’éditer leurs profils et leurs annonces, et d’afficher les coordonnées des propriétaires des annonces.

Méthodes :
 * Création d'un compte utilisateur : Permet aux utilisateurs ne possédant pas de compte personnel de s'en créer un. Le composant affiche la page de création de compte, puis appelle la méthode Création de compte du composant contrôleur pour ajouter le compte dans la base de données.
 * Édition du compte utilisateur : Permet à l'utilisateur d'éditer son profil, de modifier ses coordonnées. Le composant affiche la page du profil avec les paramètres modifiables (adresse, numéro de téléphone, adresse mail, ...), puis appelle la méthode Modification de compte du contrôleur pour mettre à jour la base de données.
 * Connexion de l'utilisateur : Permet à l'utilisateur de se connecter à son compte. Le composant affiche la page d'authentification (login et mot de passe), puis appelle la méthode Vérification de compte utilisateur du contrôleur pour vérifier le login et le mot de passe. Si l'authentification est correcte, le composant redirige l'utilisateur vers la page d'accueil de son profil.
 * Dépôt d'une annonce : Permet à l'utilisateur d'ajouter une annonce sur le site. Le composant affiche la page de dépôt d'une annonce, puis appelle la méthode Dépôt d'une annonce du contrôleur avec les renseignements qu'a entrés l'utilisateur.
 * Édition d'une annonce : Permet à un vendeur de modifier une annonce qu'il a déposé. Le composant affiche la page de modification d'une annonce, puis appelle la méthode Modification d'une annonce du contrôleur avec les renseignements qu'a entrés le vendeur pour mettre à jour l'annonce.
 * Suppression d'une annonce : Permet à un vendeur de supprimer une annonce qu'il a déposé. Le composant demande la confirmation de la suppression, puis appelle la méthode Suppression d'une annonce du contrôleur pour enlever l'annonce du site.
 * Recherche d'une annonce : Permet à l'utilisateur de chercher une annonce sur le site grâce à des mots clés. Le composant importe les annonces qui correspondent aux mots clés qu'a entrés l'utilisateur grâce à la méthode Recherche des annonces du contrôleur, puis affiche les résultats dans une liste. L'utilisateur peut alors filtrer ou trier les annonces selon plusieurs critères (prix, lieux, ...), et le composant ordonne les annonces selon ces critères.
 * Sélection des annonces : Permet à l'utilisateur d'afficher les détails d'une annonce. Le composant appelle la méthode Détails d'une annonce du contrôleur pour importer les détails de l'annonce, puis affiche l'annonce avec les détails dans une nouvelle page.
 * Obtention des coordonnées du propriétaire : Permet à l'utilisateur d'obtenir les coordonnées du propriétaire d'une annonce. Le composant appelle la méthode Obtenir coordonnées du contrôleur, puis affiche les coordonnées du propriétaire de l'annonce.

Interface Administrateur
Le composant Interface Administrateur correspond à la gestion des connexions des administrateurs pour la maintenance et la gestion du site, en particulier l’accès aux bases de données.

Méthodes :
 * Démarrage du site : Permet à l'administrateur de démarrer le site. Le composant appelle le script de démarrage du site et de ses composants.
 * Arrêt du site : Permet à l'administrateur d'arrêter le site.
 * Édition annonce : Permet à l'administrateur de modifier une annonce (pour non respect des conditions par exemple. Le composant appelle la méthode Modification d'une annonce du contrôleur pour mettre à jour l'annonce.
 * Suppression annonce : Permet à l'administrateur de supprimer une annonce (pour non respect des conditions par exemple). Le composant appelle la méthode Suppression d'une annonce du contrôleur pour supprimer l'annonce.
 * Édition compte utilisateur : Permet à l'administrateur d'éditer le compte d'un utilisateur (pour redéfinir un mot de passe sur demande de l'utilisateur par exemple). Le composant appelle la méthode Modification de compte du contrôleur avec les renseignements que l'administrateur a rentrés pour mettre à jour le compte de l'utilisateur.
 * Suppression compte utilisateur : Permet à l'administrateur de supprimer le compte d'un utilisateur (pour non respect des conditions par exemple). Le composant appelle la méthode Suppression de compte du contrôleur supprimer le compte de l'utilisateur.

Base de données Utilisateurs et Annonces
La base de données Utilisateurs et annonces contient toutes informations des profils des utilisateurs (login, hash de mot de passe, coordonnées), ainsi que la liste des annonces avec le propriétaire, la localisation et les détails.

Base de données Metrics
La base de données Metrics contient l'ensemble de mesures obtenu avec InfluxDB. C'est grâce à cette base que le site peut être supervisé avec les outils de monitoring Grafana.

Contrôleur
Le contrôleur est le composant au cœur du système. C'est celui qui gère toutes les interactions entre les composants ainsi que les accès aux base de données.

Méthodes :
 * f