Création d un site web de vente en ligne 1 Généralités Le projet sera réalisé par binôme. Date limite de remise du projet : 02/02/2007 2 Sujet 2.1 But Développer un site web dynamique permettant la gestion des ventes d un magasin virtuel. Le site distinguera 3 types d utilisateurs : - L administrateur : o Il a accès à toute l application o Il peut visualiser l ensemble des écrans de l application o Il peut gérer les utilisateurs - Les gestionnaires : o Ils accèdent à l administration des produits (ajout / modification / suppression / listing) o Ils accèdent à l administration des groupes de produits o Ils peuvent lire et répondre aux réclamations des clients - Les clients : o Sans être logué à l application, tout «invité» est un client potentiel, et à ce titre peut accéder au catalogue de produits. A ce titre, il peut remplir un panier virtuel de produits en vue d une éventuelle commande. o Si un client non logué souhaite valider sa commande, une phase de login lui sera proposée, s il est déjà client, il dispose d informations d authentification, dans le cas contraire, il faudra prévoir une saisie d un nouveau client. o Une fois logué, il peut réaliser les opérations déjà citées, mais également valider sa commande et accéder à un suivi de sa commande. o D envoyer des réclamations au site Initiation Web dynamique étude de cas Page 1 sur 6
2.2 Accès à l application Un utilisateur non authentifié ne pourra qu accéder au catalogue de produits, et remplir un panier virtuel. Toute opération de commande de produit nécessitera l authentification du client. Une fois logué, un utilisateur du site disposera d un menu lui permettant d accéder aux différentes fonctionnalités de l application. Le menu sera généré en fonction du type d utilisateur connecté. A titre d exemple, le menu d un client ne fera pas apparaître les éléments de menus propres à l administration du site. Chaque page du site devra contrôler que le visiteur a bien le droit d accéder à la ressource qu il demande. Exemple : un utilisateur non logué ne devra pouvoir afficher une page dédiée à l administration des produits. Un utilisateur logué en tant que client ne devra pas pouvoir accéder aux pages réservées à l administrateur. Vous pourrez, par exemple utiliser les variables de session pour gérer l authentification 2.2.1 Arborescence de l application L arborescence des fichiers source de votre application devra être soignée : les pages devront être organisées en sous-dossiers : - Un dossier «administration» contiendra toutes les pages accessibles uniquement aux administrateurs. - Un dossier «gestionnaires» contiendra les pages accessibles uniquement aux gestionnaires. - Un dossier «client» les pages accessibles uniquement au client. Une page nommée index.php (ou default.asp ou index.jsp) sera la page d accueil de votre application, cette page contiendra le formulaire permettant aux utilisateurs de s authentifier. 2.2.2 Choix de la technologie Pour mettre en place ce site web dynamique, vous pourrez utiliser au choix : - ASP - PHP - JSP (simple ou J2EE) Initiation Web dynamique étude de cas Page 2 sur 6
2.2.3 Base de données La base utilisée sera une base MySql. Le script de création de la base de données vous sera fourni pour Mysql version 5.0.27, il peut nécessiter de légères modifications pour fonctionner avec une autre version de Mysql. Pour créer la base de données, il vous suffit de vous connecter en root sur votre base mysql (via phpmyadmin ou en ligne de commande) et d exécuter ce script qui va : - Créer la base pour votre projet (nom de base : lup) - Insérer quelques données - Information MySQL : Il serait judicieux de créer un utilisateur «user_lup» qui n aurait que les droits SELECT/UPDATE/DELETE/INSERT. (NB : dans ce cas, il peut être nécessaire de redémarrer le service mysql afin que l utilisateur qui a été crée soit bien pris en compte). Modèle Physique (accessible sous MySQL Workbench): Initiation Web dynamique étude de cas Page 3 sur 6
3 Fonctionnalités obligatoires 3.1 Partie clients - Un écran permettant d obtenir la liste des produits disponibles (présents dans la base), il n est pas ici question de gérer le stock. - Un écran permettant de s enregistrer (login) ou de créer un nouveau compte (pour les nouveaux clients) - Un écran de recherche de produits : un formulaire permettra de rentrer un critère de recherche (chaîne de caractère simple sans caractères spéciaux), une fois validé, la recherche s opèrera sur le champ «DESCRIPTION_PRODUIT» de la table «PRODUIT». - A partir d une liste de produits, il sera possible, via une icône d ouvrir une fenêtre pop-up de description du produit. - Un écran de visualisation du panier avec validation de ce dernier pour commande - Un écran de validation de commande (affiche la commande puis, sur validation l insère en base de données) 3.2 Partie gestionnaires - Un écran permettant d obtenir la liste des produits disponibles (présents dans la base), il n est pas ici question de gérer le stock. - Un écran permettant de gérer les types de produits (ajout / modification / suppression / listing) - Un écran permettant de gérer les produits (ajout / modification / suppression / listing) - Un écran de recherche de produits : un formulaire permettra de rentrer un critère de recherche (chaîne de caractère simple sans caractères spéciaux), une fois validé, la recherche s opèrera sur le champ «DESCRIPTION_PRODUIT» de la table «PRODUIT». ATTENTION aux règles de gestion : - Impossible de supprimer un produit s il a fait l objet d une commande. 3.3 Partie administrateurs - Un écran permettant d obtenir la liste des utilisateurs. - Un écran de gestion des utilisateurs (ajout / modification / suppression / listing) ATTENTION aux règles de gestion : 1. Un utilisateur ne pourra pas être supprimé s il a passé au moins une commande. 2. Un administrateur ne pourra se supprimer lui-même. 3. Un utilisateur ne pourra donc pas être supprimé s il s agit du dernier administrateur. Initiation Web dynamique étude de cas Page 4 sur 6
4 Fonctionnalités optionnelles 4.1 Partie clients - Les listes de produits pourront évoluer afin de permettre d afficher 20 produits par page. Si le nombre total de titres est supérieur à 20, des liens «page précédente» et «page suivante» devront apparaître en bas de la page afin d obtenir une navigation facilitée. - Une ou plusieurs images d un produit pourraient êtres affichés dans la page de visualisation de produit - Edition des bons de commande au format PDF 4.2 Partie gestionnaires - Une ou plusieurs images d un produit pourraient êtres uploadées par les gestionnaires via la page de création / modification de produits. L image devra alors être stockée dans l arborescence du site, dans un répertoire spécifique à cette fonctionnalité. Le nom du fichier stocké devra correspondre à un modèle précis qui sera justifié dans le rapport à fournir : par exemple : «P_N.ext» où P représente l identifiant du produit, N, le numéro de l image et ext son extension. Le chemin de l image devra être stocké en base dans la table «IMAGE_PRODUIT». - Une page de gestion des réclamations (lister / répondre à un client) - On peut imaginer une page d éditions de statistiques au format PDF (tableaux des 10 meilleures ventes ) Initiation Web dynamique étude de cas Page 5 sur 6
5 Travail à réaliser Il est nécessaire de réaliser toutes les pages décrites comme obligatoires. Tous les contrôles nécessaires à un bon fonctionnement doivent être effectués dans l application. Selon le langage utilisé, la saisie d apostrophe ou de guillemets dans les formulaires peut provoquer des erreurs, ces erreurs doivent être gérées. La navigation au sein de l application doit être soignée et simple : un utilisateur doit toujours pouvoir naviguer facilement dans le site, il ne doit jamais se retrouver sur une page sans moyen simple de retour à la page précédente et/ou à la racine du site. Le code source des pages dynamiques doit être clairement documenté et indenté. Réalisation d un compte rendu : Une fois l application réalisée et fonctionnelle, un compte rendu devra être effectué. Les choix effectués lors du développement de cette application devront être expliqués o si vous avez utilisé des composants supplémentaires pour la réalisation de cette application, le choix de ces composants ainsi que leur mode d installation devra être expliqué. o Des copies d écran visant à montrer le fonctionnement de votre application devront êtres présentes dans le compte rendu, avec pour chacune, toutes les explications que vous jugerez nécessaires. (Inutile de faire un compte rendu avec 200 copies d écran sans commentaire!). Le rapport sera remis au format papier un CD sera également remis avec le rapport papier. o Ce CD contiendra les sources de l application, un export de votre base Mysql en fichier texte (cet export devra comprendre la structure de votre base ainsi que les données, cet export pourra être réalisé en utilisant phpmyadmin ou en ligne de commande, ou encore avec l outil de sauvegarde de MySQL Administrator). o Ce CD devra également comprendre tous les composants supplémentaires que vous avez utilisés lors du développement, ainsi qu une procédure d installation pour chacun de ces composants. Initiation Web dynamique étude de cas Page 6 sur 6