Dossier de Conception Quiz sur la Communication
Transcription
Dossier de Conception Quiz sur la Communication
dossier de conception du projet FLASH/PHP/SQL 2 PROJET Flash / PHP / SQL Préparé pour : L3-STRI Préparé par : Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN Date : 03/12/2010 Référence : DdCv2 Dossier de Conception Quiz sur la Communication IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 1 dossier de conception du projet FLASH/PHP/SQL 2 Sommaire I. Introduction: ..................................................................................................3 II. Objectif du système à concevoir, son champ d’application, ses limites : 3 III. Architecture générale logicielle et décomposition en sous-systèmes : ....4 IV. Conception des différentes pages: ..............................................................7 1) Conception de la page de login :............................................................................ 7 2) Conception de la page d’administrateur : ............................................................. 8 V. Description des fonctionnalités des sous-systèmes : ................................8 1) Besoin de l'application pour la base de données : .............................................. 9 2) Dictionnaire des données : ................................................................................... 11 3) Les modèles de données : .................................................................................... 12 a) Modèle Conceptuel de Données :........................................................12 b) Modèle Logique de Données Relationnel : .........................................13 VI. Conclusion: ..................................................................................................13 IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 2 dossier de conception du projet FLASH/PHP/SQL 2 I. Introduction: Lors de ce projet, nous allons créer une application utilisant la programmation Flash, PHP et SQL. Vous trouverez ci-après l’organisation du projet qui se décompose en deux parties, une partie « Administrateur/Enseignant » et une autre « Utilisateur », chaque partie est traitée séparément par un binôme. En ce qui concerne la partie conception, nous avons rédigé un dossier contenant la partie « Programmation Flash » en lien avec PHP et la partie « Base de données ». II. Objectif du système à concevoir, son champ d’application, ses limites : Le système que nous concevons a pour but de permettre à des élèves de Licence 3 STRI de s’exercer aux tests de personnalités, ainsi qu’aux tests psychotechniques basés sur la logique tels que les dominos et suites numériques vus en cours de Communication. Cette application sera utilisable sur le portail du site du département STRI. Une des contraintes qui est de taille, c’est la préservation des propriétés intellectuelles que possèdent les cours de communication. Donc, Nous devons faire en sorte que ces derniers ne soient pas divulgués sur internet. Et empêcher que le contrôle du contenu soit perdu. Le professeur en charge de la matière doit avoir un contrôle total sur l’application et donc c’est à lui que revient le pouvoir de valider et de supprimer les comptes utilisateurs. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 3 dossier de conception du projet FLASH/PHP/SQL 2 III. Architecture générale logicielle et décomposition en sous-systèmes : Ci-dessous vous pouvez voir les différents fichiers portant l’extension « swf » dont est composée notre application de test de communication. Dans un premier temps, le test tel que le verrait un utilisateur : L’image se compose d’un « menu » déroulant sur la droite, d’un bouton « répondre » pour envoyer la réponse saisie. Un champ « question et réponse » vient s’ajouter à la fenêtre. En bas de page se trouve une « ampoule », une fois cliqué dessus l’utilisateur du quiz se verra afficher un indice pour la réponse, ce qui rend son utilisation facultatif. Le test se décompose en deux parties qui viendront se superposer. Donc, le fichier numéro 1 aura un nom de la forme « Apparence.swf » contiendra le fond de base ainsi que le menu et les boutons de navigation de quiz à quiz, soit tous les éléments statiques de la page, comme le montre l’image ci-dessous. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 4 dossier de conception du projet FLASH/PHP/SQL 2 Si un utilisateur clique sur un bouton du menu et choisit de passer à un autre quiz, l’application fera appel au fichier flash correspondant au dit quiz. Un l’application fera appel à un service PHP qui nous renverra toutes les informations relatives aux quiz (Titre, description, Questions, Réponses, etc.). Ci-dessous se trouve ce que contient le deuxième fichier qui lui sera changeant en fonction de la question sélectionnée. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 5 dossier de conception du projet FLASH/PHP/SQL 2 Ce fichier qui aura pour nom « nomQuiz.swf » se compose des parties dynamiques de l’application, la partie « Zone Question » qui va varier suivant la question qui aura été sélectionnée. Ensuite, nous pouvons voir la partie « Zone Réponse » qui est l’emplacement de la zone de saisie de la réponse. Cette dernière varie en fonction de la question pour permettre une plus grande marge de réponse. Et enfin, en bas de la page, nous pouvons voir « l’ampoule », qui affiche un indice sous la forme d’une bulle lorsque l’ont clique dessus. Cela permet d’aiguiller une personne lorsqu’elle est bloquée sur la question. L’indice de la question est récupéré en même temps que toutes les informations relatives à la question courante. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 6 dossier de conception du projet FLASH/PHP/SQL 2 Ceci correspondant à la première page, qui apparaitra lors de l’ouverture du quiz. Lorsque l’on sélectionne un quiz dans le menu, flash appellera un service PHP qui aura pour rôle de renvoyer les questions en fonction du quiz. IV. Conception des différentes pages: 1) Conception de la page utilisateur: La première page affichée pour le quiz sera une page d’information et d’authentification. Sur celle-ci, l’utilisateur pourra rentrer son identifiant et son mot de passe. Un processus de vérification du compte et des identifiants est alors lancé. Ainsi, si les identifiants sont bons l’utilisateur est renvoyé sur la page d’utilisateur ou sur la page d’administrateur, contenant les différentes fonctionnalités. Si l’utilisateur n’a pas de compte, un formulaire de demande de création de compte sera disponible. Il pourra le remplir et le valider. Sa demande d’inscription sera envoyée par mail à l’administrateur qui pourra la valider par la suite. Une fois la phase d’authentification effectuée, l’utilisateur aura accès aux diverses fonctionnalités du site. Dans la première page, l’animation flash sera lancé directement, puisqu’il s’agit de l’activité principale. Ensuite, grâce à cette page d’accueil, il pourra accéder à une page de modification des données de son compte. L’utilisateur, pourra aussi consulter l’historique de ses scores aux différents quiz. Toutes ses fonctionnalités seront gérées par des scripts PHP qui effectueront les modifications et les consultations nécessaires dans la base de données. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 7 dossier de conception du projet FLASH/PHP/SQL 2 2) Conception de la page d’administrateur : L’administrateur doit avoir accès aux fonctionnalités suivantes : gestion des utilisateurs, gestion des quiz, gestion des phrases astuces. Pour cela, l’administrateur accède à une page principale d’où il pourra choisir la fonctionnalité qu’il veut utiliser. La page en question est une simple page HTML avec des liens vers différentes pages contenant les différentes fonctionnalités. Lorsqu’il choisit la fonctionnalité de gestions d’utilisateur, il accède à une nouvelle page. De cette nouvelle page, appelée « gestionusers.php », une vue des utilisateurs non validés est disponible, il peut ainsi valider en sélectionnant les utilisateurs puis en cliquant sur un bouton « valider ». Il peut choisir de ne pas valider les utilisateurs en cliquant sur le bouton « supprimer ». Si aucun des utilisateurs en attente de validation, n’est validé, ceux-ci réapparaitront la fois d’après. Les utilisateurs non validés sont supprimés de la base de données, et pour les utilisateurs validés leur attribut « valide » de la base de données passe de non à oui. Sur cette même page, l’administrateur peut consulter le profil de chaque utilisateur et ainsi voir sa date de dernière visite, sa progression et score sur les différents quiz. Il peut aussi supprimer des utilisateurs de la base de données. En cliquant sur la fonctionnalité de gestion des quiz, l’administrateur peut ajouter des questions à un quiz précis ou en supprimer. Pour cela, il accède à la liste des questions du quiz sélectionné, et peut supprimer les questions sélectionnées. Pour en ajouter, une il peut le faire en remplissant un formulaire et en le validant. Cela fera appel à des accès à la base de données et des ajouts ou suppression de ligne. Il aura même le pouvoir de modifier l’intitulé, le descriptif et le nombre de questions qui sont propres à chaque quiz. Pour la gestion des phrases astuces, l’administrateur aura accès à la liste des phrases et pourra de la même manière que les questions de quiz, en supprimer. Il aura aussi accès à un formulaire pour rajouter une phrase astuce. Pour cela, une requête sera envoyé à la base de données pour soit ajouter une phrase ou soit en supprimer une. V. Description des fonctionnalités des sous-systèmes : Il y a trois fonctionnalités majeures, qui correspondent aux moyens utilisés pour interagir avec l’utilisateur. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 8 dossier de conception du projet FLASH/PHP/SQL 2 1) Besoin de l'application pour la base de données : Nous allons définir la conception et l’implémentation de la base de données qui sera utilisé pour l’application. Pour cela, nous définirons tout d’abord les besoins de stockage de données de l’application, puis nous présenterons différents modèles de représentations des relations des données pour mieux comprendre l’architecture future de la base de données. L’application a besoin d’utiliser un certain nombre donné pour générer les quiz, gérer les utilisateurs… Nous avons donc conçu notre base de données à partir des informations ci-après qui découle de l’utilisation de l’application. Chaque Quiz se défini par un intitule de quiz (intitule_quiz) par exemple : dominos, test personnalité, …etc. Une description (description) qui décrit le principe de fonctionnement du quiz ainsi que ses règles .Le nombre de question (nb_quest_quiz) enregistrées pour ce quiz dans la base de données. Un quiz contient plusieurs questions. Les questions sont identifiées par une clé fictive (id_question). Chaque question est clairement explicitée par son intitulé (intitule_question) et possède un indice (indice) qui sera proposé à l’utilisateur pour une résolution plus facile de l’exercice. Une question appartient à un et un seul quiz. Une question est associée à une famille de question, les familles de questions permettent d’identifier certain type de question qui revient, par exemple un type de disposition de domino, ou une suite numérique ayant le même type d’incrémentation. Ainsi, en associant les questions à une famille, on peut faciliter la création de ces dernières en affichant un modèle de disposition propre à la famille. Une famille sera identifiée par un type ou libellé, puis une description de ce type en contenant par exemple une image modèle. Chaque question possède au moins une réponse. Les réponses sont définies par une clé primaire (id_reponse), un intitulé (intitule_reponse) qui est la solution à la question posée (exemple : un domino valide pour cette question) ainsi qu’une explication didactique (explication) de cette dernière. Chaque utilisateur sera identifié par son mail qui constituera la clé primaire (mail) garantissant l’unicité des comptes. Son mot de passe pour se connecter (password), son nom et prénom, sa date d’inscription (date_inscription), la date de la dernière connexion de cet utilisateur (date_derniere_connexion) pour contrôler la fréquentation, les droits associés à son compte (droit) (administrateur ou simple utilisateur) devront être présents. Chaque compte devra être validé par un administrateur (valide) avant de pouvoir être opérationnel. Afin d’archiver les résultats, obtenus par chaque utilisateur, associés à un quiz effectué à une date précise nous avons besoin d’un historique. Nous stockerons des phrases (qui seront utilisées comme astuce du jour) indépendamment du reste car elles sont apriori sans rapport avec les structures cidessus. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 9 dossier de conception du projet FLASH/PHP/SQL 2 Schéma Relationnel : QUIZ = {id_quiz, intitulé_quiz, description, nb_quest_quiz} USERS = {mail, password, nom, prenom, date_inscription, date_derniere_connexion, droit, valide} QUESTIONS = {id_question, intitule_question, indice, #id_quiz, #id_famille} REPONSES = {id_reponse, intitule_reponse, explication, #id_question} HISTORIQUES = {#id_quiz, #mail, date_score, score} PHRASES = {id_phrase, texte} FAMILLE = {id_famille, type_famille, description} Pour valoriser les différentes tables qui constituent notre base de données, nous utiliserons des clés auto-incrémentées, cela permettra d’automatiser la gestion des indices et nous évitera de nous en préoccuper à chaque nouvel ajout. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 10 dossier de conception du projet FLASH/PHP/SQL 2 2) Dictionnaire des données : Nous avons ainsi pu établir un dictionnaire de données : nom Primaire TYPE CONTRAINTE TABLE DESCRIPTION id_quiz oui >0 QUIZ identifiant du quiz Entier intitule_quiz chaine QUIZ nom du quiz (domino, suite numérique) description chaine QUIZ description d'un quiz nb_quest_quiz Entier QUIZ nombre de questions sélectionnés pour un quiz chaine USERS mail de l'utilisateur (identifiant) password chaine USERS mot de passe pour la connexion nom chaine USERS nom de l'utilisateur prenom chaine USERS prénom de l'utilisateur date_inscription date USERS date de l'inscription d'un utilisateur date_derniere_connexion date >= date_inscription USERS droit chaine admin ou user valide Booléen USERS Entier QUESTIONS identifiant d'une question intitule_question chaine QUESTIONS intitulé de la question indice chaine QUESTIONS indice sur la résolution de la question Entier REPONSES identifiant de la réponse d'une question intitulé_reponse chaine REPONSES intitulé d'une réponse explication chaine REPONSES explication de la réponse Entier PHRASES identifiant d'une phrase astuce mail id_question id_reponse id_phrase oui oui oui oui texte date_score chaine oui score Id_famille date Entier Oui >0 USERS date de dernière connexion d'un utilisateur droit de l'utilisateur administrateur ou user si le compte a été validé par un admin ou pas phrase astuce apparaissant au chargement date associée à un score sur un quiz HISTORIQUES précis pour un utilisateur score obtenu sur un quiz à un jour <= nb_quest_qz HISTORIQUES donné pour un utilisateur PHRASES Entier FAMILLE Identifiant pour la table famille Type_famille Chaine FAMILLE Nom de la famille Descritpion Chaine FAMILLE Description d’une famille pour mieux comprendre le type de question redondant. Certaines contraintes énoncées dans le dictionnaire de données seront mise en place dans le code de l’application et non dans la base de données. Ainsi, la gestion d’erreur sera plus simple. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 11 dossier de conception du projet FLASH/PHP/SQL 2 3) Les modèles de données : a) Modèle Conceptuel de Données : IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 12 dossier de conception du projet FLASH/PHP/SQL 2 b) Modèle Logique de Données Relationnel : Conclusion: Ayant bien pris le temps de soigner notre dossier de conception, nous pouvons ainsi donc passer à l’étape de codage. La base de données définit plus tôt sera implémentée en utilisant un fichier PHP, ce qui automatisera les requêtes et permettra une meilleur portabilité. Pour créer nos tables nous utiliserons le langage SQL et plus précisément les fonctions « CREATE TABLE » pour plus d’informations, veuillez vous référer au code correspondant de l’application. La base de données sera implanter sous PostGreSQL conformément à ce qui a été indiqué sur le cahier des charges, cela nous facilitera la programmation des liens entre PHP et la base de données. IUP - L3 - STRI - Marine DUMAS, Arnaud DEPOND, Walid ZEMOURI, Arnaud MASSELIN 13