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