https://air.imag.fr/api.php?action=feedcontributions&user=Julian.Hattinguais&feedformat=atomair - User contributions [en]2024-03-29T08:15:42ZUser contributionsMediaWiki 1.35.13https://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Recommandation_intelligente_de_films&diff=34498Conception de l'interface - Recommandation intelligente de films2017-03-13T15:58:57Z<p>Julian.Hattinguais: /* Statistiques */</p>
<hr />
<div>Voici la fiche de conception de l'interface du projet 'Recommandation intelligente de films'.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Développement de la maquette du produit=<br />
<br />
<br />
==Différentes vues réalisées==<br />
<br />
===Améliorer les prédictions===<br />
<br />
Cette vue permet à l'utilisateur de rechercher un film en particulier ou de parcourir les pages afin de trouver des films à annoter. En cliquant sur le pouces vers le haut, l'utilisateur indique qu'il aime le film et en cliquant sur le pouce vers le bas, qu'il ne l'aime pas.<br />
<br />
[[Image:Conception-VueAmeliorerPrediction.png|900px|center]]<br />
<br />
===Films annotés===<br />
<br />
Cette vue permet à l'utilisateur de visionner le récapitulatif des films qu'il a déjà annoté. Il peut affiner le résultat en sélectionnant au choix tous les films annotés, uniquement les films qu'il à annoté positivement ou alors uniquement ceux qu'il à annoté négativement.<br />
<br />
[[Image:Conception-VueFilmsAnnotes.png|900px|center]]<br />
<br />
===Statistiques===<br />
<br />
Cette vue permet à l'utilisateur d'accéder aux statistiques sur ses films annotés. Par exemple, il pourra avoir le détail des genres qu'il aime ou n'aime pas, la durée moyenne des films aimés ou non aimés, etc.<br />
<br />
[[Image:Conception-VueStatistiques.png|900px|center]]<br />
<br />
===Recommandations===<br />
<br />
Cette vue permet à l'utilisateur de charger une liste de films recommandés selon ses goûts. La taille des images de films met en évidence les films ayant la plus grande probabilité de plaire à l'utilisateur, c'est à dire ceux ayant un haut score lors de la prédiction. Des tampons en haut à droite des images de films peuvent être présent et indiquent soit un coup de cœur de la communauté Twitter (icône cœur), soit un film populaire sur Twitter, c'est à dire un film dont on parle beaucoup sur Twitter mais pas forcément en bien (icône Twitter).<br />
<br />
[[Image:Conception-VueRecommandations.png|900px|center]]<br />
<br />
<br />
==Charte graphique==<br />
<br />
La charte graphique à été sélectionné via le site [https://www.materialpalette.com/teal/amber'''Material Design'''].<br />
<br />
<br />
[[Image:CharteGraphique.png|800px|center]]<br />
<br />
<br />
==Logo==<br />
<br />
[[Image:LogoDeepMovies.png|400px|center]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34280Fiche de suivi - Recommandation intelligente de films2017-03-07T10:27:59Z<p>Julian.Hattinguais: /* Tâches du Sprint2 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
[[File:Sprint2-Semaine4.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 (Edwin) ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
[[File:Sprint2-Semaine5.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint3===<br />
<br />
*T1.1 Lier le back et le front, mettre en place les routes (suggestion, annotation) - Authentification faite<br />
*T1.2 Revoir les vues du front<br />
*T2. Déployer l'API sur un serveur Amazon (SQL dans Docker, environnement d'exécution avec Docker)<br />
*T3. Enrichir l'ensemble de tests et la documentation<br />
*T4. Mettre en place le nouveau modèle pour avoir une autre base de comparaison<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
<br />
[[File:Sprint3-Semaine6.png|1400px|middle]]<br />
<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* T2. -> Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
<br />
[[File:Sprint3-Semaine7.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
* Soutenance de fin de projet avec Didier Donsez et Massih-Reza Amini</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=32769SRS - Recommandation intelligente de films2017-01-24T15:05:06Z<p>Julian.Hattinguais: /* Fonctionnalités */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçu pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performant que les algorithmes déjà conçu dans ce but là.<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, matériel ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données relativement statique pourra alors être affiné en temps réel grâce à l'analyse des opinions exprimées par les flux Twitter. <br />
<br />
==Portée du produit ==<br />
<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leur goût propre.<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a apprécié et de ceux qu'il n'a pas apprécié. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions sur mesure, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précises que pour les produits se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcé d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive.<br />
<br />
==Cas d'utilisations==<br />
<br />
==Contraintes générales==<br />
<br />
==Dépendances==<br />
API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Conception du frontend du site=<br />
==Présentation du site==<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Projets_2016-2017&diff=32668Projets 2016-20172017-01-24T08:24:22Z<p>Julian.Hattinguais: /* Projet Semestre S10 */</p>
<hr />
<div><<[[Projets 2015-2016]] | [[Projets]] | [[Projets 2017-2018]]>><br />
=RICM=<br />
==RICM3==<br />
<br />
==RICM4==<br />
===Projet Semestre S8===<br />
<br />
Enseignants responsables : Olivier Richard, Didier Donsez<br />
<br />
Dates : Lundi 9/01/2017 au 29/03/2017<br />
Lancement: 9/01/2017 après-midi<br />
Soutenance: le 3/04/2017 matin et après-midi<br />
Soutenance à mi-parcours: A définir<br />
<br />
* '''Evaluation à mi-parcours le lundi/mardi ???''': Format: 10min (5min de présentation 3 slides au plus, 5min de discussion). Cette évaluation sera prise en compte dans la note finale.<br />
<br />
'''Consignes générales:'''<br />
<br />
* '''Vous devez être pro-actifs !!!''': Si des points sont pas ou mals spécifiés, vous le faîtes et vous justifiez vos choix. Pour les problèmes techniques éventuels vous pouvez: creuser la question, contacter l'auteur du code si il y a lieu, écrire un rapport de bug ('''Attention:''' ca se prépare !), soumettre un patch/pull request, contacter l'enseignant ou la personne référente du projet.<br />
<br />
* '''Vous devez maintenir une fiche de suivi de projet''': elle doit être mise à jour chaque semaine, elle rassemble les élements essentiels du projet, elle <br />
indique les évolutions du projet et présente sa feuille de route. '''Note:''' le nom de la fiche doit être composé du nom du projet et suffixé par ricm4_2015_2016. '''Cette fiche compte pour la note finale'''<br />
<br />
* '''Vous devez utiliser un logiciel de gestion de version''' pour vos développements comme [http://en.wikipedia.org/wiki/Git_%28software%29 git ] et nous vous conseillons d'utiliser le site [https://github.com github] pour l'hébergement de votre dépôt public.<br />
<br />
* Les document public (exemple sur github) doivent être rédigés en anglais (README, documentation, commentaires de code, nom de variables et de fonctions). Une bonnification sera accordée si le rapport et les transparents sont en anglais (la soutenance sera en francais).<br />
<br />
{|class="wikitable alternance"<br />
|+ Affectation des projets RICM4 2016-2017<br />
|-<br />
|<br />
!scope="col"| Sujet<br />
!scope="col"| Etudiants<br />
!scope="col"| Enseignant(s)<br />
!scope="col"| Fiche de suivi<br />
!scope="col"| Dépot git<br />
|-<br />
<br />
!scope="row"| 1<br />
| [[Ruche connectée LoRa]] <br />
| MOREAU, LESAGE, <br />
| Palix, Richard<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
<br />
!scope="row"| 2<br />
| [[Serres connectées]]<br />
| BOISADAM, DALLE<br />
| Palix<br />
| [[Projets-2016-2017-Serres_connectées| '''Fiche''']]<br />
| [https://github.com/igreenhouse '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 3<br />
| [[I-Greenhouse]] : [[Serre connectée aquaponie]]<br />
| MARCHAND, PELLICER<br />
| Palix, Donsez<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/igreenhouse '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 4<br />
| [[Station de pompage connectée]]<br />
| FERNANDES, CHEVALIER, FU <br />
| Palix, Donsez, Richard<br />
| [[Projets-2016-2017-Station de pompage connectée| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 5<br />
| Géolocation Indoor basée sur les [[Beacon]]s BLE <br />
| COCHINHO, GAMBRO<br />
| Donsez<br />
| [[Projets-2016-2017-IndoorGeoloc| '''Fiche''']] - [[Projets-2016-2017-IndoorGeoloc-UML | '''UML''']]<br />
| [https://github.com/LouisCochinho/Geoloc_Indoor '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 6<br />
| [[Application de suivi de colis avec RFID UHF (EPC Global)]],<br />
| AMODRU-FAVIN, DELISE <br />
| Donsez<br />
| [[Projets-2016-2017-SuiviColisRFID| '''Fiche''']]<br />
| [https://github.com/delisea/ColisMatter '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 7<br />
| [[StartAIR 2017]]<br />
| ODIEVRE, CHAMBONET<br />
| Palix<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 8<br />
| [[SmartSelfService]] <br />
| ABONNENC, BONHOURE<br />
| Donsez<br />
| [[Projets-2016-2017-SmartSelfService| '''Fiche''']] - [[Projets-2016-2017-SmartSelfService/SRS | '''SRS''']] - [[Projets-2016-2017-SmartSelfService/UML | '''UML''' ]]<br />
| [https://github.com/RICM4SmartSelfService/RICM4_Projet_SmartSelfService '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 9<br />
| [[Interface de contrôle "Photo" pour OpenHAB]]<br />
| LACHARTRE, SAVARY <br />
| Donsez<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 10<br />
| [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]],<br />
| ROUQUIER, GEOURJON<br />
| Donsez<br />
| [[Projets-2016-2017-UltraTeamBest| '''Fiche''']]<br />
| [https://github.com/ultratrail '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 10<br />
| [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]],<br />
| GALLIER, FERRERA<br />
| Donsez<br />
| [[Projets-2016-2017-UltraTeam| '''Fiche''']]<br />
| [https://github.com/ultratrail '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 11<br />
| [[Plateforme d'analyse de données IoT]] <br />
| ALLARD, ROCHER<br />
| Palix, Richard<br />
| [[Projets-2016-2017-Plateform_Analyse_Données_IOT| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 13<br />
| [[IRock : Surveillance Géotechnique LoRa|iRock]]<br />
| SIEST, VEGREVILLE<br />
| Donsez<br />
| [[Projets-2016-2017-Projet_IRock| '''Fiche''']]<br />
| [https://github.com/Shadsa/IRock '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 14<br />
| [[GrenobloisFuté]]<br />
| VIAL, GUERRY<br />
| Palix<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 15<br />
| [[GeoDiff]]<br />
| AMAURIN, BECHER, BROCHIER<br />
| Palix<br />
| [[Projets-2016-2017-GeoDiff| '''Fiche''']]<br />
| [https://github.com/Hbecher/GeoDiff '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 16<br />
| [[floatingimage UPnP feed]] <br />
| FUSTES, DEREYMEZ<br />
| Palix, Donsez<br />
| [[Projets-2016-2017-floatingimageUPnP| '''Fiche''']] - [[Projets-2016-2017-floatingimageUPnP/SRS | '''SRS''']] - [[Projets-2016-2017-floatingimageUPnP/UML | '''UML''' ]]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 17<br />
| Webconférence [[Google VR]]<br />
| RIVOAL, ZENNOUCHE <br />
| Donsez<br />
| [[Projets-2016-2017-| '''Fiche''']] - [[Projets-2016-2017-UML| '''UML''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 18<br />
| [[NixOsTegraX1 | NixOS for Tegra X1]]<br />
| NASSIK, TURRIN<br />
| Richard<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 20<br />
| [[ExperimentControl | Experiment Control]] <br />
| HOMBERG, LEMAIRE<br />
| Richard<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 23<br />
| Intégration de caméras UPnP dans [[OpenHAB]] <br />
| BLANC, LAW<br />
| Donsez<br />
| [[Projets-2016-2017-UPnP Cameras integration into OpenHAB | '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
|}<br />
<br />
'''Propositions de projets:'''<br />
<br />
# [[Ruche connectée LoRa]] (OpenHab) , Didier Donsez, Denis Jongmann, Olivier Richard<br />
# [[Serres connectées]] (OpenHab) Surveillance des serres d'une exploitation agricole. Nicolas Palix, Michaël Périn et Vincent Hibon ("Les jardins du Coteau").<br />
# [[I-Greenhouse]] : [[Serre connectée aquaponie]] (OpenHab). Nicolas Palix, Didier Donsez (2 groupes)<br />
# [[Station de pompage connectée]]. Nicolas Palix<br />
# Géolocation Indoor basée sur les [[Beacon]]s BLE (iBeacon, AltBeacon, Eddystone). Utilisation d'algorithmes de trigonalisation ([https://github.com/jpias/beacon-pfilter-simulation/wiki lien]), (Didier Donsez, Vivien Quéma)<br />
# [[Application de suivi de colis avec RFID UHF (EPC Global)]], Didier Donsez<br />
# Projet [[StartAIR 2017]] : interface tablette de tableau de bord d'ULM, fiabilisation du réflecteur Flight Simulator (Fabrice Dubois, Nicolas Palix)<br />
# [[SmartSelfService]] (Didier Donsez, François Portet) en collaboration avec PHELMA.<br />
# [[Interface de contrôle "Photo"]] pour [[OpenHAB]] : éventuelle contribution à la fondation Eclipse (Didier Donsez)<br />
# [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]] (Didier Donsez, Vivien Quéma)<br />
# [[Plateforme d'analyse de données IoT]] (Nicolas Palix)<br />
# Extension de [[Swagger]] pour [[CoAP]] : Application avec [[Californium]] (Contribution à une communauté open-source), (Didier Donsez)<br />
# [[IRock : Surveillance Géotechnique LoRa|iRock]]: Plateforme Ubilitics pour la surveillance des risques naturelles (déploiement grande échelle de capteurs [[LoRa]] sur le terrain pour l'observation de glissement de terrain) en commun avec Geotech (à confirmer) : Didier Donsez, Sandrine Caroly, Denis Jongmans.<br />
# [[GrenobloisFuté]] Couche trafic sur OsmAnd avec un greffon. Données dynamique de la métro. Dvp Android. Nicolas Palix.<br />
# [[GeoDiff]] Production, visualisation, fusion de variations (diff) sur de l'information géocodée : Nicolas Palix (Multimédia)<br />
# [[floatingimage UPnP feed]] Cadre photos connecté à Kodi. Dvp Android. Nicolas Palix, Didier Donsez<br />
# Webconférence WebRTC stereoscopique avec [[Google VR]] SDK for Android (Jérôme Maisonnasse, Didier Donsez)<br />
# [[NixOsTegraX1 | NixOS for Tegra X1]]: (Olivier Richard)<br />
# [[LittleJump | Little Jump]]: Inventer un blablacar pour les petits trajets (Olivier Richard)<br />
# [[ExperimentControl | Experiment Control]] Développer un moteur de conduite d'expérience pour les systèmes distribués (Olivier Richard) <br />
# [[CrystalLanguageMicrocontroller | Crystal Language for Microcontroller]] (Olivier Richard)<br />
# Questionnaires automatiques, (Pierre Gillois, Didier Donsez)<br />
# Intégration de caméras UPnP dans [[OpenHAB]] (Didier Donsez)<br />
Moins prioritaires:<br />
# [[OwnPOI]] ownCloud plugin and osmand plugin to share POI and favorite positions. Dvp Android. Nicolas Palix.<br />
# [[OwnList]] ownCloud plugin and Android app to share a TODO list. Nicolas Palix.<br />
# [[Osmand-Auto]] Support Android Auto sur [[OsmAnd]] Nicolas Palix,<br />
# [[OCR de composition d'étiquettes alimentaires pour la base Open Food Facts]] (Nicolas Palix, Didier Donsez)<br />
Sous réserve de matériel<br />
# Reconstruction 3D d'images thermiques provenant des réseaux de caméras thermiques [[Flir One]] : application au sport connecté(Didier DONSEZ)<br />
# Géolocation Indoor basée sur [[Decaware]]. Utilisation d'algorithmes de trigonalisation ([https://github.com/jpias/beacon-pfilter-simulation/wiki lien]), (Didier Donsez, Vivien Quéma)<br />
<br />
==RICM5==<br />
===Projet Semestre S10===<br />
<br />
Enseignants responsables : Didier Donsez<br />
<br />
Calendrier: le projet commence le 23/01 et se termine le 17/03.<br />
<br />
Réunion de présentation : 23/01 à 8H00 (RdV Salle AIR).<br />
<br />
Soutenance à mi-parcours : A DEFINIR <br />
<br />
Soutenance (puis Pot de la fin) : A DEFINIR (Provisoirement le 17/03)<br />
<br />
Séances MPI:<br />
* Jeudi 26 janvier matin (Stéphanie Diligent)<br />
* Jeudi 2 février matin (Stéphanie Diligent)<br />
* Mardi 7 février matin (Emmanuelle Tréhoust)<br />
* Mardi 14 février matin (Emmanuelle Tréhoust)<br />
* Lundi 6 mars après midi (Stéphanie Diligent et Emmanuelle Tréhoust)<br />
<br />
Propositions '''définitives''' de projet:<br />
<br />
# [[Sous-titre_en_temps_r%C3%A9el_d%27un_cours| Sous-titre d'un cours en temps réel]] : Laurent Besacier, Didier Donsez, Marie-Paule Balicco, Jérôme Maisonnasse : BRUEL, BUI, LECHEVALLIER, MATHIEU, MOURET<br />
# [[Réalité virtuelle et Augmentée pour la maintenance d'usines]] (avec [[Unity 3D]] et [[Google VR]] SDK for Android, caméra Flir One, [[WebRTC]]): Didier Donsez, Georges-Pierre Bonneau : BERTRAND-DALECHAMPS, POPEK, ZAHO, BIN, NDIAYE <br />
# [[CoCass|CoCass : CaaS Docker collaboratif]] : Didier Donsez (ARRADA, FAURE, FOUNAS, HALLAL, MEDEWOU, VOUTAT)<br />
# [[Projet 2017 : Gestionnaire de packages Polytech| '''Gestion des images systèmes pour les supports à Polytech Grenoble''']] : GATTAZ, LECORPS, NOUGUIER, RAMEL<br />
# [[Suggestion intelligente de film basée sur TensorFlow]] : DUNAND, HATTINGUAIS, NAVARRO, NIOGRET, RACHEX<br />
# Projet Startup: Didier Donsez LUCIDARME, DELAPORTE<br />
<br />
Projets non choisi:<br />
# Borne d'accueil handicap : Didier Donsez, Marie-Paule Balicco, Jérôme Maisonnasse<br />
# [[Plateforme IoT du LIG basé sur Walt]] : Bernard Tourancheau, Franck Rousseau, Etienne Dublé<br />
# [[Contributions à RIOT OS]] autour de [[LoRa]]: Didier Donsez<br />
<br />
Remarque: [http://snowcamp.io/2017/fr/welcome Netbeans Days 2017], 7 Février 2017, Bâtiment IMAG. Pensez à vous inscrire!<br />
<br />
Remarque: [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2017 Eclipse IoT Days 2017], 9-10 Mars 2017, Bâtiment IMAG. Pensez à vous inscrire!<br />
<br />
=Année à définir=<br />
<br />
* [[Non linear MKV Editor]] : Nicolas Palix<br />
* [[Smart campus augmenté et contributif]]<br />
* [[Intégration OpenHAB / OpenTele]]<br />
* [[Client MQTT pour OBD]] sur Android<br />
* [[Sommeilomètre]] (Michael Perin, Didier Donsez)<br />
* [[Open DynDNS]]<br />
* [[IllumiRoom]]<br />
* [[Emergency mobile app]] Dvp Android. Nicolas Palix pour TIS, PRI et RICM<br />
* [[Kodi Reflexive Remote]] Dynamic remote control for Kodi. Nicolas Palix.<br />
* [http://intgat.tigress.co.uk/rmy/uml/index.html Zerofree] Portage de zerofree pour d'autres systèmes de fichiers que ext2/3/4 (notamment Unix FS). Voir également la page [http://packages.qa.debian.org/z/zerofree.html QA de Debian]. Nicolas Palix.<br />
* [[Bracelet électronique de monitoriing de l'alcoolémie]]<br />
* [[Oxymètre DIY]]<br />
* [[PinSound]]<br />
* [[Extension du support STM32Fx-Discovery dans libopencm3]] : Olivier Richard<br />
* [[Arduino et libopencm3]] : Olivier Richard<br />
* [[Data Acquisition System et Stm32f4-Discovery]] : Olivier Richard<br />
* [[Distributed Data Storage System]] : Olivier Richard<br />
* [[Dashboard based on w2ui]]<br />
* [[Environnement logiciel pour FabLab]] : Olivier Richard<br />
* [[Environnement logiciel pour le Live Programming]] : Olivier Richard<br />
* [[VirtualPinball]]<br />
* Tondeuse dessinatrice<br />
* [[ImmersiveDog]] Nicolas Glade, Didier Donsez<br />
* Projet avec [[OpenROV]] ???? : Didier Donsez<br />
* [[Sphero]] malin (Michael Périn) (2 etudiants)<br />
* [[Drone paramoteur]] ???<br />
* [[Optimisation de l'énergie pour cyclotouriste électrique]]<br />
* [[SmartSelfService|Smart Self-Service 2015]] Didier Donsez & Vivien Quema<br />
* [[Station Météo LoRa]] : contribution au projet [[LoRA-Fabian]] (Didier Donsez)<br />
<br />
=Réserve (boite à idées)=<br />
<br />
# [[Tag et Paint Ball en réalité augmentée]] (Michaël Périn) <br />
# [[Passe moi ton fichier]] (Michaël Périn) <br />
# [[Extensions à Fab Server]] (Jean-Michel Molenaar) sous reserve (CM ou SR)<br />
# [[Table multijeux de café 2.0]]<br />
# [[ GPIO_Qemu_RasPI| Emulation des GPIO dans QEMU pour le carte Raspberry Pi]] (Olivier Richard)<br />
# [[ Qemu et STM32F0-Discovery ]] (Olivier Richard)<br />
# [[Serrure à clé MIDI multifactorielle]] (Didier Donsez)<br />
# [[Table interactive musicale]] (Didier Donsez)<br />
# [[iMailbox]] (Didier Donsez)<br />
# [[AmILight]] (eclairage d'ambience intelligent) (Didier Donsez)<br />
# [[PDAmeetPDA]] (synchronisation d'agenda) (Michaël Périn)<br />
# [[1 000 000 VMs]] (expérimentation d'application distribuée à très grande échelle) (Olivier Richard) (2-3 RICM4)<br />
# [[Multiple Kinect]] (utilisation simultanée de plusieurs Kinect) (Olivier Richard) (RICM ou 3I)<br />
# [[Kinect musicale]] (Didier Donsez) (RICM)<br />
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)<br />
# Ocaml on AVR (Arduino)<br />
# Ocaml on Cortex-M3<br />
# [[Arduino on STM32 Discovery]]<br />
# [[Reverse Geocache Puzzle Box]]<br />
# [[OSGi ME]] (Didier Donsez)<br />
# [[Affichage Etudiant à Polytech]]<br />
# Synthèse 3D + motion capture Kinect<br />
# Logiciel d'[[apprentissage du calcul]] sur tablette Android (reconnaissance de chiffres manuscrits)<br />
# Plancher de verre (saint gobain) à la [http://www.wat.tv/video/mickael-jackson-billie-jean-oewj_2ey2h_.html Mickael Jackson dans Billie Jean] ! woo<br />
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)<br />
# [[CNC]]<br />
# [[Idées en Vrac]]<br />
# Scheme Everywhere (Olivier Richard) (2-3 RICM4-SR)<br />
# [[Projet Station Météo]]<br />
# Ocaml on AVR (Arduino)<br />
# [[Table interactive musicale]] (Didier Donsez)<br />
# [[AmILight]] (eclairage d'amnbience intelligent) (Didier Donsez)<br />
# [[Cube pointeur]] d'activité ingénieur<br />
# [http://www.instructables.com/id/Puppeteer-Motion-Capture-Costume/ Puppeteer Motion-Capture Costume]<br />
# [[Musical Staircase]] @ Polytech (Didier Donsez, 1 RICM4 + 1 3I4)<br />
# [[Total Recall]] (Didier Donsez)<br />
# [[SoundMachine]]<br />
# [[IGN-OSM|Importation de données IGN publiques dans OSM]]<br />
# [[Speed-limit-OSM|Analyse de traces GPX pour déterminer les limitations de vitesse]]<br />
# [[Multi perceptual cameras]] (Didier Donsez)<br />
# [[Photomaton 3D]] (Didier Donsez)<br />
# [[ArduCopter]]<br />
# [[Parking Intelligent]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_TensorFlow&diff=31544VT2016 TensorFlow2016-11-03T12:01:51Z<p>Julian.Hattinguais: /* Fonctionnement détaillé : Démo MNIST sous Python */</p>
<hr />
<div>=Présentation=<br />
* Sujet : TensorFlow<br />
* Auteur : Coralie RACHEX<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 04/10/2016<br />
<br />
[[File:VT2016_TensorFlow.jpg]]<br />
<br />
=Résumé=<br />
TensorFlow™ est une librairie open source permettant d'effectuer des calculs numériques en utilisant des graphes de flux de données. Les noeuds du graphe représentant des opérations mathématiques, tandis que les arêtes représentent les données. Cette architecture flexible permet de déployer l'ensemble des calculs sur un ou plusieurs CPU ou GPU. Cela permet également de déployer le programme sur un ordinateur de bureau, sur un serveur et même sur un appareil mobile avec une seule API. TensorFlow a été initialement développé par les chercheurs et les ingénieurs de l'équipe Google Brain, au sein du département de recherche sur l'intelligence artificielle de Google, dans le but d'être utilisé en apprentissage automatique et pour poursuivre les recherches sur l'apprentissage en profondeur par réseaux de neurones. Mais le système est tout aussi bien applicable dans une grande variété d'autres domaines.<br />
<br />
* Mots-clés : TensorFlow, Apprentissage en profondeur, Réseau neuronal, Apprentissage automatique<br />
<br />
<br />
=Abstract=<br />
TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the data. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.<br />
<br />
* Keywords : TensorFlow, DeepLearning, Neural network, Machine learning<br />
<br />
<br />
=Synthèse=<br />
<br />
<br />
==Domaine d'application==<br />
<br />
Comme TensorFlow provient de Google, il est évident que Google utilise cette technologie pour plusieurs de ses services. Cela permet d'avoir un aperçu de ses possibles applications. Mais il ne faut pas perdre de vue le fait que nous sommes actuellement à un stade précoce de l'apprentissage automatique et que '''bon nombre de ses applications potentielles sont encore insoupçonnées'''. <br />
<br />
'''Analyse d'images'''<br />
*Google Photos : création automatique des albums et des vidéos en fonction des similitudes.<br />
*Street View : brouillage automatique des numéros de plaque d'immatriculation des voitures. <br />
<br />
'''Reconnaissance de la parole'''<br />
*Google Talk : reconnaissance vocale des instructions à exécuter.<br />
<br />
'''Traduction dynamique'''<br />
*Google Translate : détection automatique de la langue d'entrée.<br />
<br />
'''Alpha Go'''<br />
*Il s'agit d'une application programmée pour jouer au Go, un jeu incroyablement complexe qui possèderait plus de possibilités que le nombre total d'atomes dans l'univers visible. Cette application montre ce que la technologie de l'apprentissage machine peut faire avec les possibilités infinies. Dans ses matches contre Lee Sedol (considéré comme l'un des meilleurs joueurs mondiaux), Alpha Go a remporté 4 de 5 parties.<br />
<br />
'''Magenta Project'''<br />
*Il s'agit d'un projet ambitieux, ayant la prétention de créer de l'art grâce à une machine. Le premier résultat tangible a été une mélodie de 90 secondes jouée au piano. En février 2016, Google a également organisé une exposition d'art et de vente aux enchères à San Francisco, montrant 29 œuvres générés par ordinateur (avec un peu d'aide de l'homme).<br />
<br />
<br />
==Forces et faiblesses==<br />
<br />
'''Paradigme de programmation déclarative''' :<br />
TensorFlow permet de se concentrer sur le problème (quoi), plutôt que sur la solution (comment).<br />
<br />
'''Portabilité''' :<br />
TensorFlow fonctionne sur CPU ou GPU. Et le modèle créé avec TensorFlow peut être déployé sur ordinateur, serveur, appareil mobile et même dans le cloud (conteneuriser avec Docker).<br />
<br />
'''Flexibilité''' :<br />
TensorFlow ne propose pas que des algorithmes, il propose également un ensemble d'outils permettant d'assembler différentes couches dans les réseaux de neurones. À partir de là, l'utilisateur peut créer ses propres algorithmes et les intégrer au reste très facilement.<br />
<br />
'''Performance''' :<br />
TensorFlow gère lui même les calculs asynchrones et permet donc en théorie de tirer le meilleur parti du matériel disponible. Mais en réalité, il est encore un peu à la traine comparé à certains de ses concurrents. À ses débuts, il souffrait même d'un réel problème de performance, qui a toutefois été vite corrigé par Google. Et les contributions ne cessent d'améliorer les choses.<br />
<br />
'''API multilangage''' :<br />
TensorFlow est utilisable en Python et en C++ (l'API Python est à l'heure actuelle le plus complet et le plus facile à utiliser, mais l'API C ++ peut offrir certains avantages de performance dans l'exécution du graphe, et prend en charge le déploiement Android). De plus, Google à l'intention d'inclure des API pour Java et Go, puis plus tard pour d'autres langages comme JavaScript, Lua, R, etc.<br />
<br />
'''Outils incorporés''' :<br />
Tensorboard aide à construire et à visualiser les modèles de flots de données.<br />
<br />
'''Communauté active''' :<br />
Il suffit de jeter un oeil à la liste des auteurs de TensorFlow pour se rendre compte de l'importance du projet pour Google, puisqu'il a mis dessus un bon nombre de ses meilleurs éléments: Jeff Dean (père de MapReduce), Ian Goodfellow (contributeur principal de Théano / PyLearn2), Yangqing Jia (principal contributeur de Caffe). De plus, Google a rendu cette technologie open source pour accélérer sa croissance. Cette stratégie est payante, car la communauté est effectivement très active. Et une communauté active est la meilleure des choses pour le maintien et le développement d'une technologie !<br />
<br />
==Fonctionnement général==<br />
<br />
TensorFlow représente les flux de données sous forme de graphes, où les nœuds représentent des opérations mathématiques et les arrêtes représentent des tenseurs. Ces graphes sont des représentations complètes des calculs qui sont ensuite exécutés sur le CPU ou le GPU.<br />
<br />
===Tenseur===<br />
<br />
TensorFlow utilise des tenseurs pour représenter toutes les données. Les tenseurs sont des tableaux de données multidimensionnelles et de taille dynamique. Cette structure peut donc avoir différents niveaux de complexité, du scalaire à une matrice de dimension n. <br />
<br />
[[File:VT2016_Tensor.gif]]<br />
<br />
===Variable===<br />
<br />
Les opérations mathématiques réalisées par TensorFlow découlent directement du ou des modèles utilisés pour l'apprentissage. Or, ces modèles reposent eux même sur les paramètres (poids et biais pour la softmax regression). Lors de la phase d'entrainement, TensorFlow utilise des variables pour mettre à jour ces paramètres sur lesquels repose le modèle d'apprentissage. Ces variables contiennent des tenseurs (puisque toutes les données sont des tenseurs sous TensorFlow), mais contrairement aux tenseurs, les variables sont modifiées tout au long de la phase d'apprentissage.<br />
<br />
[[File:VT2016_Variable.gif]]<br />
<br />
==Fonctionnement détaillé : Démo MNIST sous Python==<br />
<br />
Le MNIST fait référence à la base de données MNIST (Mixed National Institute of Standards and Technology), une base de données de chiffres écrits à la main. Ce sont des images en noir et blanc, normalisées centrées de 28 pixels de côté. Les images d'apprentissage étant associé à des étiquettes déterminant le chiffre. La reconnaissance de l'écriture manuscrite étant un problème complexe, le MNIST est devenu un test standard pour les algorithmes d'apprentissages supervisés. <br />
<br />
===Importation de TensorFlow===<br />
<br />
La première chose à faire avant de commencer le programme Python est d'importer TensorFlow.<br />
<br />
[[File:VT2016_ImportTensorFlow.png|200px]]<br />
<br />
===Importation des données MNIST===<br />
<br />
Ensuite, il faut importer les données MNIST. Chaque donnée est constituée d'une image représentant un chiffre écrit à la main, et de son label correspondant.<br />
<br />
[[File:VT2016_ImportMNIST.png|500px]]<br />
<br />
[[File:VT2016_MNIST.png|500px]]<br />
<br />
===Création du modèle d'apprentissage : Softmax Regression===<br />
<br />
Pour x et y_, le mot clé "tf.placeholder" indique que ce sont simplement des espaces réservés qui vont être remplis par les tenseurs représentant l'ensemble des images et des labels, lors de l'apprentissage.<br />
*x sera rempli par le tenseur représentant les images (chaque image étant représentés par un vecteur de 784 valeurs, où les 0 représentent les pixels d’intensité faible et les 1 représentent les pixels d’intensité forte).<br />
*y_ sera rempli par le tenseur représentant les labels (chaque label étant représenté par un vecteur de 10 valeurs où la position du 1 parmi les 0 indique le chiffre, par exemple 3 = [0001000000]).<br />
<br />
[[File:VT2016_x.png|350px]]<br />
<br />
[[File:VT2016_y_.png|350px]]<br />
<br />
Pour W et b, le mot clé "tf.variable" indique qu'il s'agit des variables du modèle d'apprentissage, qui seront continuellement recalculées durant la phase d'apprentissage. Ces variables sont initialisées comme des tenseurs pleins de zéros (puisque nous allons apprendre W et b, il n'a pas beaucoup d'importance ce qu'ils sont au départ). <br />
*w représente le poids.<br />
*b représente le biais.<br />
<br />
[[File:VT2016_wb.png|300px]]<br />
<br />
Il ne reste plus qu'à mettre en œuvre notre modèle de régression. Ce modèle est très simple, puisqu'il suffit de multiplier les images d'entrée x par la matrice de poids W, puis d'ajouter le biais b. On obtient alors y qui est le label prédit. <br />
<br />
[[File:VT2016_y.png|200px]]<br />
<br />
===Mise en place de la phase d'apprentissage===<br />
<br />
Lors de la phase d'apprentissage, nous allons chercher à minimiser la perte, c'est-à-dire la distance entre la prévision de notre modèle (y) vis-à-vis du résultat souhaité (y_). Le but est d'améliorer le modèle en modifiant les variables de poids et de biais au cours de la phase d'apprentissage.<br />
<br />
La fonction la plus connue pour déterminer la perte d'un modèle est appelée «entropie croisée. Après avoir défini l'entropie croisée, TensorFlow peut automatiquement utiliser l'algorithme de rétropropagation pour déterminer efficacement comment les variables influent sur la perte que vous lui demandez de minimiser. De cette façon, il va modifier les variables afin de réduire la perte.<br />
<br />
[[File:VT2016_perte.png|600px]]<br />
<br />
===Lancement de la phase d'apprentissage===<br />
<br />
TensorFlow repose sur un back-end C++ pour faire son calcul et la connexion à ce back-end est appelée une session. Il faut donc instancier une nouvelle session avant d'initialiser les variables et de lancer l'apprentissage.<br />
<br />
[[File:VT2016_apprentissage.png|500px]]<br />
<br />
===Évaluation du modèle d'apprentissage===<br />
<br />
Le plus important en apprentissage automatique, est de pouvoir connaître la précision de l'algorithme. <br />
<br />
[[File:VT2016_précision.png|570px]]<br />
<br />
tf.argmax(y,1) est le label que notre modèle pense le plus probable, tandis que tf.argmax(y_,1) est le véritable label. Nous pouvons alors utiliser tf.equal pour vérifier si notre prévision correspond à la vérité. Cela nous donne une liste de booléens, que l'on cast en nombre à virgule flottante, avant d'en calculer la moyenne. Par exemple [True, False, True, True] deviendrait [1,0,1,1] qui donnerait 0.75.<br />
<br />
La précision de l'algorithme sur les données d'essai est d'environ 92%. Il faut savoir que ce résultat sur le MNIST est mauvais, mais cela s'explique par l'extrême simplicité du modèle utilisé. En effet, nous avons utilisé une seule couche linéaire. Avec un modèle à peine plus sophistiqué (un petit réseau de neurones à convolution), cela nous mène à environ 99,2% de précision. Et des réseaux multicouches de neurones plus complexes mènent proches des 99,9%.<br />
<br />
=Webographie=<br />
*https://www.tensorflow.org/<br />
*https://github.com/tensorflow/tensorflow<br />
*http://download.tensorflow.org/paper/whitepaper2015.pdf<br />
*http://www.lemonde.fr/pixels/article/2015/07/24/comment-le-deep-learning-revolutionne-l-intelligence-artificielle_4695929_4408996.html<br />
*http://beebom.com/google-brains-tensorflow/<br />
*https://www.reddit.com/r/artificial/comments/4ym9ba/tensorflow_demo_in_5_minutes/<br />
*http://www.cell.com/cell-systems/pdf/S2405-4712(16)00010-7.pdf</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_TensorFlow&diff=31543VT2016 TensorFlow2016-11-03T12:01:25Z<p>Julian.Hattinguais: /* Fonctionnement détaillé : Démo MNIST sous Python */</p>
<hr />
<div>=Présentation=<br />
* Sujet : TensorFlow<br />
* Auteur : Coralie RACHEX<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 04/10/2016<br />
<br />
[[File:VT2016_TensorFlow.jpg]]<br />
<br />
=Résumé=<br />
TensorFlow™ est une librairie open source permettant d'effectuer des calculs numériques en utilisant des graphes de flux de données. Les noeuds du graphe représentant des opérations mathématiques, tandis que les arêtes représentent les données. Cette architecture flexible permet de déployer l'ensemble des calculs sur un ou plusieurs CPU ou GPU. Cela permet également de déployer le programme sur un ordinateur de bureau, sur un serveur et même sur un appareil mobile avec une seule API. TensorFlow a été initialement développé par les chercheurs et les ingénieurs de l'équipe Google Brain, au sein du département de recherche sur l'intelligence artificielle de Google, dans le but d'être utilisé en apprentissage automatique et pour poursuivre les recherches sur l'apprentissage en profondeur par réseaux de neurones. Mais le système est tout aussi bien applicable dans une grande variété d'autres domaines.<br />
<br />
* Mots-clés : TensorFlow, Apprentissage en profondeur, Réseau neuronal, Apprentissage automatique<br />
<br />
<br />
=Abstract=<br />
TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the data. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.<br />
<br />
* Keywords : TensorFlow, DeepLearning, Neural network, Machine learning<br />
<br />
<br />
=Synthèse=<br />
<br />
<br />
==Domaine d'application==<br />
<br />
Comme TensorFlow provient de Google, il est évident que Google utilise cette technologie pour plusieurs de ses services. Cela permet d'avoir un aperçu de ses possibles applications. Mais il ne faut pas perdre de vue le fait que nous sommes actuellement à un stade précoce de l'apprentissage automatique et que '''bon nombre de ses applications potentielles sont encore insoupçonnées'''. <br />
<br />
'''Analyse d'images'''<br />
*Google Photos : création automatique des albums et des vidéos en fonction des similitudes.<br />
*Street View : brouillage automatique des numéros de plaque d'immatriculation des voitures. <br />
<br />
'''Reconnaissance de la parole'''<br />
*Google Talk : reconnaissance vocale des instructions à exécuter.<br />
<br />
'''Traduction dynamique'''<br />
*Google Translate : détection automatique de la langue d'entrée.<br />
<br />
'''Alpha Go'''<br />
*Il s'agit d'une application programmée pour jouer au Go, un jeu incroyablement complexe qui possèderait plus de possibilités que le nombre total d'atomes dans l'univers visible. Cette application montre ce que la technologie de l'apprentissage machine peut faire avec les possibilités infinies. Dans ses matches contre Lee Sedol (considéré comme l'un des meilleurs joueurs mondiaux), Alpha Go a remporté 4 de 5 parties.<br />
<br />
'''Magenta Project'''<br />
*Il s'agit d'un projet ambitieux, ayant la prétention de créer de l'art grâce à une machine. Le premier résultat tangible a été une mélodie de 90 secondes jouée au piano. En février 2016, Google a également organisé une exposition d'art et de vente aux enchères à San Francisco, montrant 29 œuvres générés par ordinateur (avec un peu d'aide de l'homme).<br />
<br />
<br />
==Forces et faiblesses==<br />
<br />
'''Paradigme de programmation déclarative''' :<br />
TensorFlow permet de se concentrer sur le problème (quoi), plutôt que sur la solution (comment).<br />
<br />
'''Portabilité''' :<br />
TensorFlow fonctionne sur CPU ou GPU. Et le modèle créé avec TensorFlow peut être déployé sur ordinateur, serveur, appareil mobile et même dans le cloud (conteneuriser avec Docker).<br />
<br />
'''Flexibilité''' :<br />
TensorFlow ne propose pas que des algorithmes, il propose également un ensemble d'outils permettant d'assembler différentes couches dans les réseaux de neurones. À partir de là, l'utilisateur peut créer ses propres algorithmes et les intégrer au reste très facilement.<br />
<br />
'''Performance''' :<br />
TensorFlow gère lui même les calculs asynchrones et permet donc en théorie de tirer le meilleur parti du matériel disponible. Mais en réalité, il est encore un peu à la traine comparé à certains de ses concurrents. À ses débuts, il souffrait même d'un réel problème de performance, qui a toutefois été vite corrigé par Google. Et les contributions ne cessent d'améliorer les choses.<br />
<br />
'''API multilangage''' :<br />
TensorFlow est utilisable en Python et en C++ (l'API Python est à l'heure actuelle le plus complet et le plus facile à utiliser, mais l'API C ++ peut offrir certains avantages de performance dans l'exécution du graphe, et prend en charge le déploiement Android). De plus, Google à l'intention d'inclure des API pour Java et Go, puis plus tard pour d'autres langages comme JavaScript, Lua, R, etc.<br />
<br />
'''Outils incorporés''' :<br />
Tensorboard aide à construire et à visualiser les modèles de flots de données.<br />
<br />
'''Communauté active''' :<br />
Il suffit de jeter un oeil à la liste des auteurs de TensorFlow pour se rendre compte de l'importance du projet pour Google, puisqu'il a mis dessus un bon nombre de ses meilleurs éléments: Jeff Dean (père de MapReduce), Ian Goodfellow (contributeur principal de Théano / PyLearn2), Yangqing Jia (principal contributeur de Caffe). De plus, Google a rendu cette technologie open source pour accélérer sa croissance. Cette stratégie est payante, car la communauté est effectivement très active. Et une communauté active est la meilleure des choses pour le maintien et le développement d'une technologie !<br />
<br />
==Fonctionnement général==<br />
<br />
TensorFlow représente les flux de données sous forme de graphes, où les nœuds représentent des opérations mathématiques et les arrêtes représentent des tenseurs. Ces graphes sont des représentations complètes des calculs qui sont ensuite exécutés sur le CPU ou le GPU.<br />
<br />
===Tenseur===<br />
<br />
TensorFlow utilise des tenseurs pour représenter toutes les données. Les tenseurs sont des tableaux de données multidimensionnelles et de taille dynamique. Cette structure peut donc avoir différents niveaux de complexité, du scalaire à une matrice de dimension n. <br />
<br />
[[File:VT2016_Tensor.gif]]<br />
<br />
===Variable===<br />
<br />
Les opérations mathématiques réalisées par TensorFlow découlent directement du ou des modèles utilisés pour l'apprentissage. Or, ces modèles reposent eux même sur les paramètres (poids et biais pour la softmax regression). Lors de la phase d'entrainement, TensorFlow utilise des variables pour mettre à jour ces paramètres sur lesquels repose le modèle d'apprentissage. Ces variables contiennent des tenseurs (puisque toutes les données sont des tenseurs sous TensorFlow), mais contrairement aux tenseurs, les variables sont modifiées tout au long de la phase d'apprentissage.<br />
<br />
[[File:VT2016_Variable.gif]]<br />
<br />
==Fonctionnement détaillé : Démo MNIST sous Python==<br />
<br />
Le MNIST fait référence à la base de données MNIST (Mixed National Institute of Standards and Technology), une base de données de chiffres écrites à la main. Ce sont des images en noir et blanc, normalisées centrées de 28 pixels de côté. Les images d'apprentissage étant associé à des étiquettes déterminant le chiffre. La reconnaissance de l'écriture manuscrite étant un problème complexe, le MNIST est devenu un test standard pour les algorithmes d'apprentissages supervisés. <br />
<br />
===Importation de TensorFlow===<br />
<br />
La première chose à faire avant de commencer le programme Python est d'importer TensorFlow.<br />
<br />
[[File:VT2016_ImportTensorFlow.png|200px]]<br />
<br />
===Importation des données MNIST===<br />
<br />
Ensuite, il faut importer les données MNIST. Chaque donnée est constituée d'une image représentant un chiffre écrit à la main, et de son label correspondant.<br />
<br />
[[File:VT2016_ImportMNIST.png|500px]]<br />
<br />
[[File:VT2016_MNIST.png|500px]]<br />
<br />
===Création du modèle d'apprentissage : Softmax Regression===<br />
<br />
Pour x et y_, le mot clé "tf.placeholder" indique que ce sont simplement des espaces réservés qui vont être remplis par les tenseurs représentant l'ensemble des images et des labels, lors de l'apprentissage.<br />
*x sera rempli par le tenseur représentant les images (chaque image étant représentés par un vecteur de 784 valeurs, où les 0 représentent les pixels d’intensité faible et les 1 représentent les pixels d’intensité forte).<br />
*y_ sera rempli par le tenseur représentant les labels (chaque label étant représenté par un vecteur de 10 valeurs où la position du 1 parmi les 0 indique le chiffre, par exemple 3 = [0001000000]).<br />
<br />
[[File:VT2016_x.png|350px]]<br />
<br />
[[File:VT2016_y_.png|350px]]<br />
<br />
Pour W et b, le mot clé "tf.variable" indique qu'il s'agit des variables du modèle d'apprentissage, qui seront continuellement recalculées durant la phase d'apprentissage. Ces variables sont initialisées comme des tenseurs pleins de zéros (puisque nous allons apprendre W et b, il n'a pas beaucoup d'importance ce qu'ils sont au départ). <br />
*w représente le poids.<br />
*b représente le biais.<br />
<br />
[[File:VT2016_wb.png|300px]]<br />
<br />
Il ne reste plus qu'à mettre en œuvre notre modèle de régression. Ce modèle est très simple, puisqu'il suffit de multiplier les images d'entrée x par la matrice de poids W, puis d'ajouter le biais b. On obtient alors y qui est le label prédit. <br />
<br />
[[File:VT2016_y.png|200px]]<br />
<br />
===Mise en place de la phase d'apprentissage===<br />
<br />
Lors de la phase d'apprentissage, nous allons chercher à minimiser la perte, c'est-à-dire la distance entre la prévision de notre modèle (y) vis-à-vis du résultat souhaité (y_). Le but est d'améliorer le modèle en modifiant les variables de poids et de biais au cours de la phase d'apprentissage.<br />
<br />
La fonction la plus connue pour déterminer la perte d'un modèle est appelée «entropie croisée. Après avoir défini l'entropie croisée, TensorFlow peut automatiquement utiliser l'algorithme de rétropropagation pour déterminer efficacement comment les variables influent sur la perte que vous lui demandez de minimiser. De cette façon, il va modifier les variables afin de réduire la perte.<br />
<br />
[[File:VT2016_perte.png|600px]]<br />
<br />
===Lancement de la phase d'apprentissage===<br />
<br />
TensorFlow repose sur un back-end C++ pour faire son calcul et la connexion à ce back-end est appelée une session. Il faut donc instancier une nouvelle session avant d'initialiser les variables et de lancer l'apprentissage.<br />
<br />
[[File:VT2016_apprentissage.png|500px]]<br />
<br />
===Évaluation du modèle d'apprentissage===<br />
<br />
Le plus important en apprentissage automatique, est de pouvoir connaître la précision de l'algorithme. <br />
<br />
[[File:VT2016_précision.png|570px]]<br />
<br />
tf.argmax(y,1) est le label que notre modèle pense le plus probable, tandis que tf.argmax(y_,1) est le véritable label. Nous pouvons alors utiliser tf.equal pour vérifier si notre prévision correspond à la vérité. Cela nous donne une liste de booléens, que l'on cast en nombre à virgule flottante, avant d'en calculer la moyenne. Par exemple [True, False, True, True] deviendrait [1,0,1,1] qui donnerait 0.75.<br />
<br />
La précision de l'algorithme sur les données d'essai est d'environ 92%. Il faut savoir que ce résultat sur le MNIST est mauvais, mais cela s'explique par l'extrême simplicité du modèle utilisé. En effet, nous avons utilisé une seule couche linéaire. Avec un modèle à peine plus sophistiqué (un petit réseau de neurones à convolution), cela nous mène à environ 99,2% de précision. Et des réseaux multicouches de neurones plus complexes mènent proches des 99,9%.<br />
<br />
=Webographie=<br />
*https://www.tensorflow.org/<br />
*https://github.com/tensorflow/tensorflow<br />
*http://download.tensorflow.org/paper/whitepaper2015.pdf<br />
*http://www.lemonde.fr/pixels/article/2015/07/24/comment-le-deep-learning-revolutionne-l-intelligence-artificielle_4695929_4408996.html<br />
*http://beebom.com/google-brains-tensorflow/<br />
*https://www.reddit.com/r/artificial/comments/4ym9ba/tensorflow_demo_in_5_minutes/<br />
*http://www.cell.com/cell-systems/pdf/S2405-4712(16)00010-7.pdf</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_TensorFlow&diff=31542VT2016 TensorFlow2016-11-03T11:59:53Z<p>Julian.Hattinguais: /* Variable */</p>
<hr />
<div>=Présentation=<br />
* Sujet : TensorFlow<br />
* Auteur : Coralie RACHEX<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 04/10/2016<br />
<br />
[[File:VT2016_TensorFlow.jpg]]<br />
<br />
=Résumé=<br />
TensorFlow™ est une librairie open source permettant d'effectuer des calculs numériques en utilisant des graphes de flux de données. Les noeuds du graphe représentant des opérations mathématiques, tandis que les arêtes représentent les données. Cette architecture flexible permet de déployer l'ensemble des calculs sur un ou plusieurs CPU ou GPU. Cela permet également de déployer le programme sur un ordinateur de bureau, sur un serveur et même sur un appareil mobile avec une seule API. TensorFlow a été initialement développé par les chercheurs et les ingénieurs de l'équipe Google Brain, au sein du département de recherche sur l'intelligence artificielle de Google, dans le but d'être utilisé en apprentissage automatique et pour poursuivre les recherches sur l'apprentissage en profondeur par réseaux de neurones. Mais le système est tout aussi bien applicable dans une grande variété d'autres domaines.<br />
<br />
* Mots-clés : TensorFlow, Apprentissage en profondeur, Réseau neuronal, Apprentissage automatique<br />
<br />
<br />
=Abstract=<br />
TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the data. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.<br />
<br />
* Keywords : TensorFlow, DeepLearning, Neural network, Machine learning<br />
<br />
<br />
=Synthèse=<br />
<br />
<br />
==Domaine d'application==<br />
<br />
Comme TensorFlow provient de Google, il est évident que Google utilise cette technologie pour plusieurs de ses services. Cela permet d'avoir un aperçu de ses possibles applications. Mais il ne faut pas perdre de vue le fait que nous sommes actuellement à un stade précoce de l'apprentissage automatique et que '''bon nombre de ses applications potentielles sont encore insoupçonnées'''. <br />
<br />
'''Analyse d'images'''<br />
*Google Photos : création automatique des albums et des vidéos en fonction des similitudes.<br />
*Street View : brouillage automatique des numéros de plaque d'immatriculation des voitures. <br />
<br />
'''Reconnaissance de la parole'''<br />
*Google Talk : reconnaissance vocale des instructions à exécuter.<br />
<br />
'''Traduction dynamique'''<br />
*Google Translate : détection automatique de la langue d'entrée.<br />
<br />
'''Alpha Go'''<br />
*Il s'agit d'une application programmée pour jouer au Go, un jeu incroyablement complexe qui possèderait plus de possibilités que le nombre total d'atomes dans l'univers visible. Cette application montre ce que la technologie de l'apprentissage machine peut faire avec les possibilités infinies. Dans ses matches contre Lee Sedol (considéré comme l'un des meilleurs joueurs mondiaux), Alpha Go a remporté 4 de 5 parties.<br />
<br />
'''Magenta Project'''<br />
*Il s'agit d'un projet ambitieux, ayant la prétention de créer de l'art grâce à une machine. Le premier résultat tangible a été une mélodie de 90 secondes jouée au piano. En février 2016, Google a également organisé une exposition d'art et de vente aux enchères à San Francisco, montrant 29 œuvres générés par ordinateur (avec un peu d'aide de l'homme).<br />
<br />
<br />
==Forces et faiblesses==<br />
<br />
'''Paradigme de programmation déclarative''' :<br />
TensorFlow permet de se concentrer sur le problème (quoi), plutôt que sur la solution (comment).<br />
<br />
'''Portabilité''' :<br />
TensorFlow fonctionne sur CPU ou GPU. Et le modèle créé avec TensorFlow peut être déployé sur ordinateur, serveur, appareil mobile et même dans le cloud (conteneuriser avec Docker).<br />
<br />
'''Flexibilité''' :<br />
TensorFlow ne propose pas que des algorithmes, il propose également un ensemble d'outils permettant d'assembler différentes couches dans les réseaux de neurones. À partir de là, l'utilisateur peut créer ses propres algorithmes et les intégrer au reste très facilement.<br />
<br />
'''Performance''' :<br />
TensorFlow gère lui même les calculs asynchrones et permet donc en théorie de tirer le meilleur parti du matériel disponible. Mais en réalité, il est encore un peu à la traine comparé à certains de ses concurrents. À ses débuts, il souffrait même d'un réel problème de performance, qui a toutefois été vite corrigé par Google. Et les contributions ne cessent d'améliorer les choses.<br />
<br />
'''API multilangage''' :<br />
TensorFlow est utilisable en Python et en C++ (l'API Python est à l'heure actuelle le plus complet et le plus facile à utiliser, mais l'API C ++ peut offrir certains avantages de performance dans l'exécution du graphe, et prend en charge le déploiement Android). De plus, Google à l'intention d'inclure des API pour Java et Go, puis plus tard pour d'autres langages comme JavaScript, Lua, R, etc.<br />
<br />
'''Outils incorporés''' :<br />
Tensorboard aide à construire et à visualiser les modèles de flots de données.<br />
<br />
'''Communauté active''' :<br />
Il suffit de jeter un oeil à la liste des auteurs de TensorFlow pour se rendre compte de l'importance du projet pour Google, puisqu'il a mis dessus un bon nombre de ses meilleurs éléments: Jeff Dean (père de MapReduce), Ian Goodfellow (contributeur principal de Théano / PyLearn2), Yangqing Jia (principal contributeur de Caffe). De plus, Google a rendu cette technologie open source pour accélérer sa croissance. Cette stratégie est payante, car la communauté est effectivement très active. Et une communauté active est la meilleure des choses pour le maintien et le développement d'une technologie !<br />
<br />
==Fonctionnement général==<br />
<br />
TensorFlow représente les flux de données sous forme de graphes, où les nœuds représentent des opérations mathématiques et les arrêtes représentent des tenseurs. Ces graphes sont des représentations complètes des calculs qui sont ensuite exécutés sur le CPU ou le GPU.<br />
<br />
===Tenseur===<br />
<br />
TensorFlow utilise des tenseurs pour représenter toutes les données. Les tenseurs sont des tableaux de données multidimensionnelles et de taille dynamique. Cette structure peut donc avoir différents niveaux de complexité, du scalaire à une matrice de dimension n. <br />
<br />
[[File:VT2016_Tensor.gif]]<br />
<br />
===Variable===<br />
<br />
Les opérations mathématiques réalisées par TensorFlow découlent directement du ou des modèles utilisés pour l'apprentissage. Or, ces modèles reposent eux même sur les paramètres (poids et biais pour la softmax regression). Lors de la phase d'entrainement, TensorFlow utilise des variables pour mettre à jour ces paramètres sur lesquels repose le modèle d'apprentissage. Ces variables contiennent des tenseurs (puisque toutes les données sont des tenseurs sous TensorFlow), mais contrairement aux tenseurs, les variables sont modifiées tout au long de la phase d'apprentissage.<br />
<br />
[[File:VT2016_Variable.gif]]<br />
<br />
==Fonctionnement détaillé : Démo MNIST sous Python==<br />
<br />
Le MNIST fait référence à la base de données MNIST (Mixed National Institute of Standards and Technology), une base de données de chiffres écrits à la main. Ce sont des images en noir et blanc, normalisées centrées de 28 pixels de côté. Les images d'apprentissage étant associé à des étiquettes déterminant le chiffre. La reconnaissance de l'écriture manuscrite étant un problème complexe, le MNIST est devenu un test standard pour les algorithmes d'apprentissages supervisés. <br />
<br />
===Importation de TensorFlow===<br />
<br />
La première chose à faire avant de commencer le programme Python est d'importer TensorFlow.<br />
<br />
[[File:VT2016_ImportTensorFlow.png|200px]]<br />
<br />
===Importation des données MNIST===<br />
<br />
Ensuite, il faut importer les données MNIST. Chaque donnée est constituée d'une image représentant un chiffre écrit à la main, et de son label correspondant.<br />
<br />
[[File:VT2016_ImportMNIST.png|500px]]<br />
<br />
[[File:VT2016_MNIST.png|500px]]<br />
<br />
===Création du modèle d'apprentissage : Softmax Regression===<br />
<br />
Pour x et y_, le mot clé "tf.placeholder" indique que ce sont simplement des espaces réservés qui vont être remplis par les tenseurs représentant l'ensemble des images et des labels, lors de l'apprentissage.<br />
*x sera rempli par le tenseur représentant les images (chaque image étant représentés par un vecteur de 784 valeurs, où les 0 représentent les pixels d’intensité faible et les 1 représentent les pixels d’intensité forte).<br />
*y_ sera rempli par le tenseur représentant les labels (chaque label étant représenté par un vecteur de 10 valeurs où la position du 1 parmi les 0 indique le chiffre, par exemple 3 = [0001000000]).<br />
<br />
[[File:VT2016_x.png|350px]]<br />
<br />
[[File:VT2016_y_.png|350px]]<br />
<br />
Pour W et b, le mot clé "tf.variable" indique qu'il s'agit des variables du modèle d'apprentissage, qui seront continuellement recalculées durant la phase d'apprentissage. Ces variables sont initialisées comme des tenseurs pleins de zéros (puisque nous allons apprendre W et b, il n'a pas beaucoup d'importance ce qu'ils sont au départ). <br />
*w représente le poids.<br />
*b représente le biais.<br />
<br />
[[File:VT2016_wb.png|300px]]<br />
<br />
Il ne reste plus qu'à mettre en œuvre notre modèle de régression. Ce modèle est très simple, puisqu'il suffit de multiplier les images d'entrée x par la matrice de poids W, puis d'ajouter le biais b. On obtient alors y qui est le label prédit. <br />
<br />
[[File:VT2016_y.png|200px]]<br />
<br />
===Mise en place de la phase d'apprentissage===<br />
<br />
Lors de la phase d'apprentissage, nous allons chercher à minimiser la perte, c'est-à-dire la distance entre la prévision de notre modèle (y) vis-à-vis du résultat souhaité (y_). Le but est d'améliorer le modèle en modifiant les variables de poids et de biais au cours de la phase d'apprentissage.<br />
<br />
La fonction la plus connue pour déterminer la perte d'un modèle est appelée «entropie croisée. Après avoir défini l'entropie croisée, TensorFlow peut automatiquement utiliser l'algorithme de rétropropagation pour déterminer efficacement comment les variables influent sur la perte que vous lui demandez de minimiser. De cette façon, il va modifier les variables afin de réduire la perte.<br />
<br />
[[File:VT2016_perte.png|600px]]<br />
<br />
===Lancement de la phase d'apprentissage===<br />
<br />
TensorFlow repose sur un back-end C++ pour faire son calcul et la connexion à ce back-end est appelée une session. Il faut donc instancier une nouvelle session avant d'initialiser les variables et de lancer l'apprentissage.<br />
<br />
[[File:VT2016_apprentissage.png|500px]]<br />
<br />
===Évaluation du modèle d'apprentissage===<br />
<br />
Le plus important en apprentissage automatique, est de pouvoir connaître la précision de l'algorithme. <br />
<br />
[[File:VT2016_précision.png|570px]]<br />
<br />
tf.argmax(y,1) est le label que notre modèle pense le plus probable, tandis que tf.argmax(y_,1) est le véritable label. Nous pouvons alors utiliser tf.equal pour vérifier si notre prévision correspond à la vérité. Cela nous donne une liste de booléens, que l'on cast en nombre à virgule flottante, avant d'en calculer la moyenne. Par exemple [True, False, True, True] deviendrait [1,0,1,1] qui donnerait 0.75.<br />
<br />
La précision de l'algorithme sur les données d'essai est d'environ 92%. Il faut savoir que ce résultat sur le MNIST est mauvais, mais cela s'explique par l'extrême simplicité du modèle utilisé. En effet, nous avons utilisé une seule couche linéaire. Avec un modèle à peine plus sophistiqué (un petit réseau de neurones à convolution), cela nous mène à environ 99,2% de précision. Et des réseaux multicouches de neurones plus complexes mènent proches des 99,9%.<br />
<br />
=Webographie=<br />
*https://www.tensorflow.org/<br />
*https://github.com/tensorflow/tensorflow<br />
*http://download.tensorflow.org/paper/whitepaper2015.pdf<br />
*http://www.lemonde.fr/pixels/article/2015/07/24/comment-le-deep-learning-revolutionne-l-intelligence-artificielle_4695929_4408996.html<br />
*http://beebom.com/google-brains-tensorflow/<br />
*https://www.reddit.com/r/artificial/comments/4ym9ba/tensorflow_demo_in_5_minutes/<br />
*http://www.cell.com/cell-systems/pdf/S2405-4712(16)00010-7.pdf</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_TensorFlow&diff=31541VT2016 TensorFlow2016-11-03T11:57:34Z<p>Julian.Hattinguais: /* Forces et faiblesses */</p>
<hr />
<div>=Présentation=<br />
* Sujet : TensorFlow<br />
* Auteur : Coralie RACHEX<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 04/10/2016<br />
<br />
[[File:VT2016_TensorFlow.jpg]]<br />
<br />
=Résumé=<br />
TensorFlow™ est une librairie open source permettant d'effectuer des calculs numériques en utilisant des graphes de flux de données. Les noeuds du graphe représentant des opérations mathématiques, tandis que les arêtes représentent les données. Cette architecture flexible permet de déployer l'ensemble des calculs sur un ou plusieurs CPU ou GPU. Cela permet également de déployer le programme sur un ordinateur de bureau, sur un serveur et même sur un appareil mobile avec une seule API. TensorFlow a été initialement développé par les chercheurs et les ingénieurs de l'équipe Google Brain, au sein du département de recherche sur l'intelligence artificielle de Google, dans le but d'être utilisé en apprentissage automatique et pour poursuivre les recherches sur l'apprentissage en profondeur par réseaux de neurones. Mais le système est tout aussi bien applicable dans une grande variété d'autres domaines.<br />
<br />
* Mots-clés : TensorFlow, Apprentissage en profondeur, Réseau neuronal, Apprentissage automatique<br />
<br />
<br />
=Abstract=<br />
TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the data. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google's Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.<br />
<br />
* Keywords : TensorFlow, DeepLearning, Neural network, Machine learning<br />
<br />
<br />
=Synthèse=<br />
<br />
<br />
==Domaine d'application==<br />
<br />
Comme TensorFlow provient de Google, il est évident que Google utilise cette technologie pour plusieurs de ses services. Cela permet d'avoir un aperçu de ses possibles applications. Mais il ne faut pas perdre de vue le fait que nous sommes actuellement à un stade précoce de l'apprentissage automatique et que '''bon nombre de ses applications potentielles sont encore insoupçonnées'''. <br />
<br />
'''Analyse d'images'''<br />
*Google Photos : création automatique des albums et des vidéos en fonction des similitudes.<br />
*Street View : brouillage automatique des numéros de plaque d'immatriculation des voitures. <br />
<br />
'''Reconnaissance de la parole'''<br />
*Google Talk : reconnaissance vocale des instructions à exécuter.<br />
<br />
'''Traduction dynamique'''<br />
*Google Translate : détection automatique de la langue d'entrée.<br />
<br />
'''Alpha Go'''<br />
*Il s'agit d'une application programmée pour jouer au Go, un jeu incroyablement complexe qui possèderait plus de possibilités que le nombre total d'atomes dans l'univers visible. Cette application montre ce que la technologie de l'apprentissage machine peut faire avec les possibilités infinies. Dans ses matches contre Lee Sedol (considéré comme l'un des meilleurs joueurs mondiaux), Alpha Go a remporté 4 de 5 parties.<br />
<br />
'''Magenta Project'''<br />
*Il s'agit d'un projet ambitieux, ayant la prétention de créer de l'art grâce à une machine. Le premier résultat tangible a été une mélodie de 90 secondes jouée au piano. En février 2016, Google a également organisé une exposition d'art et de vente aux enchères à San Francisco, montrant 29 œuvres générés par ordinateur (avec un peu d'aide de l'homme).<br />
<br />
<br />
==Forces et faiblesses==<br />
<br />
'''Paradigme de programmation déclarative''' :<br />
TensorFlow permet de se concentrer sur le problème (quoi), plutôt que sur la solution (comment).<br />
<br />
'''Portabilité''' :<br />
TensorFlow fonctionne sur CPU ou GPU. Et le modèle créé avec TensorFlow peut être déployé sur ordinateur, serveur, appareil mobile et même dans le cloud (conteneuriser avec Docker).<br />
<br />
'''Flexibilité''' :<br />
TensorFlow ne propose pas que des algorithmes, il propose également un ensemble d'outils permettant d'assembler différentes couches dans les réseaux de neurones. À partir de là, l'utilisateur peut créer ses propres algorithmes et les intégrer au reste très facilement.<br />
<br />
'''Performance''' :<br />
TensorFlow gère lui même les calculs asynchrones et permet donc en théorie de tirer le meilleur parti du matériel disponible. Mais en réalité, il est encore un peu à la traine comparé à certains de ses concurrents. À ses débuts, il souffrait même d'un réel problème de performance, qui a toutefois été vite corrigé par Google. Et les contributions ne cessent d'améliorer les choses.<br />
<br />
'''API multilangage''' :<br />
TensorFlow est utilisable en Python et en C++ (l'API Python est à l'heure actuelle le plus complet et le plus facile à utiliser, mais l'API C ++ peut offrir certains avantages de performance dans l'exécution du graphe, et prend en charge le déploiement Android). De plus, Google à l'intention d'inclure des API pour Java et Go, puis plus tard pour d'autres langages comme JavaScript, Lua, R, etc.<br />
<br />
'''Outils incorporés''' :<br />
Tensorboard aide à construire et à visualiser les modèles de flots de données.<br />
<br />
'''Communauté active''' :<br />
Il suffit de jeter un oeil à la liste des auteurs de TensorFlow pour se rendre compte de l'importance du projet pour Google, puisqu'il a mis dessus un bon nombre de ses meilleurs éléments: Jeff Dean (père de MapReduce), Ian Goodfellow (contributeur principal de Théano / PyLearn2), Yangqing Jia (principal contributeur de Caffe). De plus, Google a rendu cette technologie open source pour accélérer sa croissance. Cette stratégie est payante, car la communauté est effectivement très active. Et une communauté active est la meilleure des choses pour le maintien et le développement d'une technologie !<br />
<br />
==Fonctionnement général==<br />
<br />
TensorFlow représente les flux de données sous forme de graphes, où les nœuds représentent des opérations mathématiques et les arrêtes représentent des tenseurs. Ces graphes sont des représentations complètes des calculs qui sont ensuite exécutés sur le CPU ou le GPU.<br />
<br />
===Tenseur===<br />
<br />
TensorFlow utilise des tenseurs pour représenter toutes les données. Les tenseurs sont des tableaux de données multidimensionnelles et de taille dynamique. Cette structure peut donc avoir différents niveaux de complexité, du scalaire à une matrice de dimension n. <br />
<br />
[[File:VT2016_Tensor.gif]]<br />
<br />
===Variable===<br />
<br />
Les opérations mathématiques réalisées par TensorFlow découlent directement du ou des modèles utilisés pour l'apprentissage. Hors, ces modèles reposent eux même sur les paramètres (poids et biais pour la softmax regression). Lors de la phase d'entrainement, TensorFlow utilise des variables pour mettre à jour ces paramètres sur lesquels repose le modèle d'apprentissage. Ces variables contiennent des tenseurs (puisque toutes les données sont des tenseurs sous TensorFlow), mais contrairement aux tenseurs, les variables sont modifiées tout au long de la phase d'apprentissage.<br />
<br />
[[File:VT2016_Variable.gif]]<br />
<br />
<br />
==Fonctionnement détaillé : Démo MNIST sous Python==<br />
<br />
Le MNIST fait référence à la base de données MNIST (Mixed National Institute of Standards and Technology), une base de données de chiffres écrits à la main. Ce sont des images en noir et blanc, normalisées centrées de 28 pixels de côté. Les images d'apprentissage étant associé à des étiquettes déterminant le chiffre. La reconnaissance de l'écriture manuscrite étant un problème complexe, le MNIST est devenu un test standard pour les algorithmes d'apprentissages supervisés. <br />
<br />
===Importation de TensorFlow===<br />
<br />
La première chose à faire avant de commencer le programme Python est d'importer TensorFlow.<br />
<br />
[[File:VT2016_ImportTensorFlow.png|200px]]<br />
<br />
===Importation des données MNIST===<br />
<br />
Ensuite, il faut importer les données MNIST. Chaque donnée est constituée d'une image représentant un chiffre écrit à la main, et de son label correspondant.<br />
<br />
[[File:VT2016_ImportMNIST.png|500px]]<br />
<br />
[[File:VT2016_MNIST.png|500px]]<br />
<br />
===Création du modèle d'apprentissage : Softmax Regression===<br />
<br />
Pour x et y_, le mot clé "tf.placeholder" indique que ce sont simplement des espaces réservés qui vont être remplis par les tenseurs représentant l'ensemble des images et des labels, lors de l'apprentissage.<br />
*x sera rempli par le tenseur représentant les images (chaque image étant représentés par un vecteur de 784 valeurs, où les 0 représentent les pixels d’intensité faible et les 1 représentent les pixels d’intensité forte).<br />
*y_ sera rempli par le tenseur représentant les labels (chaque label étant représenté par un vecteur de 10 valeurs où la position du 1 parmi les 0 indique le chiffre, par exemple 3 = [0001000000]).<br />
<br />
[[File:VT2016_x.png|350px]]<br />
<br />
[[File:VT2016_y_.png|350px]]<br />
<br />
Pour W et b, le mot clé "tf.variable" indique qu'il s'agit des variables du modèle d'apprentissage, qui seront continuellement recalculées durant la phase d'apprentissage. Ces variables sont initialisées comme des tenseurs pleins de zéros (puisque nous allons apprendre W et b, il n'a pas beaucoup d'importance ce qu'ils sont au départ). <br />
*w représente le poids.<br />
*b représente le biais.<br />
<br />
[[File:VT2016_wb.png|300px]]<br />
<br />
Il ne reste plus qu'à mettre en œuvre notre modèle de régression. Ce modèle est très simple, puisqu'il suffit de multiplier les images d'entrée x par la matrice de poids W, puis d'ajouter le biais b. On obtient alors y qui est le label prédit. <br />
<br />
[[File:VT2016_y.png|200px]]<br />
<br />
===Mise en place de la phase d'apprentissage===<br />
<br />
Lors de la phase d'apprentissage, nous allons chercher à minimiser la perte, c'est-à-dire la distance entre la prévision de notre modèle (y) vis-à-vis du résultat souhaité (y_). Le but est d'améliorer le modèle en modifiant les variables de poids et de biais au cours de la phase d'apprentissage.<br />
<br />
La fonction la plus connue pour déterminer la perte d'un modèle est appelée «entropie croisée. Après avoir défini l'entropie croisée, TensorFlow peut automatiquement utiliser l'algorithme de rétropropagation pour déterminer efficacement comment les variables influent sur la perte que vous lui demandez de minimiser. De cette façon, il va modifier les variables afin de réduire la perte.<br />
<br />
[[File:VT2016_perte.png|600px]]<br />
<br />
===Lancement de la phase d'apprentissage===<br />
<br />
TensorFlow repose sur un back-end C++ pour faire son calcul et la connexion à ce back-end est appelée une session. Il faut donc instancier une nouvelle session avant d'initialiser les variables et de lancer l'apprentissage.<br />
<br />
[[File:VT2016_apprentissage.png|500px]]<br />
<br />
===Évaluation du modèle d'apprentissage===<br />
<br />
Le plus important en apprentissage automatique, est de pouvoir connaître la précision de l'algorithme. <br />
<br />
[[File:VT2016_précision.png|570px]]<br />
<br />
tf.argmax(y,1) est le label que notre modèle pense le plus probable, tandis que tf.argmax(y_,1) est le véritable label. Nous pouvons alors utiliser tf.equal pour vérifier si notre prévision correspond à la vérité. Cela nous donne une liste de booléens, que l'on cast en nombre à virgule flottante, avant d'en calculer la moyenne. Par exemple [True, False, True, True] deviendrait [1,0,1,1] qui donnerait 0.75.<br />
<br />
La précision de l'algorithme sur les données d'essai est d'environ 92%. Il faut savoir que ce résultat sur le MNIST est mauvais, mais cela s'explique par l'extrême simplicité du modèle utilisé. En effet, nous avons utilisé une seule couche linéaire. Avec un modèle à peine plus sophistiqué (un petit réseau de neurones à convolution), cela nous mène à environ 99,2% de précision. Et des réseaux multicouches de neurones plus complexes mènent proches des 99,9%.<br />
<br />
=Webographie=<br />
*https://www.tensorflow.org/<br />
*https://github.com/tensorflow/tensorflow<br />
*http://download.tensorflow.org/paper/whitepaper2015.pdf<br />
*http://www.lemonde.fr/pixels/article/2015/07/24/comment-le-deep-learning-revolutionne-l-intelligence-artificielle_4695929_4408996.html<br />
*http://beebom.com/google-brains-tensorflow/<br />
*https://www.reddit.com/r/artificial/comments/4ym9ba/tensorflow_demo_in_5_minutes/<br />
*http://www.cell.com/cell-systems/pdf/S2405-4712(16)00010-7.pdf</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_OpenTSDB&diff=31540VT2016 OpenTSDB2016-11-03T11:42:27Z<p>Julian.Hattinguais: /* Démonstration */</p>
<hr />
<div>= Présentation =<br />
<br />
* Sujet : OpenTSDB<br />
* Auteur : Thibaut NOUGUIER<br />
* Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
= Mot clés =<br />
Base de données de séries chronologiques, Time Series Daemon, HBase.<br />
<br />
= Résumé =<br />
OpenTSDB est une base de données de séries chronologiques. Chaque serveur communique ses informations à son Time Series Daemon (TSD) qui par la suite les enregistre dans HBase. Les TSDs sont aussi capables de récupérer les données stockées pour permettrent leur visualisation par un utilisateur. Il est aussi possible de mettre en place des routines (alertes, messages, ...), dans le but d'informer l'utilisateur lorsque cela est nécessaire.<br />
<br />
= Abstract =<br />
OpenTSDB is a time series database. Each server sends his data to his own Time Series Daemon (TSD), and then it store it into HBase. TSDs are able to get stored data in order to show it to an user. It is also possible to create routines (alerts, messages, ...) in order to inform users of anything.<br />
<br />
= Synthèse =<br />
== Contexte ==<br />
De nos jours, le stockage en continu d'importantes quantités de données est habituel, cependant il est difficile de le faire via des bases de données relationnelles classiques.<br />
<br />
=== Objectifs ===<br />
Les bases de données de séries chronologiques ont principalement deux objectifs :<br />
* Le stockage de données horodatées de source et de nature diverses (températures, humidité, ...).<br />
* La visualisation de celles-ci sous forme de graphique.<br />
<br />
=== Problèmatique ===<br />
* Stockage de point : nom + timestamp + valeur + tags.<br />
* Stockage de masse de l'odre de la dizaine de millions de points par an.<br />
* Fonctionnalités mathématiques telles que : comptages, moyennes, interpolations, lissages, maximums, minimums...<br />
<br />
== Historique ==<br />
=== RRD Tool===<br />
* Elle est la première base de données de séries chronologiques.<br />
* Il est difficile de l'exploiter au quotidien (sauvegarde, export, scalabilité).<br />
* La précision des données se fait au détriment de la taille de la base.<br />
<br />
<br><br />
Les bases de données suivantes ont toutes ces points communs :<br />
* Une architecture industrielle et scalable.<br />
* Une API permettant le stockage et requetage des données.<br />
* Des fonctions mathématiques intégrées.<br />
<br />
=== Whisper ===<br />
* Elle est vue comme la transition entre RRD Tool et les TSDB suivantes.<br />
* Elle est difficilement utilisable sans le projet Graphite.<br />
<br />
=== KairosDB ===<br />
* Elle est très similaire à OpenTSDB, si ce n'est qu'elle peut s'utiliser avec H2 ou Cassandra en plus d'HBase.<br />
<br />
=== InfluxDB ===<br />
* Elle est capable de stocker des événements en plus des points. <br />
* Elle est basée sur LevelDB, la librairie clé / valeur écrite par Google.<br />
<br />
== Fonctionnement ==<br />
Les caractéristiques principales d'OpenTSDB sont les suivantes :<br />
* Une architecture scalable.<br />
* Une API pour la lecture et l'écriture des données.<br />
* Des opérations statistiques intégrées.<br />
* Une capacité de stockage à la milliseconde.<br />
* Le stockage d'un milliard de points par jour.<br />
<br />
[[Image:NOUGUIER-tsdb-architecture.png|400px|left center|Architecture]]<br />
<br />
La lecture et l'écriture des données se fait via les Time Series Daemon. En effet chaque serveur est lié à un TSD et lui communique ses données. Ensuite, le TSD dans un délais d'une seconde maximum, va enregistrer ces informations dans HBase. Des routines internes au TSD peuvent être déclenchées lors du passage des données. Pour permettre la visualisation du contenu de HBase le TSD peut récupérer les données et les envoyer aux utilisateurs via une page internet.<br />
<br />
=== Evolutivité ===<br />
* Un TSD par cluster HBase, un cluster HBase par datacenter.<br />
* Capacité d'écriture : 2000 points (minimum) par seconde et par coeur.<br />
* Capacité de lecture : moins de 2 secondes.<br />
<br />
=== Fiabilité ===<br />
* Echec : sauvegarde dans un buffer si HBase ne fonctionne plus.<br />
* Persistance des données : les données restent 1 seconde maximum dans le buffer d'un TSD avant d'être enregistrées dans HBase.<br />
<br />
= Démonstration =<br />
* La démonstration consiste à lancer une image docker localement contenant OpenTSDB et HBase préconfigurés.<br />
sudo docker pull petergrace/opentsdb-docker<br />
sudo docker start --attach container_id<br />
<br />
* Ensuite il faut se connecter à OpenTSDB localement via le protocole telnet (ou via http).<br />
telnet localhost 4242<br />
<br />
* Parallèlement j'ai créé un script bash générant des sorties simulant les connexions, les achats et les ventes d'un site de commerce sur une journée.<br />
# Nombre de connexions par heure<br />
heure=0<br />
valeur=( "1000" "900" "700" "400" "100" "40" "150" "500" "1600" "3700" "600" "4500" "9800" "10000" "9900" "4800" "3100" "2600" "1500" "2500" "2900" "3300" "3100" "2000" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put connexions $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre d'achats par heure<br />
heure=0<br />
valeur=( "100" "60" "10" "0" "0" "0" "0" "20" "100" "1000" "300" "1700" "4000" "5300" "4300" "2000" "600" "300" "70" "200" "300" "500" "400" "100" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put achats $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre de ventes par heure<br />
heure=0<br />
valeur=( "150" "20" "0" "0" "0" "0" "20" "40" "200" "500" "200" "1000" "2000" "3000" "5800" "4500" "2000" "200" "100" "400" "1000" "700" "100" "150" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put ventes $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
* Ensuite il faut rediriger la sortie du script vers la commande telnet que j'ai lancé avant, ce qui aura pour effet d'ajouter toutes les valeurs dans la base de données.<br />
<br />
<br><br />
[[Image:NOUGUIER DEMO OpenTSDB.png|1200px|left center|Demo]]<br />
<br><br />
<br />
* Voici donc le résultat dans OpenTSDB. Grâce au graphique, différentes analyses et interprétations peuvent être faites :<br />
** Les connexions / achats / ventes en fonctions de l'heure.<br />
** Les achats / ventes en fonctions des connexions.<br />
<br />
= Webographie =<br />
* http://opentsdb.net/<br />
* https://wooster.checkmy.ws/2013/12/time-series-databases/<br />
* https://en.wikipedia.org/wiki/Time_series_database<br />
* http://fr.slideshare.net/HBaseCon/ecosystem-session-6?next_slideshow=1</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_OpenTSDB&diff=31539VT2016 OpenTSDB2016-11-03T11:33:35Z<p>Julian.Hattinguais: /* Contexte */</p>
<hr />
<div>= Présentation =<br />
<br />
* Sujet : OpenTSDB<br />
* Auteur : Thibaut NOUGUIER<br />
* Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
= Mot clés =<br />
Base de données de séries chronologiques, Time Series Daemon, HBase.<br />
<br />
= Résumé =<br />
OpenTSDB est une base de données de séries chronologiques. Chaque serveur communique ses informations à son Time Series Daemon (TSD) qui par la suite les enregistre dans HBase. Les TSDs sont aussi capables de récupérer les données stockées pour permettrent leur visualisation par un utilisateur. Il est aussi possible de mettre en place des routines (alertes, messages, ...), dans le but d'informer l'utilisateur lorsque cela est nécessaire.<br />
<br />
= Abstract =<br />
OpenTSDB is a time series database. Each server sends his data to his own Time Series Daemon (TSD), and then it store it into HBase. TSDs are able to get stored data in order to show it to an user. It is also possible to create routines (alerts, messages, ...) in order to inform users of anything.<br />
<br />
= Synthèse =<br />
== Contexte ==<br />
De nos jours, le stockage en continu d'importantes quantités de données est habituel, cependant il est difficile de le faire via des bases de données relationnelles classiques.<br />
<br />
=== Objectifs ===<br />
Les bases de données de séries chronologiques ont principalement deux objectifs :<br />
* Le stockage de données horodatées de source et de nature diverses (températures, humidité, ...).<br />
* La visualisation de celles-ci sous forme de graphique.<br />
<br />
=== Problèmatique ===<br />
* Stockage de point : nom + timestamp + valeur + tags.<br />
* Stockage de masse de l'odre de la dizaine de millions de points par an.<br />
* Fonctionnalités mathématiques telles que : comptages, moyennes, interpolations, lissages, maximums, minimums...<br />
<br />
== Historique ==<br />
=== RRD Tool===<br />
* Elle est la première base de données de séries chronologiques.<br />
* Il est difficile de l'exploiter au quotidien (sauvegarde, export, scalabilité).<br />
* La précision des données se fait au détriment de la taille de la base.<br />
<br />
<br><br />
Les bases de données suivantes ont toutes ces points communs :<br />
* Une architecture industrielle et scalable.<br />
* Une API permettant le stockage et requetage des données.<br />
* Des fonctions mathématiques intégrées.<br />
<br />
=== Whisper ===<br />
* Elle est vue comme la transition entre RRD Tool et les TSDB suivantes.<br />
* Elle est difficilement utilisable sans le projet Graphite.<br />
<br />
=== KairosDB ===<br />
* Elle est très similaire à OpenTSDB, si ce n'est qu'elle peut s'utiliser avec H2 ou Cassandra en plus d'HBase.<br />
<br />
=== InfluxDB ===<br />
* Elle est capable de stocker des événements en plus des points. <br />
* Elle est basée sur LevelDB, la librairie clé / valeur écrite par Google.<br />
<br />
== Fonctionnement ==<br />
Les caractéristiques principales d'OpenTSDB sont les suivantes :<br />
* Une architecture scalable.<br />
* Une API pour la lecture et l'écriture des données.<br />
* Des opérations statistiques intégrées.<br />
* Une capacité de stockage à la milliseconde.<br />
* Le stockage d'un milliard de points par jour.<br />
<br />
[[Image:NOUGUIER-tsdb-architecture.png|400px|left center|Architecture]]<br />
<br />
La lecture et l'écriture des données se fait via les Time Series Daemon. En effet chaque serveur est lié à un TSD et lui communique ses données. Ensuite, le TSD dans un délais d'une seconde maximum, va enregistrer ces informations dans HBase. Des routines internes au TSD peuvent être déclenchées lors du passage des données. Pour permettre la visualisation du contenu de HBase le TSD peut récupérer les données et les envoyer aux utilisateurs via une page internet.<br />
<br />
=== Evolutivité ===<br />
* Un TSD par cluster HBase, un cluster HBase par datacenter.<br />
* Capacité d'écriture : 2000 points (minimum) par seconde et par coeur.<br />
* Capacité de lecture : moins de 2 secondes.<br />
<br />
=== Fiabilité ===<br />
* Echec : sauvegarde dans un buffer si HBase ne fonctionne plus.<br />
* Persistance des données : les données restent 1 seconde maximum dans le buffer d'un TSD avant d'être enregistrées dans HBase.<br />
<br />
= Démonstration =<br />
* La démonstration consiste à lancer une image docker localement contenant OpenTSDB et HBase préconfigués.<br />
sudo docker pull petergrace/opentsdb-docker<br />
sudo docker start --attach container_id<br />
<br />
* Ensuite il faut se connecter à OpenTSDB localement via le protocole telnet (ou via http).<br />
telnet localhost 4242<br />
<br />
* Parallèlement j'ai créé un script bash générant des sorties simulant les connexions, les achats et les ventes d'un site de commerce sur une journée.<br />
# Nombre de connexions par heure<br />
heure=0<br />
valeur=( "1000" "900" "700" "400" "100" "40" "150" "500" "1600" "3700" "600" "4500" "9800" "10000" "9900" "4800" "3100" "2600" "1500" "2500" "2900" "3300" "3100" "2000" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put connexions $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre d'achats par heure<br />
heure=0<br />
valeur=( "100" "60" "10" "0" "0" "0" "0" "20" "100" "1000" "300" "1700" "4000" "5300" "4300" "2000" "600" "300" "70" "200" "300" "500" "400" "100" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put achats $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre de ventes par heure<br />
heure=0<br />
valeur=( "150" "20" "0" "0" "0" "0" "20" "40" "200" "500" "200" "1000" "2000" "3000" "5800" "4500" "2000" "200" "100" "400" "1000" "700" "100" "150" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put ventes $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
* Ensuite il faut rediriger la sortie du script vers la commande telnet que j'ai lancé avant, ce qui aura pour effet d'ajouter toutes les valeurs dans la base de données.<br />
<br />
<br><br />
[[Image:NOUGUIER DEMO OpenTSDB.png|1200px|left center|Demo]]<br />
<br><br />
<br />
* Voici donc le résultat dans OpenTSDB. Grâce au graphique, différentes analyses et interprétations peuvent être faites :<br />
** Les connexions / achats / ventes en fonctions de l'heure.<br />
** Les achats / ventes en fonctions des connexions.<br />
<br />
= Webographie =<br />
* http://opentsdb.net/<br />
* https://wooster.checkmy.ws/2013/12/time-series-databases/<br />
* https://en.wikipedia.org/wiki/Time_series_database<br />
* http://fr.slideshare.net/HBaseCon/ecosystem-session-6?next_slideshow=1</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016_OpenTSDB&diff=31538VT2016 OpenTSDB2016-11-03T11:31:06Z<p>Julian.Hattinguais: /* Mot clés */</p>
<hr />
<div>= Présentation =<br />
<br />
* Sujet : OpenTSDB<br />
* Auteur : Thibaut NOUGUIER<br />
* Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
= Mot clés =<br />
Base de données de séries chronologiques, Time Series Daemon, HBase.<br />
<br />
= Résumé =<br />
OpenTSDB est une base de données de séries chronologiques. Chaque serveur communique ses informations à son Time Series Daemon (TSD) qui par la suite les enregistre dans HBase. Les TSDs sont aussi capables de récupérer les données stockées pour permettrent leur visualisation par un utilisateur. Il est aussi possible de mettre en place des routines (alertes, messages, ...), dans le but d'informer l'utilisateur lorsque cela est nécessaire.<br />
<br />
= Abstract =<br />
OpenTSDB is a time series database. Each server sends his data to his own Time Series Daemon (TSD), and then it store it into HBase. TSDs are able to get stored data in order to show it to an user. It is also possible to create routines (alerts, messages, ...) in order to inform users of anything.<br />
<br />
= Synthèse =<br />
== Contexte ==<br />
De nos jours, le stockage en continue d'importante quantité de données est habituel, cependant il est difficile de le faire via des bases de données relationnelles classiques.<br />
<br />
=== Objectifs ===<br />
Les bases de données de séries chronologiques ont principalement deux objectifs :<br />
* Le stockage de données horodatées de source et de nature diverses (températures, humidité, ...).<br />
* La visualisation de celles-ci sous forme de graphique.<br />
<br />
=== Problèmatique ===<br />
* Stockage de point : nom + timestamp + valeur + tags.<br />
* Stockage de masse de l'odre de la dizaine de millions de points par an.<br />
* Fonctionnalités mathématiques telles que : comptages, moyennes, interpolations, lissages, maximums, minimums...<br />
<br />
== Historique ==<br />
=== RRD Tool===<br />
* Elle est la première base de données de séries chronologiques.<br />
* Il est difficile de l'exploiter au quotidien (sauvegarde, export, scalabilité).<br />
* La précision des données se fait au détriment de la taille de la base.<br />
<br />
<br><br />
Les bases de données suivantes ont toutes ces points communs :<br />
* Une architecture industrielle et scalable.<br />
* Une API permettant le stockage et requetage des données.<br />
* Des fonctions mathématiques intégrées.<br />
<br />
=== Whisper ===<br />
* Elle est vue comme la transition entre RRD Tool et les TSDB suivantes.<br />
* Elle est difficilement utilisable sans le projet Graphite.<br />
<br />
=== KairosDB ===<br />
* Elle est très similaire à OpenTSDB, si ce n'est qu'elle peut s'utiliser avec H2 ou Cassandra en plus d'HBase.<br />
<br />
=== InfluxDB ===<br />
* Elle est capable de stocker des événements en plus des points. <br />
* Elle est basée sur LevelDB, la librairie clé / valeur écrite par Google.<br />
<br />
== Fonctionnement ==<br />
Les caractéristiques principales d'OpenTSDB sont les suivantes :<br />
* Une architecture scalable.<br />
* Une API pour la lecture et l'écriture des données.<br />
* Des opérations statistiques intégrées.<br />
* Une capacité de stockage à la milliseconde.<br />
* Le stockage d'un milliard de points par jour.<br />
<br />
[[Image:NOUGUIER-tsdb-architecture.png|400px|left center|Architecture]]<br />
<br />
La lecture et l'écriture des données se fait via les Time Series Daemon. En effet chaque serveur est lié à un TSD et lui communique ses données. Ensuite, le TSD dans un délais d'une seconde maximum, va enregistrer ces informations dans HBase. Des routines internes au TSD peuvent être déclenchées lors du passage des données. Pour permettre la visualisation du contenu de HBase le TSD peut récupérer les données et les envoyer aux utilisateurs via une page internet.<br />
<br />
=== Evolutivité ===<br />
* Un TSD par cluster HBase, un cluster HBase par datacenter.<br />
* Capacité d'écriture : 2000 points (minimum) par seconde et par coeur.<br />
* Capacité de lecture : moins de 2 secondes.<br />
<br />
=== Fiabilité ===<br />
* Echec : sauvegarde dans un buffer si HBase ne fonctionne plus.<br />
* Persistance des données : les données restent 1 seconde maximum dans le buffer d'un TSD avant d'être enregistrées dans HBase.<br />
<br />
= Démonstration =<br />
* La démonstration consiste à lancer une image docker localement contenant OpenTSDB et HBase préconfigués.<br />
sudo docker pull petergrace/opentsdb-docker<br />
sudo docker start --attach container_id<br />
<br />
* Ensuite il faut se connecter à OpenTSDB localement via le protocole telnet (ou via http).<br />
telnet localhost 4242<br />
<br />
* Parallèlement j'ai créé un script bash générant des sorties simulant les connexions, les achats et les ventes d'un site de commerce sur une journée.<br />
# Nombre de connexions par heure<br />
heure=0<br />
valeur=( "1000" "900" "700" "400" "100" "40" "150" "500" "1600" "3700" "600" "4500" "9800" "10000" "9900" "4800" "3100" "2600" "1500" "2500" "2900" "3300" "3100" "2000" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put connexions $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre d'achats par heure<br />
heure=0<br />
valeur=( "100" "60" "10" "0" "0" "0" "0" "20" "100" "1000" "300" "1700" "4000" "5300" "4300" "2000" "600" "300" "70" "200" "300" "500" "400" "100" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put achats $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
# Nombre de ventes par heure<br />
heure=0<br />
valeur=( "150" "20" "0" "0" "0" "0" "20" "40" "200" "500" "200" "1000" "2000" "3000" "5800" "4500" "2000" "200" "100" "400" "1000" "700" "100" "150" )<br />
timestamp=1477954800<br />
<br />
while [ "$heure" != 24 ]<br />
do<br />
echo "put ventes $timestamp ${valeur[$heure]} particulier=1"<br />
timestamp=$(( $timestamp + 3600 ))<br />
heure=$(( $heure + 1 ))<br />
done<br />
<br />
* Ensuite il faut rediriger la sortie du script vers la commande telnet que j'ai lancé avant, ce qui aura pour effet d'ajouter toutes les valeurs dans la base de données.<br />
<br />
<br><br />
[[Image:NOUGUIER DEMO OpenTSDB.png|1200px|left center|Demo]]<br />
<br><br />
<br />
* Voici donc le résultat dans OpenTSDB. Grâce au graphique, différentes analyses et interprétations peuvent être faites :<br />
** Les connexions / achats / ventes en fonctions de l'heure.<br />
** Les achats / ventes en fonctions des connexions.<br />
<br />
= Webographie =<br />
* http://opentsdb.net/<br />
* https://wooster.checkmy.ws/2013/12/time-series-databases/<br />
* https://en.wikipedia.org/wiki/Time_series_database<br />
* http://fr.slideshare.net/HBaseCon/ecosystem-session-6?next_slideshow=1</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Site_d%27annonces&diff=31402Conception de l'interface - Site d'annonces2016-10-25T08:54:36Z<p>Julian.Hattinguais: /* Discussion sur les fonctionnalités et la valeur ajoutée du produit */</p>
<hr />
<div>La conception de l'interface de notre site d'annonces s'est fait en plusieurs phases.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Organisation et choix du sujet=<br />
Nous avons tout d'abord discuté sur quel sujet était intéressant et réalisable durant ce court projet.<br />
Un thème simple mais efficace est rapidement sorti de nos discussions : '''La vente en ligne'''.<br />
Celle-ci joue sur le principe de coopération communautaire, ce qui est un des principaux succès des start-up (Blablacar...) depuis quelque années. Les entreprises ne sont que le pont entre deux clients et se contentent de fournir l'infrastructure permettant de communiquer entre eux.<br />
Le succès du site "Leboncoin" n'était plus à démontrer, nous avons décidé de nous inspirer de cela pour développer notre site.<br />
Au niveau de la répartition des tâches, chacun s'est proposé de manière spontanée pour les tâches avec lequel il avait le plus d'affinité. Régis souhaitant développer sa maîtrise du Scrum, il est devenu le Scrum Master. Thibaut souhaitant travailler dans la technique et communiquer avec le professeur, il est devenu le "chef de projet" bien que travaillant avec des méthodes agiles, aucune notion de "chef" n'était présente. Son rôle était surtout d'organiser un peu les tâches avec Régis.<br />
Julian et Edwin ayant des expériences conséquentes de projets réalisés, se sont attelés à la réalisation des schémas de conception nécessaire à l'avance du projet.<br />
<br />
=Discussion sur les fonctionnalités et la valeur ajoutée du produit=<br />
Notre site d'annonce ayant pour but de permettre la vente en ligne entre deux particuliers, nous avons donc décidé de viser le publique le plus large possible, c'est à dire autoriser les annonces de toutes sortes (pas un site d'annonces spécialisé) ainsi qu'un site le plus simple d'utilisation possible pour ne pas perdre de potentiels clients non expérimenté à l'ordinateur et internet.<br />
Ensuite, nous avons développé un questionnaire et demandé à notre entourage ce qu'ils attendaient d'un site de vente en ligne pour définir les spécifications de notre produit.<br />
Il est ressorti qu'en plus d'un site le plus simple d'utilisation possible, il était nécessaire de proposer des outils de recherche efficace comme par exemple par zone, et par type de produit ou prix.<br />
Enfin, notre site ne gérera pas les transactions car cela entraînerai un surcoût opératoire important, nécessitant entre autre de modérer et gérer les conflits entre utilisateurs.<br />
Tous ces résultats ont été produit pendant des discutions où chacun proposait ses idées et qui était suivit d'un débat alimenté par toute l'équipe.<br />
<br />
=Développement de la maquette du produit=<br />
Julian et Edwin ont ensuite commencé à développer une maquette du produit répondant aux fonctionnalités du produit.<br />
Cette maquette n'avait pas à être définitive car les schémas UML et les modèles de tâches n'était pas encore produit. Avec l'aide de Régis, ils ont en parallèle développé ces schémas grâce à des discutions continues et fournies pendant l'avancement du projet.<br />
Plusieurs maquettes ont été produites, avec une IHM différente et en fonction de l'avis de chacun, nous avons développé une maquette de site regroupant et synthétisant les idées de chacun.<br />
<br />
=Conception des modèles de tâches et graphes UML=<br />
En para<br />
=Mise en commun et révision de la maquette et des modèles de tâches=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Site_d%27annonces&diff=31401Conception de l'interface - Site d'annonces2016-10-25T08:49:32Z<p>Julian.Hattinguais: /* Organisation et choix du sujet */</p>
<hr />
<div>La conception de l'interface de notre site d'annonces s'est fait en plusieurs phases.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Organisation et choix du sujet=<br />
Nous avons tout d'abord discuté sur quel sujet était intéressant et réalisable durant ce court projet.<br />
Un thème simple mais efficace est rapidement sorti de nos discussions : '''La vente en ligne'''.<br />
Celle-ci joue sur le principe de coopération communautaire, ce qui est un des principaux succès des start-up (Blablacar...) depuis quelque années. Les entreprises ne sont que le pont entre deux clients et se contentent de fournir l'infrastructure permettant de communiquer entre eux.<br />
Le succès du site "Leboncoin" n'était plus à démontrer, nous avons décidé de nous inspirer de cela pour développer notre site.<br />
Au niveau de la répartition des tâches, chacun s'est proposé de manière spontanée pour les tâches avec lequel il avait le plus d'affinité. Régis souhaitant développer sa maîtrise du Scrum, il est devenu le Scrum Master. Thibaut souhaitant travailler dans la technique et communiquer avec le professeur, il est devenu le "chef de projet" bien que travaillant avec des méthodes agiles, aucune notion de "chef" n'était présente. Son rôle était surtout d'organiser un peu les tâches avec Régis.<br />
Julian et Edwin ayant des expériences conséquentes de projets réalisés, se sont attelés à la réalisation des schémas de conception nécessaire à l'avance du projet.<br />
<br />
=Discussion sur les fonctionnalités et la valeur ajoutée du produit=<br />
Notre site d'annonce ayant pour but de permettre la vente en ligne entre deux particuliers, nous avons donc décidé de viser le publique le plus large possible, c'est à dire autoriser les annonces de toutes sortes (pas un site d'annonces spécialisé) ainsi qu'un site le plus simple d'utilisation possible pour ne pas perdre de potentiels clients non expérimenté à l'ordinateur et internet.<br />
Ensuite, nous avons développé un questionnaire et demandé à notre entourage ce qu'ils attendaient d'un site de vente en ligne pour définir les spécifications de notre produit.<br />
Il est ressorti qu'en plus d'un site le plus simple d'utilisation possible, il était nécessaire de proposer des outils de recherche efficace comme par exemple par zone, et par type de produit ou prix.<br />
Enfin, notre site ne gérera pas les transactions car cela entraînerai un surcoût opératoire important, nécessitant entre autre de modérer et gérer les conflits entre utilisateurs.<br />
Tout ces résultats ont été produit pendant des discutions à où chacun proposait ses idées et qui était suivit d'un débat alimenté par toute l'équipe. <br />
=Développement de la maquette du produit=<br />
Julian et Edwin ont ensuite commencé à développer une maquette du produit répondant aux fonctionnalités du produit.<br />
Cette maquette n'avait pas à être définitive car les schémas UML et les modèles de tâches n'était pas encore produit. Avec l'aide de Régis, ils ont en parallèle développé ces schémas grâce à des discutions continues et fournies pendant l'avancement du projet.<br />
Plusieurs maquettes ont été produites, avec une IHM différente et en fonction de l'avis de chacun, nous avons développé une maquette de site regroupant et synthétisant les idées de chacun.<br />
<br />
=Conception des modèles de tâches et graphes UML=<br />
En para<br />
=Mise en commun et révision de la maquette et des modèles de tâches=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Site_d%27annonces&diff=31400Conception de l'interface - Site d'annonces2016-10-25T08:49:16Z<p>Julian.Hattinguais: /* Organisation et choix du sujet */</p>
<hr />
<div>La conception de l'interface de notre site d'annonces s'est fait en plusieurs phases.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Organisation et choix du sujet=<br />
Nous avons tout d'abord discuté sur quel sujet était intéressant et réalisable durant ce court projet.<br />
Un thème simple mais efficace est rapidement sortie de nos discussions : '''La vente en ligne'''.<br />
Celle-ci joue sur le principe de coopération communautaire, ce qui est un des principaux succès des start-up (Blablacar...) depuis quelque années. Les entreprises ne sont que le pont entre deux clients et se contentent de fournir l'infrastructure permettant de communiquer entre eux.<br />
Le succès du site "Leboncoin" n'était plus à démontrer, nous avons décidé de nous inspirer de cela pour développer notre site.<br />
Au niveau de la répartition des tâches, chacun s'est proposé de manière spontanée pour les tâches avec lequel il avait le plus d'affinité. Régis souhaitant développer sa maîtrise du Scrum, il est devenu le Scrum Master. Thibaut souhaitant travailler dans la technique et communiquer avec le professeur, il est devenu le "chef de projet" bien que travaillant avec des méthodes agiles, aucune notion de "chef" n'était présente. Son rôle était surtout d'organiser un peu les tâches avec Régis.<br />
Julian et Edwin ayant des expériences conséquentes de projets réalisés, se sont attelés à la réalisation des schémas de conception nécessaire à l'avance du projet.<br />
<br />
=Discussion sur les fonctionnalités et la valeur ajoutée du produit=<br />
Notre site d'annonce ayant pour but de permettre la vente en ligne entre deux particuliers, nous avons donc décidé de viser le publique le plus large possible, c'est à dire autoriser les annonces de toutes sortes (pas un site d'annonces spécialisé) ainsi qu'un site le plus simple d'utilisation possible pour ne pas perdre de potentiels clients non expérimenté à l'ordinateur et internet.<br />
Ensuite, nous avons développé un questionnaire et demandé à notre entourage ce qu'ils attendaient d'un site de vente en ligne pour définir les spécifications de notre produit.<br />
Il est ressorti qu'en plus d'un site le plus simple d'utilisation possible, il était nécessaire de proposer des outils de recherche efficace comme par exemple par zone, et par type de produit ou prix.<br />
Enfin, notre site ne gérera pas les transactions car cela entraînerai un surcoût opératoire important, nécessitant entre autre de modérer et gérer les conflits entre utilisateurs.<br />
Tout ces résultats ont été produit pendant des discutions à où chacun proposait ses idées et qui était suivit d'un débat alimenté par toute l'équipe. <br />
=Développement de la maquette du produit=<br />
Julian et Edwin ont ensuite commencé à développer une maquette du produit répondant aux fonctionnalités du produit.<br />
Cette maquette n'avait pas à être définitive car les schémas UML et les modèles de tâches n'était pas encore produit. Avec l'aide de Régis, ils ont en parallèle développé ces schémas grâce à des discutions continues et fournies pendant l'avancement du projet.<br />
Plusieurs maquettes ont été produites, avec une IHM différente et en fonction de l'avis de chacun, nous avons développé une maquette de site regroupant et synthétisant les idées de chacun.<br />
<br />
=Conception des modèles de tâches et graphes UML=<br />
En para<br />
=Mise en commun et révision de la maquette et des modèles de tâches=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Site_d%27annonces&diff=31399Conception de l'interface - Site d'annonces2016-10-25T08:48:16Z<p>Julian.Hattinguais: /* Développement de la maquette du produit */</p>
<hr />
<div>La conception de l'interface de notre site d'annonces s'est fait en plusieurs phases.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Organisation et choix du sujet=<br />
Nous avons tout d'abord discuté sur quel sujet était intéressant et réalisable durant ce court projet.<br />
Un thème simple mais efficace est rapidement sortie de nos discussions : '''La vente en ligne'''.<br />
Celle-çi joue sur le principe de coopération communautaire, ce qui est un des principaux succès des start-up (Blablacar...) depuis quelque années. Les entreprises ne sont que le pont entre deux clients et se contentent de fournir l'infrastructure permettant de communiquer entre eux.<br />
Le succès du site "Leboncoin" n'était plus à démontrer, nous avons décidé de nous inspirer de cela pour développer notre site.<br />
Au niveau de la répartition des tâches, chacun s'est proposé de manière spontanée pour les tâches avec lequel il avait le plus d'affinité. Régis souhaitant développer sa maîtrise du Scrum, il est devenu le Scrum Master. Thibaut souhaitant travailler dans la technique et communiquer avec le professeur, il est devenu le "chef de projet" bien que travaillant avec des méthodes agiles, aucune notion de "chef" n'était présente. Son rôle était surtout d'organiser un peu les tâches avec Régis.<br />
Julian et Edwin ayant des expériences conséquentes de projets réalisés, se sont attelés à la réalisation des schémas de conception nécessaire à l'avance du projet.<br />
<br />
=Discussion sur les fonctionnalités et la valeur ajoutée du produit=<br />
Notre site d'annonce ayant pour but de permettre la vente en ligne entre deux particuliers, nous avons donc décidé de viser le publique le plus large possible, c'est à dire autoriser les annonces de toutes sortes (pas un site d'annonces spécialisé) ainsi qu'un site le plus simple d'utilisation possible pour ne pas perdre de potentiels clients non expérimenté à l'ordinateur et internet.<br />
Ensuite, nous avons développé un questionnaire et demandé à notre entourage ce qu'ils attendaient d'un site de vente en ligne pour définir les spécifications de notre produit.<br />
Il est ressorti qu'en plus d'un site le plus simple d'utilisation possible, il était nécessaire de proposer des outils de recherche efficace comme par exemple par zone, et par type de produit ou prix.<br />
Enfin, notre site ne gérera pas les transactions car cela entraînerai un surcoût opératoire important, nécessitant entre autre de modérer et gérer les conflits entre utilisateurs.<br />
Tout ces résultats ont été produit pendant des discutions à où chacun proposait ses idées et qui était suivit d'un débat alimenté par toute l'équipe. <br />
=Développement de la maquette du produit=<br />
Julian et Edwin ont ensuite commencé à développer une maquette du produit répondant aux fonctionnalités du produit.<br />
Cette maquette n'avait pas à être définitive car les schémas UML et les modèles de tâches n'était pas encore produit. Avec l'aide de Régis, ils ont en parallèle développé ces schémas grâce à des discutions continues et fournies pendant l'avancement du projet.<br />
Plusieurs maquettes ont été produites, avec une IHM différente et en fonction de l'avis de chacun, nous avons développé une maquette de site regroupant et synthétisant les idées de chacun.<br />
<br />
=Conception des modèles de tâches et graphes UML=<br />
En para<br />
=Mise en commun et révision de la maquette et des modèles de tâches=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Dossier_de_Conception_Syst%C3%A8me_-_Site_d%27annonces&diff=30931Dossier de Conception Système - Site d'annonces2016-10-13T10:43:21Z<p>Julian.Hattinguais: /* Déposer une annonce */</p>
<hr />
<div>Voici le Dossier de Conception Système du projet ECOM 2016-2017 : Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= Architecture du Système =<br />
== Diagramme de contexte ==<br />
[[Image:RAMEL_Diagramme_de_contexte.png|1000px|center|Diagramme de contexte]]<br />
Description des acteurs :<br />
* 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.<br />
* Un vendeur 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.<br />
* Un acheteur 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.<br />
* L’acteur Agence publicitaire représente les agences de publicités qui peuvent ajouter des pubs sur le site.<br />
<br />
== Diagramme de composants ==<br />
[[Image:RAMEL_Diagramme_des_composants_cardinalités.png|1000px|center|Diagramme des composants]]<br />
=== Interface Web ===<br />
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.<br />
<br />
Cardinalités :<br />
* L'interface Web utilisateur est associée à un contrôleur. Cette relation est bidirectionnelle : L'interface utilisateur fournit les informations saisies par l'utilisateur, et le contrôleur fournit les informations de la base de données Utilisateurs et annonces.<br />
<br />
Méthodes :<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Création de compte'']] du composant contrôleur pour ajouter le compte dans la base de données.<br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification de compte'']] du contrôleur pour mettre à jour la base de données.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Vérification d'authentification'']] 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.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Dépôt d'une annonce'']] du contrôleur avec les renseignements qu'a entrés l'utilisateur. <br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification d'une annonce'']] du contrôleur avec les renseignements qu'a entrés le vendeur pour mettre à jour l'annonce.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression d'une annonce'']] du contrôleur pour enlever l'annonce du site.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''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.<br />
* Sélection des annonces : Permet à l'utilisateur d'afficher les détails d'une annonce. Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''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.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Obtenir coordonnées'']] du contrôleur, puis affiche les coordonnées du propriétaire de l'annonce.<br />
<br />
=== Interface Administrateur ===<br />
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.<br />
<br />
Cardinalités :<br />
* L'interface Administrateur est associée à un contrôleur. Cette relation est bidirectionnelle : l'interface commande le contrôleur, et le contrôleur fournit un feedback à l'administrateur.<br />
<br />
Méthodes :<br />
* 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.<br />
* Arrêt du site : Permet à l'administrateur d'arrêter le site.<br />
* Édition annonce : Permet à l'administrateur de modifier une annonce (pour non respect des conditions par exemple. Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification d'une annonce'']] du contrôleur pour mettre à jour l'annonce.<br />
* Suppression annonce : Permet à l'administrateur de supprimer une annonce (pour non respect des conditions par exemple). Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression d'une annonce'']] du contrôleur pour supprimer l'annonce.<br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification de compte'']] du contrôleur avec les renseignements que l'administrateur a rentrés pour mettre à jour le compte de l'utilisateur.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression de compte'']] du contrôleur supprimer le compte de l'utilisateur.<br />
<br />
=== Base de données Utilisateurs et Annonces ===<br />
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.<br />
<br />
Cardinalités :<br />
* La base de données Utilisateurs et annonces est associée à un contrôleur. Cette relation est bidirectionnelle : le contrôleur peut modifier la base, et la base fournit des données au contrôleur.<br />
<br />
=== Base de données Metrics ===<br />
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.<br />
<br />
Cardinalités :<br />
* La base de données Metrics est associée à un contrôleur. Cette relation est unidirectionnelle : le contrôleur ne peut pas modifier la base, et la base fournit des données au contrôleur.<br />
<br />
=== Contrôleur ===<br />
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.<br />
<br />
Cardinalités :<br />
* Le contrôleur est associé à une base de données Utilisateurs et Annonces. Cette relation est bidirectionnelle : le contrôleur peut modifier la base, et la base fournit des données au contrôleur.<br />
* Le contrôleur est associé à une base de données Metrics. Cette relation est unidirectionnelle : le contrôleur ne peut pas modifier la base, et la base fournit des données au contrôleur.<br />
* Le contrôleur est associé à une interface pour les administrateurs. Cette relation est bidirectionnelle : l'interface commande le contrôleur, et le contrôleur fournit un feedback à l'administrateur.<br />
* Le contrôleur est associé à une ou plusieurs interfaces utilisateurs. Cette relation est bidirectionnelle : L'interface utilisateur fournit les informations saisies par l'utilisateur, et le contrôleur fournit les informations de la base de données Utilisateurs et annonces.<br />
<br />
Méthodes :<br />
* Création de compte : Ajoute un compte utilisateur dans la base de données Utilisateurs (Login, hash de mot de passe, Nom, Prénom).<br />
* Modification de compte : Modifie un compte utilisateur dans la base de données Utilisateur.<br />
* Suppression de compte : Supprime un compte utilisateur dans la base de données Utilisateur.<br />
* Vérification d'authentification : Compare les informations d'authentification envoyé par l'interface utilisateur avec les informations dans la base de données.<br />
* Dépôt d'une annonce : Ajoute une annonce dans la base de données des annonces.<br />
* Modification d'une annonce : Modifie une annonce dans la base de données annonces.<br />
* Suppression d'une annonce : Supprime une annonce dans la base de données annonces.<br />
* Recherche des annonces : Cherche dans la base de données les annonces correspondant aux mots clés envoyés par l'interface utilisateur.<br />
* Détails d'une annonce : Cherche dans la base de données des annonces les détails et la description de l'annonce sélectionnée dans l'interface utilisateur.<br />
* Obtenir les coordonnées : Cherche dans la base de données des annonces les coordonnées du propriétaire de l'annonce.<br />
<br />
== Diagrammes de Séquence ==<br />
=== Déposer une annonce ===<br />
Le vendeur accède à la page de dépôt d'annonce en cliquant sur "Déposer une annonce". Les renseignements saisis sont ensuite envoyés au contrôleur pour être vérifiés avant d'être envoyés et ajoutés dans la base de données. Si l'ajout est réussi, un message de confirmation est renvoyé jusqu'à l'utilisateur.<br />
<br />
[[Image:RAMEL_Séquence_Déposer_une_annonce.png|1000px|center|Diagramme de séquence - Déposer une annonce]]<br />
<br />
=== Chercher une annonce ===<br />
L'utilisateur saisit des mots clés dans la barre de recherche pour trouver des annonces. Ces mots clés sont transmis via le contrôleur à la base de données annonces qui renvoie les annonces correspondantes à la recherche. Une fois les annonces affichées dans l'interface, l'utilisateur peut les parcourir, et peut choisir de les filtrer ou de les trier. Les critères de tri sont appliqués par l'interface Web qui change l'affichage de annonces. Lorsqu'un utilisateur choisit une annonce, l'interface affiche les détails de l'annonce (description). Si l'utilisateur veut contacter le propriétaire de l'annonce, il peut demander les coordonnées. Une requête est alors faite sur la base de données via le contrôleur pour obtenir les coordonnées qui sont ensuite affichés sur l'interface Web.<br />
<br />
[[Image:RAMEL_Séquence_Chercher_une_annonce.png|1000px|center|Diagramme de séquence - Chercher une annonce]]<br />
<br />
== S'authentifier sur le site ==<br />
L'utilisateur clique sur le bouton connexion en haut à droite d'une des pages du site. Le site affiche la page d'authentification sur laquelle l'utilisateur saisit son login et son mot de passe. Ces informations sont ensuite envoyées à la base de données via le contrôleur pour être vérifiées. Dans le cas ou les informations sont correctes, le site renvoi un message de confirmation, et renvoie l'utilisateur connecté à sa page précédente.<br />
<br />
[[Image:RAMEL_Séquence_Authentification_sur_site.png|1000px|center|Diagramme de séquence - S'authentifier sur le site]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Dossier_de_Conception_Syst%C3%A8me_-_Site_d%27annonces&diff=30930Dossier de Conception Système - Site d'annonces2016-10-13T10:38:57Z<p>Julian.Hattinguais: /* Chercher une annonce */</p>
<hr />
<div>Voici le Dossier de Conception Système du projet ECOM 2016-2017 : Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= Architecture du Système =<br />
== Diagramme de contexte ==<br />
[[Image:RAMEL_Diagramme_de_contexte.png|1000px|center|Diagramme de contexte]]<br />
Description des acteurs :<br />
* 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.<br />
* Un vendeur 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.<br />
* Un acheteur 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.<br />
* L’acteur Agence publicitaire représente les agences de publicités qui peuvent ajouter des pubs sur le site.<br />
<br />
== Diagramme de composants ==<br />
[[Image:RAMEL_Diagramme_des_composants_cardinalités.png|1000px|center|Diagramme des composants]]<br />
=== Interface Web ===<br />
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.<br />
<br />
Cardinalités :<br />
* L'interface Web utilisateur est associée à un contrôleur. Cette relation est bidirectionnelle : L'interface utilisateur fournit les informations saisies par l'utilisateur, et le contrôleur fournit les informations de la base de données Utilisateurs et annonces.<br />
<br />
Méthodes :<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Création de compte'']] du composant contrôleur pour ajouter le compte dans la base de données.<br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification de compte'']] du contrôleur pour mettre à jour la base de données.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Vérification d'authentification'']] 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.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Dépôt d'une annonce'']] du contrôleur avec les renseignements qu'a entrés l'utilisateur. <br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification d'une annonce'']] du contrôleur avec les renseignements qu'a entrés le vendeur pour mettre à jour l'annonce.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression d'une annonce'']] du contrôleur pour enlever l'annonce du site.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''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.<br />
* Sélection des annonces : Permet à l'utilisateur d'afficher les détails d'une annonce. Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''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.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Obtenir coordonnées'']] du contrôleur, puis affiche les coordonnées du propriétaire de l'annonce.<br />
<br />
=== Interface Administrateur ===<br />
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.<br />
<br />
Cardinalités :<br />
* L'interface Administrateur est associée à un contrôleur. Cette relation est bidirectionnelle : l'interface commande le contrôleur, et le contrôleur fournit un feedback à l'administrateur.<br />
<br />
Méthodes :<br />
* 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.<br />
* Arrêt du site : Permet à l'administrateur d'arrêter le site.<br />
* Édition annonce : Permet à l'administrateur de modifier une annonce (pour non respect des conditions par exemple. Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification d'une annonce'']] du contrôleur pour mettre à jour l'annonce.<br />
* Suppression annonce : Permet à l'administrateur de supprimer une annonce (pour non respect des conditions par exemple). Le composant appelle la méthode [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression d'une annonce'']] du contrôleur pour supprimer l'annonce.<br />
* É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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Modification de compte'']] du contrôleur avec les renseignements que l'administrateur a rentrés pour mettre à jour le compte de l'utilisateur.<br />
* 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 [[Dossier de Conception Système - Site d'annonces#Contrôleur| ''Suppression de compte'']] du contrôleur supprimer le compte de l'utilisateur.<br />
<br />
=== Base de données Utilisateurs et Annonces ===<br />
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.<br />
<br />
Cardinalités :<br />
* La base de données Utilisateurs et annonces est associée à un contrôleur. Cette relation est bidirectionnelle : le contrôleur peut modifier la base, et la base fournit des données au contrôleur.<br />
<br />
=== Base de données Metrics ===<br />
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.<br />
<br />
Cardinalités :<br />
* La base de données Metrics est associée à un contrôleur. Cette relation est unidirectionnelle : le contrôleur ne peut pas modifier la base, et la base fournit des données au contrôleur.<br />
<br />
=== Contrôleur ===<br />
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.<br />
<br />
Cardinalités :<br />
* Le contrôleur est associé à une base de données Utilisateurs et Annonces. Cette relation est bidirectionnelle : le contrôleur peut modifier la base, et la base fournit des données au contrôleur.<br />
* Le contrôleur est associé à une base de données Metrics. Cette relation est unidirectionnelle : le contrôleur ne peut pas modifier la base, et la base fournit des données au contrôleur.<br />
* Le contrôleur est associé à une interface pour les administrateurs. Cette relation est bidirectionnelle : l'interface commande le contrôleur, et le contrôleur fournit un feedback à l'administrateur.<br />
* Le contrôleur est associé à une ou plusieurs interfaces utilisateurs. Cette relation est bidirectionnelle : L'interface utilisateur fournit les informations saisies par l'utilisateur, et le contrôleur fournit les informations de la base de données Utilisateurs et annonces.<br />
<br />
Méthodes :<br />
* Création de compte : Ajoute un compte utilisateur dans la base de données Utilisateurs (Login, hash de mot de passe, Nom, Prénom).<br />
* Modification de compte : Modifie un compte utilisateur dans la base de données Utilisateur.<br />
* Suppression de compte : Supprime un compte utilisateur dans la base de données Utilisateur.<br />
* Vérification d'authentification : Compare les informations d'authentification envoyé par l'interface utilisateur avec les informations dans la base de données.<br />
* Dépôt d'une annonce : Ajoute une annonce dans la base de données des annonces.<br />
* Modification d'une annonce : Modifie une annonce dans la base de données annonces.<br />
* Suppression d'une annonce : Supprime une annonce dans la base de données annonces.<br />
* Recherche des annonces : Cherche dans la base de données les annonces correspondant aux mots clés envoyés par l'interface utilisateur.<br />
* Détails d'une annonce : Cherche dans la base de données des annonces les détails et la description de l'annonce sélectionnée dans l'interface utilisateur.<br />
* Obtenir les coordonnées : Cherche dans la base de données des annonces les coordonnées du propriétaire de l'annonce.<br />
<br />
== Diagrammes de Séquence ==<br />
=== Déposer une annonce ===<br />
Le vendeur accède à la page de dépôt d'annonce en cliquant sur "Déposer une annonce". Les renseignements saisis sont ensuite envoyés au contrôleur pour être vérifiés avant d'être envoyés et ajoutés dans la base de données. Si l'ajout est réussi, un message de confirmation et renvoyé jusqu'à l'utilisateur.<br />
<br />
[[Image:RAMEL_Séquence_Déposer_une_annonce.png|1000px|center|Diagramme de séquence - Déposer une annonce]]<br />
<br />
=== Chercher une annonce ===<br />
L'utilisateur saisit des mots clés dans la barre de recherche pour trouver des annonces. Ces mots clés sont transmis via le contrôleur à la base de données annonces qui renvoie les annonces correspondantes à la recherche. Une fois les annonces affichées dans l'interface, l'utilisateur peut les parcourir, et peut choisir de les filtrer ou de les trier. Les critères de tri sont appliqués par l'interface Web qui change l'affichage de annonces. Lorsqu'un utilisateur choisit une annonce, l'interface affiche les détails de l'annonce (description). Si l'utilisateur veut contacter le propriétaire de l'annonce, il peut demander les coordonnées. Une requête est alors faite sur la base de données via le contrôleur pour obtenir les coordonnées qui sont ensuite affichés sur l'interface Web.<br />
<br />
[[Image:RAMEL_Séquence_Chercher_une_annonce.png|1000px|center|Diagramme de séquence - Chercher une annonce]]<br />
<br />
== S'authentifier sur le site ==<br />
L'utilisateur clique sur le bouton connexion en haut à droite d'une des pages du site. Le site affiche la page d'authentification sur laquelle l'utilisateur saisit son login et son mot de passe. Ces informations sont ensuite envoyées à la base de données via le contrôleur pour être vérifiées. Dans le cas ou les informations sont correctes, le site renvoi un message de confirmation, et renvoie l'utilisateur connecté à sa page précédente.<br />
<br />
[[Image:RAMEL_Séquence_Authentification_sur_site.png|1000px|center|Diagramme de séquence - S'authentifier sur le site]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Modifier_annonce.png&diff=30909File:Modifier annonce.png2016-10-13T09:35:46Z<p>Julian.Hattinguais: Julian.Hattinguais uploaded a new version of &quot;File:Modifier annonce.png&quot;</p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Details_annonce.png&diff=30903File:Details annonce.png2016-10-13T09:22:42Z<p>Julian.Hattinguais: Julian.Hattinguais uploaded a new version of &quot;File:Details annonce.png&quot;</p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Modifier_annonce.png&diff=30883File:Modifier annonce.png2016-10-13T08:44:43Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Supprimer_annonce.png&diff=30882File:Supprimer annonce.png2016-10-13T08:44:05Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Page_login.png&diff=30879File:Page login.png2016-10-13T08:43:14Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Maquette_-_Site_d%27annonces&diff=30877Maquette - Site d'annonces2016-10-13T08:42:36Z<p>Julian.Hattinguais: </p>
<hr />
<div>== Page principale ==<br />
[[Image:Page_principale.png|500px|center|Page principale listant les annonces]]<br />
== Détails d'une annonce ==<br />
[[Image:Details_annonce.png|500px|center|Page affichant le détail d'une annonce]]<br />
== Ajouter une annonce ==<br />
[[Image:Ajout_annonce.png|500px|center|Page de création d'une nouvelle annonce]]<br />
== Modifier une annonce ==<br />
[[Image:Modifier_annonce.png|500px|center|Page de modification d'une annonce]]<br />
== Supprimer une annonce ==<br />
[[Image:Supprimer_annonce.png|500px|center|Page de suppression d'une annonce]]<br />
== Page de login ==<br />
[[Image:Page_login.png|500px|center|Page de login sur le site]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Details_annonce.png&diff=30875File:Details annonce.png2016-10-13T08:40:42Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Ajout_annonce.png&diff=30873File:Ajout annonce.png2016-10-13T08:39:28Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Maquette_-_Site_d%27annonces&diff=30872Maquette - Site d'annonces2016-10-13T08:38:18Z<p>Julian.Hattinguais: /* Page principale */</p>
<hr />
<div>== Page principale ==<br />
[[Image:Page_principale.png|500px|center|Page principale listant les annonces]]<br />
== Détails d'une annonce ==<br />
[[Image:Details_annonce.png|500px|center|Page affichant le détail d'une annonce]]<br />
== Ajouter une annonce ==<br />
[[Image:Ajout_annonce.png|500px|center|Page de création d'une nouvelle annonce]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Maquette_-_Site_d%27annonces&diff=30871Maquette - Site d'annonces2016-10-13T08:35:56Z<p>Julian.Hattinguais: </p>
<hr />
<div>= Page principale =<br />
[[Image:Page_principale.png|500px|center|Page principale listant les annonces]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Page_principale.png&diff=30870File:Page principale.png2016-10-13T08:35:12Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Maquette_-_Site_d%27annonces&diff=30869Maquette - Site d'annonces2016-10-13T08:34:45Z<p>Julian.Hattinguais: Created page with "= Page principale = Page principale listant les annonces"</p>
<hr />
<div>= Page principale =<br />
[[Image:Page_principale.png|1000px|center|Page principale listant les annonces]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30847SRS - Site d'annonces2016-10-11T16:03:19Z<p>Julian.Hattinguais: /* SRS structure */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
*Le site internet doit avoir un nombre d'annonces conséquent si il veut attirer des utilisateurs. Et s'il n'en attire pas, il y aura de moins en moins d'annonces.<br />
*Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30846SRS - Site d'annonces2016-10-11T16:02:50Z<p>Julian.Hattinguais: /* Index */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
*Le site internet doit avoir un nombre d'annonces conséquent si il veut attirer des utilisateurs. Et s'il n'en attire pas, il y aura de moins en moins d'annonces.<br />
*Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30845SRS - Site d'annonces2016-10-11T16:02:39Z<p>Julian.Hattinguais: /* Contraintes générales */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
*Le site internet doit avoir un nombre d'annonces conséquent si il veut attirer des utilisateurs. Et s'il n'en attire pas, il y aura de moins en moins d'annonces.<br />
*Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30844SRS - Site d'annonces2016-10-11T16:02:22Z<p>Julian.Hattinguais: /* Contraintes générales */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, il y aura de moins en moins d'annonces.<br />
*Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30841SRS - Site d'annonces2016-10-11T16:01:11Z<p>Julian.Hattinguais: /* Assumptions and dependencies */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30839SRS - Site d'annonces2016-10-11T16:00:31Z<p>Julian.Hattinguais: /* Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
Un utilisateur connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==Assumptions and dependencies==<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30838SRS - Site d'annonces2016-10-11T15:59:48Z<p>Julian.Hattinguais: /* Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail contenant ses identifiants et mot de passe lui sera envoyé à l'adresse renseignée précédemment si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==Assumptions and dependencies==<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30836SRS - Site d'annonces2016-10-11T15:57:12Z<p>Julian.Hattinguais: </p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==Assumptions and dependencies==<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30833SRS - Site d'annonces2016-10-11T15:56:02Z<p>Julian.Hattinguais: </p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
=Introduction =<br />
==Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
==Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
==Definitions, acronymes et abbréviations ==<br />
<br />
==References ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==Assumptions and dependencies==<br />
<br />
=Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=Appendices=<br />
<br />
==SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30830SRS - Site d'annonces2016-10-11T15:54:40Z<p>Julian.Hattinguais: </p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
== 1.2 Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
== 1.3 Definitions, acronymes et abbréviations ==<br />
<br />
== 1.4 References ==<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==2.2 Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==2.3 Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==2.4 Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==2.5 Assumptions and dependencies==<br />
<br />
=3. Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=4. Appendices=<br />
<br />
==4.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=5. Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30828SRS - Site d'annonces2016-10-11T15:53:35Z<p>Julian.Hattinguais: /* 2.4 Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
== 1.2 Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
== 1.3 Definitions, acronymes et abbréviations ==<br />
<br />
== 1.4 References ==<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==2.2 Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==2.3 Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
L'administrateur se connecte au serveur via l'interface dédiée et a accès aux fonctionnalités disponibles pour gérer la base de données.<br />
<br />
==2.4 Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==2.5 Assumptions and dependencies==<br />
<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30800SRS - Site d'annonces2016-10-11T08:19:49Z<p>Julian.Hattinguais: /* 2.4 Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
== 1.2 Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
== 1.3 Definitions, acronymes et abbréviations ==<br />
<br />
== 1.4 References ==<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==2.2 Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==2.3 Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseignés le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord triées par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, seront renseignés les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-ci, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, triée tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-ci, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décide d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
<br />
==2.4 Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==2.5 Assumptions and dependencies==<br />
<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30799SRS - Site d'annonces2016-10-11T08:11:08Z<p>Julian.Hattinguais: /* 2.4 Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
== 1.2 Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
== 1.3 Definitions, acronymes et abbréviations ==<br />
<br />
== 1.4 References ==<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==2.2 Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==2.3 Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-ci cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseigné le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord trié par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, sera renseigné les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-çi, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, trié tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-çi, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décider d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
<br />
==2.4 Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==2.5 Assumptions and dependencies==<br />
<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=SRS_-_Site_d%27annonces&diff=30798SRS - Site d'annonces2016-10-11T08:08:20Z<p>Julian.Hattinguais: /* 1.2 Portée du produit */</p>
<hr />
<div>Voici la fiche SRS du projet ECOM 2016-2017 Site d'annonces.<br />
<br />
[[ECOM2016 : Site d'annonces| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* NOUGUIER Thibaut (Chef de projet)<br />
* RAMEL Régis (Scrum Master)<br />
* HATTINGUAIS Julian<br />
* NIOGRET Edwin<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
Le but du projet est de réaliser un site d'annonce inspiré d'eBay, le bon coin, etc.<br />
Le site permet aux particuliers de déposer des annonces, et de chercher un article parmi les annonces déposées.<br />
Le site n'affiche aucun prix, il se charge simplement de mettre le propriétaire et les acheteurs potentiels en relation pour procéder à la transaction.<br />
<br />
== 1.2 Portée du produit ==<br />
Le site internet développé a pour but d'être simple d'utilisation et utilisable par des personnes ne maîtrisant pas les outils informatiques.<br />
De plus, même s'il sera tout d'abord disponible uniquement sur un site web, un développement multi-plateforme est envisageable, par exemple une application IOS.<br />
<br />
== 1.3 Definitions, acronymes et abbréviations ==<br />
<br />
== 1.4 References ==<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.<br />
<br />
==2.2 Fonctionnalités==<br />
*Mettre en ligne une annonce avec des photos, une description et un prix.<br />
*Rechercher des annonces par mot-clé et/ou région. Possibilité de trier les annonces par pertinence, région ou prix.<br />
*Consulter une annonce et voir les coordonnées de son vendeur.<br />
*Editer son profil (mot de passe, coordonnées).<br />
*Consulter et éditer ou supprimer ses annonces.<br />
*Administrer les annonces et les profils (Edition/Suppression).<br />
<br />
==2.3 Utilisateurs potentiels==<br />
*1 Vendeur<br />
Personne souhaitant consulter une annonce.<br />
<br />
*2 Acheteur<br />
Personne souhaitant mettre en ligne une annonce.<br />
<br />
'''Note : Un utilisateur peut être vendeur ET acheteur.<br />
'''<br />
*3 Administrateur <br />
Modère les annonces et les profils d'utilisateurs ne respectant la charte de déontologie du site.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
*Créer un compte<br />
L'utilisateur peut à tout moment cliquer sur un bouton "S'inscrire" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant (unique), son nom, ses coordonnées (email et un numéro de téléphone (optionnel)), son département et ville, ainsi que son mot de passe.<br />
*Se connecter/Récupérer son compte<br />
L'utilisateur peut à tout moment se connecter sur le site en cliquant sur le bouton "Se connecter" en haut à droite de l'écran. Une fois celui-çi cliqué, une nouvelle fenêtre va s'ouvrir. L'utilisateur devra renseigner son identifiant et son mot de passe. Un bouton mot de passe/identifiant sera cliquable. Si l'utilisateur clique dessus, il devra renseigner son email et un mail avec son identifiant et mot de passe lui sera envoyé à cette adresse là si le compte existe.<br />
*Se déconnecter<br />
L'utilisateur si il est connecté peut à tout moment cliquer sur le bouton "Se déconnecter" en haut à droite de l'écran.<br />
*Mettre en ligne une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Un bouton "Mettre une annonce" en ligne est disponible à tout moment en haut à droite de l'écran. Si l'utilisateur clique dessus, une nouvelle fenêtre va apparaître. L'utilisateur devra renseigner le nom de l'annonce (unique), un prix, un type, la ville, le département et une description de minimum 20 mots. L'ajout de photos est optionnel.<br />
*Consulter une annonce<br />
L'utilisateur peut à tout moment consulter les annonces en ligne. Cet onglet recherche est disponible sur la page d'accueil du site. Il est obligatoire de renseigner des mots-clés. De manière optionnelle, l'utilisateur peut aussi demander une recherche plus précise en précisant une ville, une région ou un département, un type d'annonce, un intervalle de prix et une date maximum d'ancienneté de l'annonce. Une fois le bouton "Recherche" cliqué, une liste d'annonces correspondant aux critères de recherche va s'afficher. Chaque ligne correspondra à une annonce. Seront renseigné le nom de l'annonce, sa date de parution, son prix, un extrait de la description, une image si elle en comporte, sa ville/département ou région. Elles seront tout d'abord trié par date de parution. L'utilisateur peut les trier ensuite en cliquant sur les boutons correspondants par prix, nom (alphabétique), ville, département ou région. L'utilisateur aura à cliquer sur le nom de l'annonce pour voir les informations relatives à l'annonce.<br />
Une fois une annonce ouverte, une nouvelle fenêtre va apparaître. Dans cette fenêtre, sera renseigné les champs précisé précédemment ainsi que une description complète de l'annonce, le contact de l'annonceur et toutes les photos disponibles pour l'annonce. Un bouton "Retour aux annonces" permettra de retourner à la liste d'annonces.<br />
*Editer son profil<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. L'utilisateur peut à tout moment clique sur le bouton "Paramètre" en haut à droite de l'écran. Une fois ce bouton cliqué, une nouvelle fenêtre s'affiche. Un bouton édition sera disponible sur celle-çi, permettant de modifier le nom d'utilisateur, le mot de passe, la ville/département de l'utilisateur ainsi que sa photo de profil.<br />
*Consulter ses annonces<br />
L'utilisateur doit être connecté pour avoir cette option de disponible. Une fois l'utilisateur sur la fenêtre d'édition du profil, un bouton "Voir ses annonces" est disponible. Si l'utilisateur clique dessus, la liste de ses annonces apparaîtra sur la même fenêtre, trié tout d'abord par date de parution. Sera renseigné par ligne d'annonce : Son nom, son prix, un extrait de la description de l'annonce et sa photo. L'utilisateur pourra les trier par nom (alphabétique), prix et date. L'utilisateur peut aussi cliquer sur le nom d'une annonce pour avoir toutes les informations de celle-çi, comme dans le cas d'utilisation "Consulter une annonce".<br />
*Supprimer/Editer une annonce<br />
L'utilisateur doit être connecté pour avoir cette option de disponible et ne peut éditer ou supprimer que des annonces dont il est le créateur. L'utilisateur a deux moyens de supprimer une annonce. Soit il ouvre la page de son annonce et clique sur le bouton correspondant sur l'écran, soit lorsqu'il pratique le cas d'utilisation "Consulter ses annonces", un bouton éditer/supprimer est disponible à chaque ligne d'annonce.<br />
Si l'utilisateur décide de supprimer une annonce, un message de confirmation lui sera demandé.<br />
Si l'utilisateur décider d'éditer une annonce, il pourra modifier le prix, la description, le nom et les photos.<br />
*Contacter un annonceur<br />
Une fois une annonce ouverte dans le cas d'utilisation "Consulter une annonce". Un bouton "Mail" est disponible. Si l'utilisateur clique dessus, il verra le mail et/ou le téléphone de l'annonceur.<br />
*Administrer<br />
<br />
==2.4 Contraintes générales==<br />
*Avoir une connexion internet<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...<br />
*Le site internet doit avoir un nombre d'annonces conséquentes si il veut attirer des utilisateurs. Et s'il n'en attire pas, ils n'y aura de moins en moins d'annonces.<br />
Le lancement du site et le travail sur son attractivité s'annonce délicat.<br />
*L'utilisateur souhaitant mettre en ligne une annonce doit être connecté.<br />
<br />
==2.5 Assumptions and dependencies==<br />
<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Evolutions potentielles du produit=<br />
*Cross-plateformes<br />
*Application mobile<br />
*Amélioration du design du site<br />
*Ajout de publicités<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=File:Pr%C3%A9sentation_Geofencing.pdf&diff=30538File:Présentation Geofencing.pdf2016-09-29T21:10:44Z<p>Julian.Hattinguais: </p>
<hr />
<div></div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=VT2016&diff=30537VT20162016-09-29T21:10:08Z<p>Julian.Hattinguais: /* Sujets */</p>
<hr />
<div>[[VT2015|<< Etudes 2015]] [[VT|Sommaire]] [[VT2017|Etudes 2017 >>]]<br />
<br />
<br />
=Veille Technologique et Stratégique=<br />
* Enseignants: Georges-Pierre Bonneau, Didier Donsez<br />
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5<br />
<br />
L'objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance<br />
<br />
Dans votre futur vie d'ingénieur, vous aurez à d'une part, vous former par vous-même sur une technologie émergente et d'autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.<br />
Il s'agira de réaliser<br />
* le positionnement par rapport au marché<br />
* d'être critique<br />
<br />
Votre synthèse fait l'objet d'une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.<br />
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d'une démonstration.<br />
<br />
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.<br />
<br />
La présentation peut être réalisée avec [[reveal.js]]<br />
<br />
[[File:presentation-VT-RICM5-1617.pdf|transparents d'introduction à l'UE]]<br />
<br />
=Planning=<br />
<br />
[[Image:vt2016-planning.png|center]]<br />
<br />
=Sujets=<br />
<br />
<br />
# Le langage [[Go]]<br />
# Le GeoFencing [[Geofencing|Fiche de synthèse]], [[Media:Présentation_Geofencing.pdf|Transparents]]<br />
# Insport Video<br />
# Le langage [[Julia]]<br />
# Gestionnaires de contenu : démonstration de [[Apache Jackrabbit]] dans le projet [[eCOM]]<br />
# [[Twitter Fabric]]<br />
# Caméras Thermiques https://twitter.com/FablabAIR/status/690175639530397696<br />
# [[Memory-centric virtual distributed storage system]]<br />
# [[Performance Monitoring]]<br />
# [[ADEPT]] : [[Blockchain]] at Home<br />
# [[CaaS]] : [[Docker]] Container-as-a-Service<br />
# [[Gradle]] : application à [[eCOM]] avec [[Docker]] Plugin<br />
# [[ESB]] : démonstration de [[Mule ESB]]<br />
# [[Serverless Architectures]] : démonstration de [[AWS Lambda]], démonstration d'IBM Bluemix [[Openwhisk]]<br />
# [[IoT cloud platforms]]<br />
# [[Access Network Query Protocol (ANQP)]]<br />
# [[Cuba Plateform]]<br />
# [[Thread]] : démonstration d'[[OpenThread]]<br />
# [[IoTivity]]<br />
# [[JCache]] : démonstration avec [[Apache Ignity]]<br />
# [[MemCached]]<br />
# [[Chatbots for the Enterprise]]<br />
# [[Apache Stratos]]<br />
# [[Fog Computing]]<br />
# [[CloudFoundry]]<br />
# [[GlusterFS]]<br />
# [[Swagger]]<br />
# [[Fabric8]]<br />
# [[DDP]] : démonstration avec [[Meteor]] et ddp-analyzer-proxy<br />
# [[Zephyr]] : démonstration avec un [[Arduino 101]] et un STM32 F7<br />
# [[gceasy]] : Universal garbage collection log Analyser<br />
# [[OpenWhisk]]<br />
# [[Flow-based data processing]] : démonstration de [[Apache NiFi]]<br />
# [[Cdoe Obofsucaitn]]<br />
# [[Apache Phoenix]] : SQL layer on top of HBase to support the most common SQL-like operations<br />
# [[Java 9 Modules and Services]]<br />
# [[The RAIL Performance Model]] : démonstration avec les outils de Profiling de [https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en Chrome DevTools]<br />
# [[Wildfly Swarm]]<br />
# [[Fog Computing]] : démonstration de [[iFogSim]]<br />
# [[OpenTSDB]]<br />
# [[TensorFlow]]<br />
# [[JerryScript|IoT.js et JerryScript]] : Démonstration sur [[STM32 Nucleo|STM32F4 Nucleo]]<br />
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]<br />
# [[Valgrind]]<br />
# [[OpenMP]]<br />
# [[GPGPU]] et [[OpenCL]]<br />
# [[Polymer]]</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Geofencing&diff=30536Geofencing2016-09-29T20:36:24Z<p>Julian.Hattinguais: /* Conclusion */</p>
<hr />
<div><br />
=Présentation=<br />
<br />
*Sujet : Geofencing<br />
*Auteur : Julian HATTINGUAIS<br />
*Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
=Mots clés=<br />
GeoFencing, Géolocalisation, mobile, GPS, marketing<br />
<br />
=Résumé=<br />
Le Geofencing est une technologie basée sur le positionnement par GPS ou réseaux cellulaire, et permet la création de zone géographique virtuel et la notification des dispositifs électronique entrant dans ces zones. Cette technologie peut être utilisée dans différents types d'applications.<br />
<br />
=Abstract=<br />
The Geofencing is a technology based on GPS or cellular networks positionning. It allows the creation of virtual geographical area (geofence) and notify when electronical devices entrering or leaving the area.<br />
This technology can be used in various types of applications.<br />
<br />
=Synthèse=<br />
==Principe==<br />
Le geofencing (ou Géo-repérage) est basée sur la géolocalisation. En effet, elle permet de créer une zone virtuelle sur une carte numérique et à l'aide de la géolocalisation, une notification est envoyée à l'utilisateur lorsqu'il entre ou sort de cette zone. Les zones peuvent êtres de forme circulaire ou non-circulaire et la localisation d'un utilisateur peut se faire avec le GPS, GSM ou par WiFi. L'utilisation se fait à grande échelle (supérieur à 50m) contrairement au Beacon qui s'utilise dans un batiment.<br />
[[Image:Geofencing.jpg|350px|center|Zones virtuelles]]<br />
<br />
==Marchés et Acteurs==<br />
===Marchés===<br />
L'étude de marché fait ressortir plusieurs domaines d'utilisations du geofencing :<br />
* Marketing: utilisé pour diffuser des offres ou alertes lorsque l'on se trouve à proximité d'un magasin. Par exemple, une zone de geofencing autour d'un restaurant où chaque utilisateur recevra une notification lui indiquant une réduction sur un plat spécifique.<br />
* Monitoring: Permettre la surveillance de véhicule, comme ceux utilisés dans les chantiers de constructions ou dans une entreprise, afin d'être averti si un véhicule ne respecte pas son parcours par exemple.<br />
* Sécurité: Améliorer la sécurisation des données ou limiter l'utilisation d'application mobile si l'on sort de la zone liée à l'entreprise.<br />
<br />
===Acteurs===<br />
Le geofencing peut être utilisé par n'importe qui, aussi bien les particuliers que les professionnels. Actuellement, cette technologie est principalement utilisée à des fins commerciales, alors qu'à ses débuts, le geofencing servait pour les sociétés de transport.<br />
<br />
==Fonctionnement==<br />
Le geofencing est composé d'un logiciel de geo-tracking GPS, de balises GPS et de moyens de notifications. Le logiciel de geo-tracking permet la création des périmètres virtuels qui servent à définir les zones. C'est lui qui va traquer les balises GPS dans la zone et va envoyer une notification si une balise GPS (ou smartphone) entre ou sort de la zone. <br />
<br />
===Zone===<br />
Une zone peut être soit de forme circulaire ou non-circulaire. Une zone circulaire est définie par une latitude et une longitude qui va indiquer le centre et un radius qui va être le rayon de la zone circulaire, alors qu'une zone non-circulaire (en somme un polygone) est définie par un ensemble de points géographiques (latitude et longitude).<br />
[[Image:Zone_non-cirulaire.png|200px|thumb|center|Zone non-circulaire]]<br />
<br />
===Notifications===<br />
Différents types de notifications peuvent êtres employés suivant l'utilisation du geofencing:<br />
*SMS: utilisé dans le marketing. Un utilisateur muni d'un téléphone entre dans la zone et reçoit un message de subscription de la forme "Envoyer <mot_clé> au <numéro_de_téléphone>. Lorsque l'utilisateur a renvoyé le mot clé, il peut recevoir par SMS des informations lorsqu'il se trouve dans la zone prédéfinie.<br />
<br />
*Notification push: C'est une notification d'application mobile. Utilisé pour le geofencing sur smartphone, l'application sert de relais avec le logiciel de geo-tracking, c'est elle qui va permettre l'affichage de la notification et va déterminer le mode de géolocalisation.<br />
<br />
===Géolocalisation===<br />
La localisation se fait par GPS, mais aussi par triangulation GSM ou par WiFi. Il existe 2 méthodes de geofencing pour les smartphones :<br />
*Active: Application en premier plan, utilise le GPS pour se géolocaliser, mais a une consommation de batterie assez élevé.<br />
*Passive: Application en arrière plan, utilise le réseau mobile pour la localisation (failbe consommation de batterie).<br />
<br />
=Conclusion=<br />
Le geofencing permet la création de zones virtuelles et peut être utilisé dans différents domaines d'applications, comme dans le secteur du transport de marchandises où une notification sera envoyée si un convoi se trouve à proximité d'un point d'intérêt ou plus récemment dans le secteur du marketing afin de communiquer des offres à un utilisateur muni d'un smartphone, s'il se trouve dans une zone publicitaire. Cette technologie s'utilise plutôt dans des grandes zones (de l'ordre de 100m au km) en extérieurs du fait de l'imprécision de la localisation par GPS. Elle est en pleine expansion depuis les années 2010 et trouve une forte utilité dans le marketing.<br />
<br />
=Bibliographie=<br />
*https://www.1min30.com/inbound-marketing/definition-le-geofencing-21265<br />
*http://academy.pulsatehq.com/7-things-about-geofencing<br />
*http://www.csantamariav.com/gsm-gps-geofencing/<br />
*https://www.tatango.com/blog/how-does-sms-geofencing-work/<br />
*http://ravtrack.com/avl/using-gps-to-set-up-geo-fencing-zones-and-perimeters-19/<br />
*http://searchsecurity.techtarget.com/answer/How-can-geofencing-improve-an-enterprise-security-strategy<br />
*http://www.e-marketing.fr/Thematique/marques-enseignes-1002/Tribunes/geofencing-de-la-surveillance-logistique-a-la-conquete-de-consommateurs-250844.htm#hZs4dO2r9uk8AzqD.97<br />
*http://www.transport-intelligent.net/produits-services/article/le-geofencing</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Geofencing&diff=30535Geofencing2016-09-29T10:23:13Z<p>Julian.Hattinguais: /* Conclusion */</p>
<hr />
<div><br />
=Présentation=<br />
<br />
*Sujet : Geofencing<br />
*Auteur : Julian HATTINGUAIS<br />
*Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
=Mots clés=<br />
GeoFencing, Géolocalisation, mobile, GPS, marketing<br />
<br />
=Résumé=<br />
Le Geofencing est une technologie basée sur le positionnement par GPS ou réseaux cellulaire, et permet la création de zone géographique virtuel et la notification des dispositifs électronique entrant dans ces zones. Cette technologie peut être utilisée dans différents types d'applications.<br />
<br />
=Abstract=<br />
The Geofencing is a technology based on GPS or cellular networks positionning. It allows the creation of virtual geographical area (geofence) and notify when electronical devices entrering or leaving the area.<br />
This technology can be used in various types of applications.<br />
<br />
=Synthèse=<br />
==Principe==<br />
Le geofencing (ou Géo-repérage) est basée sur la géolocalisation. En effet, elle permet de créer une zone virtuelle sur une carte numérique et à l'aide de la géolocalisation, une notification est envoyée à l'utilisateur lorsqu'il entre ou sort de cette zone. Les zones peuvent êtres de forme circulaire ou non-circulaire et la localisation d'un utilisateur peut se faire avec le GPS, GSM ou par WiFi. L'utilisation se fait à grande échelle (supérieur à 50m) contrairement au Beacon qui s'utilise dans un batiment.<br />
[[Image:Geofencing.jpg|350px|center|Zones virtuelles]]<br />
<br />
==Marchés et Acteurs==<br />
===Marchés===<br />
L'étude de marché fait ressortir plusieurs domaines d'utilisations du geofencing :<br />
* Marketing: utilisé pour diffuser des offres ou alertes lorsque l'on se trouve à proximité d'un magasin. Par exemple, une zone de geofencing autour d'un restaurant où chaque utilisateur recevra une notification lui indiquant une réduction sur un plat spécifique.<br />
* Monitoring: Permettre la surveillance de véhicule, comme ceux utilisés dans les chantiers de constructions ou dans une entreprise, afin d'être averti si un véhicule ne respecte pas son parcours par exemple.<br />
* Sécurité: Améliorer la sécurisation des données ou limiter l'utilisation d'application mobile si l'on sort de la zone liée à l'entreprise.<br />
<br />
===Acteurs===<br />
Le geofencing peut être utilisé par n'importe qui, aussi bien les particuliers que les professionnels. Actuellement, cette technologie est principalement utilisée à des fins commerciales, alors qu'à ses débuts, le geofencing servait pour les sociétés de transport.<br />
<br />
==Fonctionnement==<br />
Le geofencing est composé d'un logiciel de geo-tracking GPS, de balises GPS et de moyens de notifications. Le logiciel de geo-tracking permet la création des périmètres virtuels qui servent à définir les zones. C'est lui qui va traquer les balises GPS dans la zone et va envoyer une notification si une balise GPS (ou smartphone) entre ou sort de la zone. <br />
<br />
===Zone===<br />
Une zone peut être soit de forme circulaire ou non-circulaire. Une zone circulaire est définie par une latitude et une longitude qui va indiquer le centre et un radius qui va être le rayon de la zone circulaire, alors qu'une zone non-circulaire (en somme un polygone) est définie par un ensemble de points géographiques (latitude et longitude).<br />
[[Image:Zone_non-cirulaire.png|200px|thumb|center|Zone non-circulaire]]<br />
<br />
===Notifications===<br />
Différents types de notifications peuvent êtres employés suivant l'utilisation du geofencing:<br />
*SMS: utilisé dans le marketing. Un utilisateur muni d'un téléphone entre dans la zone et reçoit un message de subscription de la forme "Envoyer <mot_clé> au <numéro_de_téléphone>. Lorsque l'utilisateur a renvoyé le mot clé, il peut recevoir par SMS des informations lorsqu'il se trouve dans la zone prédéfinie.<br />
<br />
*Notification push: C'est une notification d'application mobile. Utilisé pour le geofencing sur smartphone, l'application sert de relais avec le logiciel de geo-tracking, c'est elle qui va permettre l'affichage de la notification et va déterminer le mode de géolocalisation.<br />
<br />
===Géolocalisation===<br />
La localisation se fait par GPS, mais aussi par triangulation GSM ou par WiFi. Il existe 2 méthodes de geofencing pour les smartphones :<br />
*Active: Application en premier plan, utilise le GPS pour se géolocaliser, mais a une consommation de batterie assez élevé.<br />
*Passive: Application en arrière plan, utilise le réseau mobile pour la localisation (failbe consommation de batterie).<br />
<br />
=Conclusion=<br />
Le geofencing peut être utilisé dans différents domaines d'applications, comme dans le secteur du transport de marchandises où une notification sera envoyée si un convoi se trouve à proximité d'un point d'intérêt ou plus recemment dans le secteur du marketing afin de communiquer des offres à un utilisateur muni d'un smartphone s'il se trouve dans une zone publicitaire.<br />
<br />
=Bibliographie=<br />
*https://www.1min30.com/inbound-marketing/definition-le-geofencing-21265<br />
*http://academy.pulsatehq.com/7-things-about-geofencing<br />
*http://www.csantamariav.com/gsm-gps-geofencing/<br />
*https://www.tatango.com/blog/how-does-sms-geofencing-work/<br />
*http://ravtrack.com/avl/using-gps-to-set-up-geo-fencing-zones-and-perimeters-19/<br />
*http://searchsecurity.techtarget.com/answer/How-can-geofencing-improve-an-enterprise-security-strategy<br />
*http://www.e-marketing.fr/Thematique/marques-enseignes-1002/Tribunes/geofencing-de-la-surveillance-logistique-a-la-conquete-de-consommateurs-250844.htm#hZs4dO2r9uk8AzqD.97<br />
*http://www.transport-intelligent.net/produits-services/article/le-geofencing</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Geofencing&diff=30534Geofencing2016-09-29T09:43:27Z<p>Julian.Hattinguais: /* Bibliographie */</p>
<hr />
<div><br />
=Présentation=<br />
<br />
*Sujet : Geofencing<br />
*Auteur : Julian HATTINGUAIS<br />
*Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
=Mots clés=<br />
GeoFencing, Géolocalisation, mobile, GPS, marketing<br />
<br />
=Résumé=<br />
Le Geofencing est une technologie basée sur le positionnement par GPS ou réseaux cellulaire, et permet la création de zone géographique virtuel et la notification des dispositifs électronique entrant dans ces zones. Cette technologie peut être utilisée dans différents types d'applications.<br />
<br />
=Abstract=<br />
The Geofencing is a technology based on GPS or cellular networks positionning. It allows the creation of virtual geographical area (geofence) and notify when electronical devices entrering or leaving the area.<br />
This technology can be used in various types of applications.<br />
<br />
=Synthèse=<br />
==Principe==<br />
Le geofencing (ou Géo-repérage) est basée sur la géolocalisation. En effet, elle permet de créer une zone virtuelle sur une carte numérique et à l'aide de la géolocalisation, une notification est envoyée à l'utilisateur lorsqu'il entre ou sort de cette zone. Les zones peuvent êtres de forme circulaire ou non-circulaire et la localisation d'un utilisateur peut se faire avec le GPS, GSM ou par WiFi. L'utilisation se fait à grande échelle (supérieur à 50m) contrairement au Beacon qui s'utilise dans un batiment.<br />
[[Image:Geofencing.jpg|350px|center|Zones virtuelles]]<br />
<br />
==Marchés et Acteurs==<br />
===Marchés===<br />
L'étude de marché fait ressortir plusieurs domaines d'utilisations du geofencing :<br />
* Marketing: utilisé pour diffuser des offres ou alertes lorsque l'on se trouve à proximité d'un magasin. Par exemple, une zone de geofencing autour d'un restaurant où chaque utilisateur recevra une notification lui indiquant une réduction sur un plat spécifique.<br />
* Monitoring: Permettre la surveillance de véhicule, comme ceux utilisés dans les chantiers de constructions ou dans une entreprise, afin d'être averti si un véhicule ne respecte pas son parcours par exemple.<br />
* Sécurité: Améliorer la sécurisation des données ou limiter l'utilisation d'application mobile si l'on sort de la zone liée à l'entreprise.<br />
<br />
===Acteurs===<br />
Le geofencing peut être utilisé par n'importe qui, aussi bien les particuliers que les professionnels. Actuellement, cette technologie est principalement utilisée à des fins commerciales, alors qu'à ses débuts, le geofencing servait pour les sociétés de transport.<br />
<br />
==Fonctionnement==<br />
Le geofencing est composé d'un logiciel de geo-tracking GPS, de balises GPS et de moyens de notifications. Le logiciel de geo-tracking permet la création des périmètres virtuels qui servent à définir les zones. C'est lui qui va traquer les balises GPS dans la zone et va envoyer une notification si une balise GPS (ou smartphone) entre ou sort de la zone. <br />
<br />
===Zone===<br />
Une zone peut être soit de forme circulaire ou non-circulaire. Une zone circulaire est définie par une latitude et une longitude qui va indiquer le centre et un radius qui va être le rayon de la zone circulaire, alors qu'une zone non-circulaire (en somme un polygone) est définie par un ensemble de points géographiques (latitude et longitude).<br />
[[Image:Zone_non-cirulaire.png|200px|thumb|center|Zone non-circulaire]]<br />
<br />
===Notifications===<br />
Différents types de notifications peuvent êtres employés suivant l'utilisation du geofencing:<br />
*SMS: utilisé dans le marketing. Un utilisateur muni d'un téléphone entre dans la zone et reçoit un message de subscription de la forme "Envoyer <mot_clé> au <numéro_de_téléphone>. Lorsque l'utilisateur a renvoyé le mot clé, il peut recevoir par SMS des informations lorsqu'il se trouve dans la zone prédéfinie.<br />
<br />
*Notification push: C'est une notification d'application mobile. Utilisé pour le geofencing sur smartphone, l'application sert de relais avec le logiciel de geo-tracking, c'est elle qui va permettre l'affichage de la notification et va déterminer le mode de géolocalisation.<br />
<br />
===Géolocalisation===<br />
La localisation se fait par GPS, mais aussi par triangulation GSM ou par WiFi. Il existe 2 méthodes de geofencing pour les smartphones :<br />
*Active: Application en premier plan, utilise le GPS pour se géolocaliser, mais a une consommation de batterie assez élevé.<br />
*Passive: Application en arrière plan, utilise le réseau mobile pour la localisation (failbe consommation de batterie).<br />
<br />
=Conclusion=<br />
<br />
<br />
=Bibliographie=<br />
*https://www.1min30.com/inbound-marketing/definition-le-geofencing-21265<br />
*http://academy.pulsatehq.com/7-things-about-geofencing<br />
*http://www.csantamariav.com/gsm-gps-geofencing/<br />
*https://www.tatango.com/blog/how-does-sms-geofencing-work/<br />
*http://ravtrack.com/avl/using-gps-to-set-up-geo-fencing-zones-and-perimeters-19/<br />
*http://searchsecurity.techtarget.com/answer/How-can-geofencing-improve-an-enterprise-security-strategy<br />
*http://www.e-marketing.fr/Thematique/marques-enseignes-1002/Tribunes/geofencing-de-la-surveillance-logistique-a-la-conquete-de-consommateurs-250844.htm#hZs4dO2r9uk8AzqD.97<br />
*http://www.transport-intelligent.net/produits-services/article/le-geofencing</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Geofencing&diff=30533Geofencing2016-09-29T09:42:37Z<p>Julian.Hattinguais: /* Abstract */</p>
<hr />
<div><br />
=Présentation=<br />
<br />
*Sujet : Geofencing<br />
*Auteur : Julian HATTINGUAIS<br />
*Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
=Mots clés=<br />
GeoFencing, Géolocalisation, mobile, GPS, marketing<br />
<br />
=Résumé=<br />
Le Geofencing est une technologie basée sur le positionnement par GPS ou réseaux cellulaire, et permet la création de zone géographique virtuel et la notification des dispositifs électronique entrant dans ces zones. Cette technologie peut être utilisée dans différents types d'applications.<br />
<br />
=Abstract=<br />
The Geofencing is a technology based on GPS or cellular networks positionning. It allows the creation of virtual geographical area (geofence) and notify when electronical devices entrering or leaving the area.<br />
This technology can be used in various types of applications.<br />
<br />
=Synthèse=<br />
==Principe==<br />
Le geofencing (ou Géo-repérage) est basée sur la géolocalisation. En effet, elle permet de créer une zone virtuelle sur une carte numérique et à l'aide de la géolocalisation, une notification est envoyée à l'utilisateur lorsqu'il entre ou sort de cette zone. Les zones peuvent êtres de forme circulaire ou non-circulaire et la localisation d'un utilisateur peut se faire avec le GPS, GSM ou par WiFi. L'utilisation se fait à grande échelle (supérieur à 50m) contrairement au Beacon qui s'utilise dans un batiment.<br />
[[Image:Geofencing.jpg|350px|center|Zones virtuelles]]<br />
<br />
==Marchés et Acteurs==<br />
===Marchés===<br />
L'étude de marché fait ressortir plusieurs domaines d'utilisations du geofencing :<br />
* Marketing: utilisé pour diffuser des offres ou alertes lorsque l'on se trouve à proximité d'un magasin. Par exemple, une zone de geofencing autour d'un restaurant où chaque utilisateur recevra une notification lui indiquant une réduction sur un plat spécifique.<br />
* Monitoring: Permettre la surveillance de véhicule, comme ceux utilisés dans les chantiers de constructions ou dans une entreprise, afin d'être averti si un véhicule ne respecte pas son parcours par exemple.<br />
* Sécurité: Améliorer la sécurisation des données ou limiter l'utilisation d'application mobile si l'on sort de la zone liée à l'entreprise.<br />
<br />
===Acteurs===<br />
Le geofencing peut être utilisé par n'importe qui, aussi bien les particuliers que les professionnels. Actuellement, cette technologie est principalement utilisée à des fins commerciales, alors qu'à ses débuts, le geofencing servait pour les sociétés de transport.<br />
<br />
==Fonctionnement==<br />
Le geofencing est composé d'un logiciel de geo-tracking GPS, de balises GPS et de moyens de notifications. Le logiciel de geo-tracking permet la création des périmètres virtuels qui servent à définir les zones. C'est lui qui va traquer les balises GPS dans la zone et va envoyer une notification si une balise GPS (ou smartphone) entre ou sort de la zone. <br />
<br />
===Zone===<br />
Une zone peut être soit de forme circulaire ou non-circulaire. Une zone circulaire est définie par une latitude et une longitude qui va indiquer le centre et un radius qui va être le rayon de la zone circulaire, alors qu'une zone non-circulaire (en somme un polygone) est définie par un ensemble de points géographiques (latitude et longitude).<br />
[[Image:Zone_non-cirulaire.png|200px|thumb|center|Zone non-circulaire]]<br />
<br />
===Notifications===<br />
Différents types de notifications peuvent êtres employés suivant l'utilisation du geofencing:<br />
*SMS: utilisé dans le marketing. Un utilisateur muni d'un téléphone entre dans la zone et reçoit un message de subscription de la forme "Envoyer <mot_clé> au <numéro_de_téléphone>. Lorsque l'utilisateur a renvoyé le mot clé, il peut recevoir par SMS des informations lorsqu'il se trouve dans la zone prédéfinie.<br />
<br />
*Notification push: C'est une notification d'application mobile. Utilisé pour le geofencing sur smartphone, l'application sert de relais avec le logiciel de geo-tracking, c'est elle qui va permettre l'affichage de la notification et va déterminer le mode de géolocalisation.<br />
<br />
===Géolocalisation===<br />
La localisation se fait par GPS, mais aussi par triangulation GSM ou par WiFi. Il existe 2 méthodes de geofencing pour les smartphones :<br />
*Active: Application en premier plan, utilise le GPS pour se géolocaliser, mais a une consommation de batterie assez élevé.<br />
*Passive: Application en arrière plan, utilise le réseau mobile pour la localisation (failbe consommation de batterie).<br />
<br />
=Conclusion=<br />
<br />
<br />
=Bibliographie=<br />
*https://www.1min30.com/inbound-marketing/definition-le-geofencing-21265<br />
*http://academy.pulsatehq.com/7-things-about-geofencing<br />
*http://www.csantamariav.com/gsm-gps-geofencing/<br />
*https://www.tatango.com/blog/how-does-sms-geofencing-work/<br />
*http://ravtrack.com/avl/using-gps-to-set-up-geo-fencing-zones-and-perimeters-19/<br />
*http://searchsecurity.techtarget.com/answer/How-can-geofencing-improve-an-enterprise-security-strategy<br />
*http://www.e-marketing.fr/Thematique/marques-enseignes-1002/Tribunes/geofencing-de-la-surveillance-logistique-a-la-conquete-de-consommateurs-250844.htm#hZs4dO2r9uk8AzqD.97</div>Julian.Hattinguaishttps://air.imag.fr/index.php?title=Geofencing&diff=30532Geofencing2016-09-29T09:36:45Z<p>Julian.Hattinguais: /* Résumé */</p>
<hr />
<div><br />
=Présentation=<br />
<br />
*Sujet : Geofencing<br />
*Auteur : Julian HATTINGUAIS<br />
*Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU<br />
<br />
=Mots clés=<br />
GeoFencing, Géolocalisation, mobile, GPS, marketing<br />
<br />
=Résumé=<br />
Le Geofencing est une technologie basée sur le positionnement par GPS ou réseaux cellulaire, et permet la création de zone géographique virtuel et la notification des dispositifs électronique entrant dans ces zones. Cette technologie peut être utilisée dans différents types d'applications.<br />
<br />
=Abstract=<br />
<br />
<br />
=Synthèse=<br />
==Principe==<br />
Le geofencing (ou Géo-repérage) est basée sur la géolocalisation. En effet, elle permet de créer une zone virtuelle sur une carte numérique et à l'aide de la géolocalisation, une notification est envoyée à l'utilisateur lorsqu'il entre ou sort de cette zone. Les zones peuvent êtres de forme circulaire ou non-circulaire et la localisation d'un utilisateur peut se faire avec le GPS, GSM ou par WiFi. L'utilisation se fait à grande échelle (supérieur à 50m) contrairement au Beacon qui s'utilise dans un batiment.<br />
[[Image:Geofencing.jpg|350px|center|Zones virtuelles]]<br />
<br />
==Marchés et Acteurs==<br />
===Marchés===<br />
L'étude de marché fait ressortir plusieurs domaines d'utilisations du geofencing :<br />
* Marketing: utilisé pour diffuser des offres ou alertes lorsque l'on se trouve à proximité d'un magasin. Par exemple, une zone de geofencing autour d'un restaurant où chaque utilisateur recevra une notification lui indiquant une réduction sur un plat spécifique.<br />
* Monitoring: Permettre la surveillance de véhicule, comme ceux utilisés dans les chantiers de constructions ou dans une entreprise, afin d'être averti si un véhicule ne respecte pas son parcours par exemple.<br />
* Sécurité: Améliorer la sécurisation des données ou limiter l'utilisation d'application mobile si l'on sort de la zone liée à l'entreprise.<br />
<br />
===Acteurs===<br />
Le geofencing peut être utilisé par n'importe qui, aussi bien les particuliers que les professionnels. Actuellement, cette technologie est principalement utilisée à des fins commerciales, alors qu'à ses débuts, le geofencing servait pour les sociétés de transport.<br />
<br />
==Fonctionnement==<br />
Le geofencing est composé d'un logiciel de geo-tracking GPS, de balises GPS et de moyens de notifications. Le logiciel de geo-tracking permet la création des périmètres virtuels qui servent à définir les zones. C'est lui qui va traquer les balises GPS dans la zone et va envoyer une notification si une balise GPS (ou smartphone) entre ou sort de la zone. <br />
<br />
===Zone===<br />
Une zone peut être soit de forme circulaire ou non-circulaire. Une zone circulaire est définie par une latitude et une longitude qui va indiquer le centre et un radius qui va être le rayon de la zone circulaire, alors qu'une zone non-circulaire (en somme un polygone) est définie par un ensemble de points géographiques (latitude et longitude).<br />
[[Image:Zone_non-cirulaire.png|200px|thumb|center|Zone non-circulaire]]<br />
<br />
===Notifications===<br />
Différents types de notifications peuvent êtres employés suivant l'utilisation du geofencing:<br />
*SMS: utilisé dans le marketing. Un utilisateur muni d'un téléphone entre dans la zone et reçoit un message de subscription de la forme "Envoyer <mot_clé> au <numéro_de_téléphone>. Lorsque l'utilisateur a renvoyé le mot clé, il peut recevoir par SMS des informations lorsqu'il se trouve dans la zone prédéfinie.<br />
<br />
*Notification push: C'est une notification d'application mobile. Utilisé pour le geofencing sur smartphone, l'application sert de relais avec le logiciel de geo-tracking, c'est elle qui va permettre l'affichage de la notification et va déterminer le mode de géolocalisation.<br />
<br />
===Géolocalisation===<br />
La localisation se fait par GPS, mais aussi par triangulation GSM ou par WiFi. Il existe 2 méthodes de geofencing pour les smartphones :<br />
*Active: Application en premier plan, utilise le GPS pour se géolocaliser, mais a une consommation de batterie assez élevé.<br />
*Passive: Application en arrière plan, utilise le réseau mobile pour la localisation (failbe consommation de batterie).<br />
<br />
=Conclusion=<br />
<br />
<br />
=Bibliographie=<br />
*https://www.1min30.com/inbound-marketing/definition-le-geofencing-21265<br />
*http://academy.pulsatehq.com/7-things-about-geofencing<br />
*http://www.csantamariav.com/gsm-gps-geofencing/<br />
*https://www.tatango.com/blog/how-does-sms-geofencing-work/<br />
*http://ravtrack.com/avl/using-gps-to-set-up-geo-fencing-zones-and-perimeters-19/<br />
*http://searchsecurity.techtarget.com/answer/How-can-geofencing-improve-an-enterprise-security-strategy<br />
*http://www.e-marketing.fr/Thematique/marques-enseignes-1002/Tribunes/geofencing-de-la-surveillance-logistique-a-la-conquete-de-consommateurs-250844.htm#hZs4dO2r9uk8AzqD.97</div>Julian.Hattinguais