PHP Atelier Lokisalle
PHP Atelier Lokisalle
PHP Atelier Lokisalle
FR LIAM TARDIEU
Présentation
LOKISALLE est une société imaginaire. Les informations concernant LOKISALLE sont factices.
Objectifs et Bénéfices
Le projet vise à offrir un ensemble de services basés sur les TIC permettant notamment :
Architecture logicielle
L’architecture logicielle sous-jacente au site devra utiliser les technologies récentes éprouvées.
La solution devra autant que possible remplir les spécifications suivantes :
Ergonomie
La page d’accueil du portail a une importance primordiale : elle doit, en quelques secondes, donner à l’utilisateur une vision de ce qu’il peut attendre du
site. Tout malentendu à ce niveau peut frustrer l’utilisateur, interrompre la visite et entacher l’image de LOKISALLE.
Le site web doit être adaptable et prévoir une version responsive design.
Ces principes devront rester cohérents avec les objectifs et les contraintes du site.
Les schémas introduits dans ce document sont présents à titre explicatif, il ne s’agit pas d’une suggestion de mise en forme.
Les fonctionnalités seront les mêmes d’un projet à un autre (respect du cahier des charges).
De ce fait, il serait donc intéressant que vous vous démarquiez via le design de votre site.
Vous aurez donc carte blanche sur cette partie, l’idéal serait d’innover et d’être inventif sur les choix d’ergonomie. Le jury y sera sensible.
Contraintes
L’ensemble du portail devra être compatible avec les navigateurs les plus utilisés du marché, soit :
La sécurité sur le site devra couvrir les notions de confidentialité, de droit d’accès et d’authentification.
Référencement
Le référencement et le positionnement d’un site au niveau des différents outils de recherche de l’Internet (annuaires, moteurs) sont d’une importance cruciale
pour attirer une bonne audience.
Les principes et règles de métier pour atteindre ces deux objectifs seront mis en œuvre dès la conception du portail. (Respect des normes w3c).
Planification du projet
Précisions
« LOKISALLE est une société imaginaire. Les informations concernant LOKISALLE sont factices »
Pour le bon déroulement du projet, veillez à prendre des images et texte libre de droit.
N’oubliez pas de préciser dans les mentions légales que ce site n’est pas réalisé dans un but commercial mais dans le but de répondre à un atelier PHP.
Le site doit être sur internet et hébergé sur le web pour une présentation client.
Arguments à bannir : « je n’ai pas eu le temps » « j’étais en entreprise », « c’était trop difficile je ne l’ai pas fait », « je ne savais pas que le rendu était
pour aujourd’hui », « mon pc est tombé en panne hier et je n’avais pas d’autres sauvegardes », « j’avais d’autres projets urgents », « j’étais en plein
déménagement, désolé ! », etc.
Conseil
Pensez à mettre votre site en ligne et tout « re-tester » au moins 10 jours avant les soutenances.
On ne va pas en présentation chez un client avec un site mis en ligne la veille.
Justesse
Le respect du cahier des charges est fondamental. Vous devrez également complètement « rentré(e) » dans votre sujet afin de prévoir des tests de
débogage ainsi que des tests de cohérence qui ne sont pas forcément à mentionner par le client.
Exemple :
Recommandations :
Il serait judicieux pour la zone 2 de créer un fichier « menu.inc.php » afin d’y mettre tous les liens et de l’inclure sur toutes les pages. (idem pour la zone
1 « haut.inc.php » : doctype, appel vers la feuille de style, etc. - et pour la zone 5 « bas.inc.php »: à nouveau des liens).
Texte cohérent avec l’activité pour la zone 3.
Bien entendu pour la zone 4 il s’agit d’un affichage « dynamique » les informations proviennent de la base de données (voir les tables : produits et
salles).
Le lien « connectez-vous pour l’ajouter au panier » pointe sur la page connexion.php.
4 Deux choix s’offrent alors à l'internaute :
o Voir la fiche détaillée le lien pointe sur « reservation_details.php » (cette page n’est pas répertoriée dans la zone 2 du menu). (il convient impérativement
de passer l’id du produit pour avoir l’affichage complet relatif à ce produit).
Et c’est le cas pour trois des pages du menu :
o Après s’être connecté : Ajouter directement le produit au panier, le bouton pointe sur « panier.php ».
o Après s’être connecté : Ajouter directement le produit au panier, le bouton pointe sur « panier.php ».
(il faudra alors passer l’id du produit). Et c’est une possibilité pour trois des pages du menu :
Pour les pages index.php – reservation.php – recherche.php ; Si aucun produit n’est réservable, nous prévoirons un message d’information « aucune offre
pour le moment ».
Description :
1 correspond à la zone du haut, nous y retrouverons le logo et la bannière.
2 correspond au menu quand un visiteur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous sommes
dans le cas visiteur.
3 correspond à l’ensemble de toutes nos offres (évidemment supérieures à la date du jour et « réservable »).
5 correspond à la zone du bas, nous y retrouvons plusieurs liens.
Recommandations :
Bien entendu pour la zone 3 il s’agit d’un affichage « dynamique » les informations proviennent de la base de données (voir les tables : produits et
salles).
Le lien « connectez-vous pour l’ajouter au panier » pointe sur la page connexion.php.
Cette page est similaire à la page d’accueil. Deux choix s’offrent à nous :
Voir la fiche détaillée le lien pointe sur « reservation_details.php » (cette page n’est pas répertoriée dans la zone 2 du menu). (il convient
impérativement de passer l’id du produit pour avoir l’affichage complet relatif à ce produit).
Après s’être connecté : Ajouter directement le produit au panier, le bouton pointe sur « panier.php ». (Il faudra alors passer l’id du produit sur la
page panier).
Exercice 7.103 : Recherche (recherche.php)
Description :
1 correspond à la zone du haut, nous y retrouverons le logo et la bannière.
2 correspond au menu quand un visiteur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous sommes
dans le cas visiteur.
3 correspond à l’ensemble de toutes nos offres (évidemment supérieures à la date choisie par l’internaute et « réservable »)
4 correspond à la recherche l’internaute peut ainsi choisir la date à laquelle il souhaite louer une salle et le site affiche les salles « réservable » pour ou
à partir de cette date.
* Par défaut, les champs déroulants seront positionnés sur le mois et l’année en cours.
5 correspond à la zone du bas, nous y retrouvons plusieurs liens.
Recommandations :
Bien entendu pour la zone 3 il s’agit d’un affichage « dynamique » les informations proviennent de la base de données (voir les tables : produits et
salles).
Deux choix s’offrent à nous :
Voir la fiche détaillée le lien pointe sur « reservation_details.php » (cette page n’est pas répertoriée dans la zone 2 du menu). (il convient
impérativement de passer l’id du produit pour avoir l’affichage complet relatif à ce produit).
Après s’être connecté : Ajouter directement le produit au panier, le bouton pointe sur « panier.php ».
Il faudra alors passer l’id du produit sur la page panier.
Il s’agit du même type d’affichage que sur la page reservation.php.
4 , il faudra bien penser à récupérer 3 valeurs lors de la validation de la rechercher par l’utilisateur et ne pas oublier de prendre en compte le format de
date américain (ANNEE/MOIS/JOUR) avant de transmettre le tout.
Description :
1 correspond à la zone du haut, nous y retrouverons le logo et la bannière.
2 correspond au menu quand un visiteur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous sommes
partiellement dans le cas visiteur.
3 correspond aux informations importantes de la salle : photo, titre, texte de description, capacité et catégorie.
4 correspond aux informations complémentaires de la salle.
6 correspond à la zone d’affichage de commentaires et de notations. Attribution possible de commentaires et de notes par les personnes connectées
(admin ou membres) uniquement.
Nous restons sur la même page après soumission du commentaire ET de la note.
6* le schéma montre la vision d’une personne membre pour cette zone.
5 correspond à la zone du bas, nous y retrouvons plusieurs liens.
Recommandations :
Il faut bien souligner le fait que nous sommes sur la page détaillée d’un produit.
Afin d’arriver sur cette page et d’obtenir les informations attendues, cela implique que l’internaute ait cliqué sur « voir la fiche détaillée » via la page
index.php ou reservation.php ou encore recherche.php et soit conduit vers la page reservation_details.php ?id_produit=N.
Bien entendu pour la zone 3 et 4 il s’agit d’un affichage « dynamique » les informations proviennent de la base de donnée (voir les tables suivantes :
salles, produits). L’affichage d’un plan d’accès peut accompagner les informations.
Concernant la zone 6 , nous retrouvons l’affichage des commentaires des internautes souhaitant laisser leur avis sur la location de cette salle (salle et non
produit, une salle peut « être » affiliée à plusieurs produits à la fois). Il faut se rapprocher des tables suivantes : (membres, avis, salles)
Dans cette zone, si l’internaute qui se rend sur cette page n’est pas membre ou admin (il sera donc visiteur) et à la place du formulaire pour le dépôt de
commentaire, nous lui afficherons la phrase suivante : « il faut être connecté pour pouvoir déposer des commentaires ».
Dans cette même zone, si l’internaute à déjà laisser un commentaire pour cette salle nous lui afficherons les commentaires des autres internautes puis un
message « merci pour votre contribution » à la place du formulaire d’ajout de commentaire (un membre ne peut donc laisser qu’un commentaire par salle).
Si l’internaute qui se rend sur cette page n’est pas membre ou admin (il sera donc visiteur) et à la place du bouton « ajouter au panier », nous lui
afficherons la phrase suivante : « Veuillez vous inscrire ou vous connecter pour pouvoir effectuer une réservation ».
7 Affichez une suggestion de produits similaires au produit qui est sélectionné par l’internaute afin de faciliter les recherches croisées.
Il faudra cependant proposer des produits similaires en termes de dates et de localisation choisie par l’internaute.
Recommandations :
3 Seulement si l’internaute a le bon pseudo ET le bon mot de passe il doit pouvoir accéder à son profil « profil.php », il suffit de faire une redirection.
Attention si ce n’est pas le cas, nous restons sur cette page en lui signifiant un message d’erreur.
La case « Se souvenir de moi » peut être cochée par l’utilisateur, ce choix est facultatif, mais s’il la coche vous devrez sauvegarder son pseudo pour les
prochaines connexions. C'est-à-dire que s’il se déconnecte et qu’il tente de se reconnecter via cette même page « connexion.php », il ne devrait plus avoir à
renseigner son pseudo.
4 Voici un simple lien qui mène vers la page « inscription.php » si le membre n’a pas encore de compte.
2 Le lien « Inscrivez-vous » sur la partie de droite pointe vers la page « inscription.php ».
Recommandations : 2 Cette page n’est pas répertoriée dans la zone 2 du menu et n’est accessible qu’après s’être rendu sur la page de connexion.
3 L’internaute doit saisir l’adresse email qu’il a utilisée lors de son inscription. A partir de cette information, vous pourrez lui générer un nouveau mot de
passe et lui communiquer par email sans oublier de mettre à jour la base de données. Il ne faut pas oublier de gérer le cas où l’internaute saisit une
adresse email qui n’existe pas.
Description :
1 correspond à la zone du haut, nous y retrouverons le logo et la bannière.
2 correspond au menu quand un visiteur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous sommes
dans le cas visiteur.
3 correspond au formulaire d’inscription afin qu’un membre puisse s’inscrire.
5 correspond à la zone du bas, nous y retrouvons plusieurs liens.
Recommandations :
3 Vérifier que vous avez récupéré toutes les informations du formulaire avant de les envoyer en base de données pour l’insertion dans la table membres.
Vérifier que l’adresse email soit correcte.
Le pseudo et le mot de passe doivent faire au minimum 3 caractères.
Les pages de connexion, inscription, mot de passe oublié, etc. ne doivent être accessibles uniquement en tant que visiteur (non connecté).
Si un membre connecté venait à se rendre sur ces pages par mégarde, nous le redirigerons ou lui mentionnerons qu’il est déjà connecté
Exercice 7.108 : Front - Mentions Légales (mentions.php)
Description :
3 correspond au texte des Mentions Légales
Recommandations :
Aucune recommandation particulière
Description :
3 correspond au texte des CGV
Recommandations :
Aucune recommandation particulière
Description :
3 correspond au texte des CGV
Recommandations :
Aucune recommandation particulière
Description :
La page contient un lien permettant de s’inscrire à la newsletter.
Recommandations :
Attention l’internaute doit être membre (ou admin) pour voir apparaître cette proposition d’abonnement. Si l’internaute est visiteur, il ne possèdera pas
d’id_membre, nous l’inviterons à s’inscrire au site avant de s’abonner à la newsletter. (table : newsletter).
Description :
La page contient un lien permettant de s’inscrire à la newsletter.
Recommandations :
Attention l’internaute doit être membre (ou admin) pour voir apparaître cette proposition d’abonnement. Si l’internaute est visiteur, il ne possèdera pas
d’id_membre, nous l’inviterons à s’inscrire au site avant de s’abonner à la newsletter. (table : newsletter).
Recommandations :
3 , un membre peut envoyer un message à l’administrateur du site.
Si l’internaute qui souhaite contacter l’admin est simple visiteur, il peut également lui envoyer un message, pour cela il faudra ajouter un champ «
expéditeur » dans le formulaire de contact afin que l’administrateur sache à quelle adresse email il doit répondre.
Description :
1 correspond à la zone du haut, nous y retrouverons le logo et la bannière.
2 correspond au menu (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous sommes dans le cas membre. Vous
pouvez remarquer que les liens « Connexion | Créer un nouveau compte » se sont transformés en « Se déconnecter ».
3 correspond à la zone récapitulative des informations du membre. Il est également possible qu’un membre mette à jour ses informations.
4 correspond à la zone récapitulative des dernières commandes passées sur le site.
5 correspond à la zone du bas, nous y retrouvons plusieurs liens.
Recommandations :
3 et 4 Un membre ou un admin ne peut accéder à son profil que s’il s’est connecté avant via la page « connexion.php », et lors de sa connexion nous
lui « remplissons » une session, il suffit de ressortir les informations de cette session sur la page « profil.php » afin de récupérer les informations sur le
membre ou l’admin. Cette page n’est donc pas disponible pour les visiteurs.
3 Le lien « mettre à jour mes informations » doit ouvrir un formulaire de modification de compte. Il sera similaire au formulaire d’inscription. Cependant les
informations actuelles du membre doivent apparaitre dans les zones de saisies du formulaire afin que le membre puisse rectifier seulement ce qu’il souhaite
sans devoir re-saisir chacune des informations.
Recommandations :
3 On ne peut accéder qu’à son panier en tant que membre, administrateur via la zone de menu 2 ou alors en étant envoyé par le bouton « ajouter au
panier » sur les pages suivantes :
« index.php » - « reservation.php » - « reservation_details.php » - « recherche.php »
Si l’internaute n’est pas connecté (donc simple visiteur) et se retrouve sur la page « panier.php » nous lui afficherons « vous devez vous connecter avant
d'accéder à votre panier ».
Si l’internaute (membre ou admin) qui accède à son panier tente d’ajouter deux fois le même produit, nous lui afficherons « ce produit est déjà dans votre
panier ». Effectivement il ne peut réserver deux fois le même produit.
Vider mon panier est un lien vers la même page « panier.php » qui déclenche une action afin de « vider » le contenu de son panier.
La croix « x » à coté du produit est un lien permettant de « retirer » un des produit(s) du panier sans affecter le restant des produits dans le panier.
L’internaute peut payer (seulement s’il est membre ou admin) et surtout s’il a coché la case « J’accepte les conditions générales de vente » le lien « voir »
mène vers « cgv.php ».
Si l’internaute utilise un code promo, il faudra impérativement vérifier si le code promo qui l’utilise est associé au produit qu’il commande et si c’est le cas
porter les répercussions sur le prix de ce produit.
L’idéal serait de recharger la page avant validation définitive du panier et d’afficher la réduction réalisée en euros, le nouveau prix ainsi que le %
économisé entre le prix de base et le nouveau prix réduit calculé.
C’est seulement après avoir accepté les CGV et avoir payé qu’une occurrence se crée dans les tables commandes et details_commandes.
C’est également à ce moment-là que l’état du produit passe à 1 pour cet id de produit dans la table produit. (0 correspond à « réservable » donc «
disponible », 1 correspond à « réserver » et par conséquent « n’étant plus disponible »).
Logiquement ce produit à présent payé ne doit plus apparaître dans les produits « réservables » sur les pages suivantes : « index.php » - «
reservation.php » - « reservation_details.php » - « recherche.php »
Après avoir payé, le membre connecté reçoit un email de confirmation lui indiquant son numéro de commande et en pièce jointe le récapitulatif du produit
acheté sur une facture générée au format PDF (cette facture devra également être consultable sur l’espace profil du membre).
03 Exercice 7.2 : Les pages web côté BACK
Description :
2 correspond au menu quand un administrateur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous
sommes dans le cas administrateur.
3 , Les deux liens pointent sur la même page : « gestion_salles.php » et déclenchent une action.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3.1 , dans cette zone nous avons un premier lien, si l’administrateur clique sur « ajouter une salle » un formulaire apparaît en dessous et il doit pouvoir
entrer des informations pour ajouter une salle (ces informations sont ensuite sauvegardées dans la table salle).
3.2 , nous avons également un second lien, si l’administrateur clique dessus « affichage des salles » il doit pouvoir observer toutes les salles dont il
dispose (il s’agit du contenu de la table salle).
Suite à cet affichage, il pourra modifier une salle existante si l’administrateur le souhaite en cliquant sur un lien « modification », lors de cette action, il
doit retrouver toutes les valeurs actuelles de la salle qu’il s’apprête à changer dans le formulaire de modification affiché.
Nous lui donnerons également la possibilité de supprimer une salle avec toutes les conséquences que cela implique.
3 , Les deux liens pointent sur la même page : « gestion_produits.php » et déclenchent une action.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3, dans cette zone nous avons un premier lien, si l’administrateur clique sur « ajouter un produit » un formulaire apparaît en dessous et il doit pouvoir
entrer des informations pour ajouter un produit (ces informations sont ensuite sauvegardées dans la table produit).
Voici un exemple du formulaire attendu :
Suite à la validation de ce formulaire, il faudra donc lancer une insertion dans la table produit afin que les deux (produits et salles) soient bien reliés.
Attention : une salle peut être associée à plusieurs produits à la fois.
Exemple :
Une salle est donc susceptible d’appartenir à plusieurs produits. En revanche chaque produit est unique.
3, nous avons également un second lien, si l’administrateur clique dessus « affichage des produits » il doit pouvoir observer tous les produits dont il
dispose (il s’agit du contenu de la table produit).
De plus, il doit pouvoir cliquer sur les entêtes suivantes : « date_arrivee » – « date_depart » ou encore l’entête « prix » afin d’afficher les produits dans
l’ordre croissant/décroissant des prix.
L’administrateur doit aussi pouvoir modifier et supprimer ses produits.
Description :
3 correspond à l’affichage des membres du site.
4 correspond à l’affichage d’un nouveau formulaire d’inscription.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3 , nous avons l’affichage des membres (il s’agit du contenu de la table membres).
Pour chaque membre, l’administrateur dispose d’un lien sous forme d’une croix représentée par un « X » qui peut lui permettre de supprimer le compte d’un
membre.
4 , L’administrateur à la possibilité de créer un nouveau compte « administrateur » à l’un de ses collaborateurs. En cliquant sur ce lien, un formulaire
d’inscription apparaît afin qu’il puisse rentrer les informations qui permettront de créer ce nouveau compte.
3 , nous avons l’affichage des commandes (il s’agit du contenu de la table commandes).
Nous affichons à titre informatif le chiffre d’affaires (CA).
Les données sous la colonne « id_commande » sont sous forme de lien cliquable et permettent d’afficher le détail d’une commande (sur la même page).
Exemple :
Description :
3 correspond à l’affichage des avis laissés sur le site.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3 , nous avons l’affichage des avis laissés sur le site (il s’agit du contenu de la table avis).
Pour chaque avis, l’administrateur dispose d’un lien sous forme d’une croix représentée par un « X » qui peut lui permettre de supprimer l’avis d’un membre
s’il le juge incorrect.
Description :
2 correspond au menu quand un administrateur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous
sommes dans le cas administrateur.
3, Les deux liens pointent sur la même page : « gestion_promos.php » et déclenchent une action.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3, dans cette zone nous avons un premier lien, si l’administrateur clique sur « ajouter un code promo » un formulaire apparaît en dessous et il doit
pouvoir entrer des informations pour ajouter un code promo (ces informations sont ensuite sauvegardées dans la table promotions).
3, nous avons également un second lien, si l’administrateur clique dessus « affichage des codes promo » il doit pouvoir observer tous les codes promo
dont il dispose (il s’agit du contenu de la table promotions).
L’administrateur doit également pouvoir supprimer des codes de promotion (il faudra alors porter une attention particulière aux produits qui y sont
éventuellement associés).
L’administrateur enverra les codes de promotion qu’il souhaite diffuser lors de l’envoi de la newsletter.
Description :
2 correspond au menu quand un administrateur arrive (attention il est évolutif suivant l’internaute : visiteur, membre, administrateur). Ci-dessus nous
sommes dans le cas administrateur.
3 , Les trois liens pointent sur la même page : « statistiques.php » et déclenchent une action.
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3 , dans cette zone nous avons trois liens permettant à l’administrateur d’avoir des statistiques selon les différentes informations qu’il demande.
L’affichage des résultats doit se faire sur la même page.
Description :
3 correspond à l’affichage du formulaire d’envoi d’email
Recommandations :
Cette page n’est disponible que si l’on est administrateur (vous devez penser à verrouiller l’accès dans tous les autres cas).
3 , Nous pouvons choisir un message et ce message doit s’envoyer à l’ensemble des membres « abonné » à la newsletter (autrement dit, il faut faire une
correspondance entre la table newsletter, et la table membres).
salle
- id_salle (int 5) PK - AI
- pays (varchar 20)
- ville (varchar 20)
- adresse (text)
- cp (varchar 5)
- titre (varchar 200)
- description (text)
- photo (varchar 200)
- capacite (int 3)
- categorie (enum)
produit
- id_produit (int 5) PK - AI
- date_arrivee (datetime)
- date_depart (datetime)
- id_salle (int 5)
- id_promo (int 2)
- prix(int 5)
- etat (int 1)
promotion
- id_promo (int 2) PK - AI
- code_promo (varchar 6)
- reduction (int 5)
membre
- id_membre (int 5) PK - AI
- pseudo (varchar 15)
- mdp (varchar 32)
- nom (varchar 20)
- prenom (varchar 20)
- email (varchar 30)
- sexe (enum : m,f)
- ville (varchar 20)
- cp (INT 5)
- adresse (varchar 30)
- statut (int 1)
avis
- id_avis (int 5) PK - AI
- id_membre (int 5)
- id_salle (int 5)
- commentaire (text)
- note (int 2)
- date (datetime)
commande
- id_commande (int 6) PK - AI
- montant (int 5)
- id_membre (int 5)
- date (datetime)
details_commande
- id_details_commande (int 6) PK - AI
- id_commande (int 6)
- id_produit (int 5)
newsletter
- id_newsletter (int 5) PK - AI
- id_membre (int 5)
© Copyright Aucune reproduction, même partielle (textes, documents, images, etc.), ne peut être faite sans l'accord de son auteur.
Liam TARDIEU
Liam TARDIEU
EVOGUE.fr - EPROJET.fr