Création d Votre mission Création d`un site de sondages e de

Transcription

Création d Votre mission Création d`un site de sondages e de
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
Création d
d’un
un site de sondages
Le but de cet exercice est de compléter un code pour créer un site de sondages simplifié.
Toutes les informations nécessaires pour le faire se trouvent dans la première partie du cours
(chapitre 1-9).
Votre mission
On a chargé Leo de réaliser un site de sondages mais il a dû partir avant de terminer. Votre
mission est de finirr son travail. Il a pratiquement terminé le site, mais a laissé le
contrôleur SondageController en chantier, vous devrez le compléter pour que le site
fonctionne. Comme Leo est consciencieux, il a déjà préparé les méthodes du contrôleur et
même ajouté des commentaires explicatifs comme aide mémoire.
Télécharger le site commencé par Leo ICI depuis ce lien: https://goo.gl/qoK26m
m
Fonctionnalités du site
Le site propose des sondages aux visiteurs, ceux
ceux-ci
ci peuvent voter en précisant leur adresse
email. Pour qu’ils ne puissent
nt voter qu’une seule fois, on mémorise ces adresses. Comme on
ne va pas vérifier la réalité des adresses, cette précaution est évidemment un peu factice
puisque le visiteur pourra voter plusieurs fois en entrant à chaque fois une autre adresse. Mais
on se contentera de ce mécanisme pour le moment, en réservant un traitement plus réaliste
pour la mission de la partie 2.
L’accueil des sondagess répond à l’URL :
.../sondage
On obtient alors la liste des sondages disponibles :
En cliquant sur un des boutons, on aboutit sur le formulaire qui permet de participer au vote :
1
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
Pour les URL, on adopte ce principe :
.../sondage/vote/nom_sondage
La partie nom_sondage identifie de façon unique chaque sondage.
Un bouton permet de revenir sur la page d’accueil. Le visiteur entre son adresse email et
choisit l’option qu’il veut. On procède à une validation de l’adresse :

l’adresse est obligatoire :

l’adresse doit être valide :

l’adresse ne doit pas avoir déjà été utilisée :
2
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
Remarque : on exclut cette dernière contrainte du champ de la validation de Laravel et on la
traite de façon indépendante pour ne pas trop compliquer le code. Nous verrons dans la
deuxième partie du cours comment créer des règles de validation personnalisées.
Si tout est correct, le vote est validé et on affiche la page des résultats :
Un bouton permet de revenir à l’accueil.
Organisation du code
Leo a bien travaillé et a bien organisé ses fichiers.
Les routes
Les 3 routes ont été prévues.
Le contrôleur
Il utilise un contrôleur nommé SondageController placé dans le dossier des contrôleurs :
3
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
C’est ce contrôleur que vous devez compléter pour que le site fonctionne correctement.
Gestion et validation
On a cette architecture pour la gestion :
Et une requête de formulaire pour la validation :
Leo a écrit tout le code correspon
correspondant.
Les données
Comme nous n’avons pas encore abordé les bases de données dans la première partie du cours
nous utilisons des fichiers pour mémoriser les données :
4
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
Pour chaque sondage on a deux fichiers. Prenons le cas du sondage sur les langages de
programmation que nous avons vu ci
ci-dessus.
dessus. Le nom de ce sondage est langage. L’URL
pour le vote est :
.../sondage/create/langage
Le fichier langage dans le dossier files contient les résultats des votes sous la forme :
4,1,1,2,3
Chaque nombre correspond à une des options. Comme ce sondage comporte 5 options, on a 5
nombres qui s’incrémentent au fil des votes.
Le fichier langage_emails contient les adresses email des votants sous la forme suivante :
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
…
Ces fichiers sont créés par le code de gestion lors du premier vote. Donc au départ de
l’application, le dossier est vide.
Il en est évidemment de même pour le second sondage nommé appreciation.
Les informations de définition de la localisation de ces fichiers ainsi que les inti
intitulés des
questions et des réponses figurent dans un fichier de configuration nommé sondage.php :
5
Travail à la maison : Technologies et programmation web (Laravel)
Mohamed Belhassen
Leo a aussi écrit le code de ce fichier.
Les vues
Il y a 4 vues ainsi nommées :




template : le template Blade pour les vues,
index : pour afficher les sondages disponibles sur la page d’accueil avec les liens,
sondage : pour afficher le formulaire de vote,
resultats : pour afficher les résultats d’un vote.
Là aussi, Leo a déjà fini le travail.
Langue
Il y a le package Français dans le code de base pour les messages.
Fichiers à envoyer
Vous devez renvoyer le package complet zippé (sans le dossier “vendor”) avec le
contrôleur SondageController complété. Donc le package doit être installable
avec composer install.
6