Thomas LETELLIER. BTS Informatique de Gestion Option Développeur d Application



Documents pareils
CREATION WEB DYNAMIQUE

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

TP JAVASCRIPT OMI4 TP5 SRC

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

SUPPORT DE COURS / PHP PARTIE 3

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

PHP 5. La base de données MySql. A. Belaïd 1

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

En date du 11 décembre 2008

Sage CRM. 7.2 Guide de Portail Client

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

RÉALISATION D UN SITE DE RENCONTRE

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

KWISATZ MODULE PRESTASHOP

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Association UNIFORES 23, Rue du Cercler LIMOGES

OFFRE DE SERVICE.

Dossier I Découverte de Base d Open Office

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Le stockage local de données en HTML5

Guide de configuration de SQL Server pour BusinessObjects Planning

Pratique et administration des systèmes

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Bureautique Initiation Excel-Powerpoint

Notes de cours : bases de données distribuées et repliquées

STATISTICA Version 12 : Instructions d'installation

Cyberclasse L'interface web pas à pas

TP Contraintes - Triggers

AGRÉGATION «ÉCONOMIE ET GESTION»

COMMENT FAIRE DU E-COMMERCE?

Maarch V1.4

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Installation 4D. Configuration requise Installation et activation

Rapport journalier. Le stage va se découper en 2 parties : 3 premières semaines :

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Armand PY-PATINEC 2010

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Historisation des données

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Manuel d Administration

Le modèle de données

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Stockage du fichier dans une table mysql:

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Application web de gestion de comptes en banques

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Modules ICI relais & EXAPAQ Predict v4.0

Baccalauréat technologique Série : sciences et technologies du management et de la gestion (STMG)

Présentation du Framework BootstrapTwitter

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Serveur Hôte : Serveur physique configuré et administré par GROUPE PULSEHEBERG.

Solution informatique pour l accueil, le suivi et l accompagnement de l usager. DOCUMENT DE FORMATION «Volet administratif»

CAHIER DES CHARGES DE REALISATION DE SITE INTERNET

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Guide d utilisation «Extranet Formation» V3.5

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

PROJET DE PORTAIL INTRANET YNNA

Mettre à jour PrestaShop

Compte-rendu de projet de Système de gestion de base de données

1 Position du problème

DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran

Progiciel K. Parce que chaque K est unique (c) K-all

Manuel utilisateur du logiciel PrestaConnect.

Espace de travail collaboratif

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Groupe Eyrolles, 2003, ISBN : X

Les bases de données

Installation 4D. Configuration requise Installation et activation

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Rapports d activités et financiers par Internet. Manuel Utilisateur

Configuration requise

Configuration matérielle et logicielle requise et prérequis de formation pour le SYGADE 6

contact@nqicorp.com - Web :

Foire aux Questions Note: Les réponses aux questions correspondent à la version Mise en route

Gestion de base de données

Outil de gestion et de suivi des projets

Utiliser le site learningapps.org pour créer des activités interactives

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

CAHIER DES CHARGES CREATION / AMELIORATION SITE INTERNET

Préconisations Techniques & Installation de Gestimum ERP

LE MODELE CONCEPTUEL DE DONNEES

COMMENT LIRE UN DEVIS DE CREATION DE SITE WEB?

Rapport De Stage 28 mai au 27 juin Intégration Web Création de site vitrine (SGC)

Une ergonomie intuitive

Dispositif e-learning déployé sur les postes de travail

Transcription:

Thomas LETELLIER BTS Informatique de Gestion Option Développeur d Application

SOMMAIRE I - Présentation de l'entreprise : Leasecom 2 A/ Historique et activité 2 B/ Structure de l entreprise : 2 C/ Partenaires sociaux et économiques 3 D/Perspectives 3 II - Etude de l existant 3 A/ Présentation du système de l'agence de Fresnes (ReMarketing) : 3 1/Avantages 3 2/Inconvénients 3 B/ Domaine de gestion 4 C/ Domaine d'études 4 1/Sujet : création d un site marchand 4 2/Elaboration du cahier des charges 4 3/Solution préconisée : 4 III - Etude détaillée 5 A/ Phase conceptuelle de données 5 1/Elaboration du dictionnaire de données : 5 2/Modélisation des données : 6 a/principales règles de gestion : 6 b/ le MCD : modèle conceptuel de données 7 c/le MLDR : modèle logique de données relationnelles 7 d/ Réalisation de scripts SQL 8 B/ Phase conceptuelle de traitement 10 1/ MCT : Modèle Conceptuel de traitements 10 2/ DET : diagramme d'état de transition 11 IV - Etude fonctionnelle 12 A/ Maquettage de l'application 12 1/ DCU : le diagramme de cas d utilisation 12 2/Interfaces 13 3/Extraits du code source : 14 B/ Déploiement de l'application. 18 1/ Choix de l'hébergement 18 2/ Schéma de déploiement physique 18 V - Conclusion générale 19 A/ Bilan de l'application 19 B/ Acquisition et bilan personnel 19 Lexique 20 1

I - PRÉSENTATION DE L'ENTREPRISE : LEASECOM A/ HISTORIQUE ET ACTIVIT É Leasecom, fondée en 1984 est un spécialiste des solutions locatives pour les équipements professionnels, la société gère les réseaux intelligents (informatique, bureautique et téléphonie) de plus de 12 000 entreprises et 2500 comptes publics. En 2010, Leasecom devient une filiale du Crédit Mutuel Arkéa en vendant 95% du capital à la banque. L'objectif de la société : développer et apporter aux partenaires revendeurs et aux clients des solutions de location financière évolutive et de location longue durée adaptées. L entreprise est divisée en trois branches locatives : - Leasecom technology : matériels informatiques, télécom et bureautiques. - Leasecom car : vehicules d entreprises. - Leasecom equipement : équipements électroniques, industriels et médicaux. B/ STRUCTURE DE L ENTREPRISE : Leasecom emploie 200 employés dans dix agences. Une de ses agences s occupe du remarketing (l'agence de Fresnes), c'est-à-dire la gestion des matériels de retour de location. Les employés s occupent du tri (matériel vendable ou mis au recyclage). C'est à Fresnes en tant que technicien que j'ai effectué une partie de ma formation. 2

C/ PARTENAIRES SOCIAUX ET ÉCONOMIQUES Fin 2010, le chiffre d'affaire de Leasecom était de 120 millions, il a été multiplié par 10 en 10 ans. La société gérait 36 000 contrats de locations pour un parc valant 375 millions. Leasecom compte 30 000 clients parmi lesquels se trouvent : Air Fance, Sanofi Aventis, Auchan, EDF, Saint-Gobain, AXA, Groupama. Les principaux intérêts de Leasecom se trouvent en France, la société ne possède aucun marché international. D/PERSPECTIVES Leasecom fait partie du projet 'HORIZONS 2015', un projet d'avenir du Groupe Crédit Mutuel Arkéa qui se divise en 4 axes: -Défendre sa position dans le domaine bancaire et des assurances. -Développement des activités en ligne (la banque en ligne Fortuneo par exemple). -Renforcement du Groupe sur le marché des entreprises et des institutionnels. -Ouvrir le Groupe à de nouveaux métiers par le biais de nouveaux partenaires (exemple : acquisition de Monext acteur important des flux monétiques). II - ETUDE DE L EXISTANT A/ PRÉSENTATION DU SYSTÈME DE L'AGENCE DE FRESNES (REMARKETING) : Les commerciaux de l'agence de Fresnes possèdent deux moyens de ventes en ligne pour proposer leurs produits informatiques de seconde main : -Un compte ebay. -Un site marchand réservé aux professionnels. Un moyen par commercial. Leurs portées de vente en ligne est donc limitée. 1/A VAN TAGES Un compte Ebay est simple à gérer, cela demande aucun projet de développement, l autre site marchand est déjà en place, et fonctionne. Le stock où se trouvent le matériel vendu à l'agence de Fresnes, est sous les bureaux des commerciaux ce qui facilite la communication et la réactivité, pour modification ou changement de quantité à mettre jour en ligne. 2/IN CON VÉNIEN TS Un compte Ebay n'est pas bien référencer sur les moteurs de recherche, la modularité est basique, la concurrence est présente sur le même site, les frais associés représentent un certain coût, le principe des enchères n'est pas forcément adapté au ReMarketing. 3

Le site marchand en plus d'être vieillissant, n est disponible qu aux professionnels, qui doivent être enregistrés en tant que partenaires Leasecom, avec n de SIREN. C'est une marche à suivre pas forcément évidente. Donc l agence se prive d une part de marché en excluant les particuliers. De plus, ce site marchand n est réservé qu à un seul commercial. Le directeur de l'agence a accordé à l autre commercial de gérer un site marchand autonome possédant un nom de domaine propre au site : lebroke.fr. B/ DOMAINE DE GESTION J'ai pu évoluer au sein de Leasecom en rejoignant le service développement au siège social à Paris, mon rôle a été de concevoir et développer lebroke.fr en étant entouré d'une demi douzaine de développeurs qui s'occupaient des applications internes à la société. C/ DOMAINE D'ÉTUDES 1/S UJE T : CRÉ ATION D UN SITE MARCHAND Le commercial concerné désire la mise en place d'un site ecommerce classique spécialisé dans la revente de matériels informatiques de seconde main (unité centrale, ordinateur portable, serveur, écran, imprimante, etc) avec un panier virtuel, un espace personnel dédié au client, et un backoffice simple pour qui puisse lui-même modifier ses produits, consulter les ventes et les commandes. 2/ELABORATI ON D U CAHIE R DES CH ARGES Réaliser une interface utilisateur : -Consultation des articles : par catégorie, par recherche, par affichage aléatoire. -Gestion d un panier virtuel : ajout d articles, modification des quantités, suppression, sauvegarde du panier. -Gestion d un espace personnel dédié au client : ajout d adresses, modifications de informations personnelles, consultation des commandes et leurs statuts. Une partie administration (backoffice) pour le commercial : -Gestion simplifiée des articles : ajout, modification, suppression, désactivation. -Gestion des commandes : consultation (par client ou globale). -Gestion des clients : consultation. -Historique des ventes : top 10 des produits vendus globalement et par catégorie. 3/SOL UTI ON PRÉ CONI SÉE : Le développement du site se fera en PHP avec interaction avec une base de donnée MySQL, en local pour le développement sur un serveur Xampp(X Apache MySQL Perl PHP) puis achat d un nom de domaine et déploiement sur les serveurs hébergés d' OVH. 4

III - ETUDE DÉTAILLÉE A/ PHASE CONCEPTUELLE DE DONNÉES 1/ELABORATI ON D U D ICTIO NN AI RE DE DONN ÉES : Grâce au cahier des charges et aux entretiens avec les commerciaux, les données suivantes sont collectées. Client Nom du champ type Taille Identifiant Désignation Id_client Int 6 Oui Identifiant du client Nom varchar 50 Non Nom du client Prenom varchar 50 Non Prénom du client Civilite varchar 4 Non Civilité : M, Mme, Mlle Email varchar 50 Non Email du client Mdp varchar 32 Non Mot de passe chiffré en MD5 Tel varchar 20 Non Téléphone du client Type_du_client varchar 32 Non Particulier ou professionnel Date_ajout Date 3 Non Date 1 ère inscription Date_modif Date 3 Non Date de modification des infos Nom_entreprise Varchar 50 Non Si particulier libellé entreprise Mdp_tmp Varchar 32 Non En cas d'oubli de mot de passe, on stocke un mot de passe temporaire Panier_sauv text 500 Non Sauvegarde du panier virtuel sous forme d une chaine de caractères Adresse Nom du champ type Taille Identifiant Désignation Code_adresse Int 6 Oui Identifiant de l adresse Id_client Int 6 Non Id du client lié à l adresse Nom_adresse varchar 50 Non Nom lié à l adresse prenom_adresse varchar 50 Non Prénom lié à l adresse societe_adresse varchar 50 Non Société lié à l adresse Nature_adresse varchar 50 Non Facturation, livraison ou les 2 Rue varchar 50 Non N + rue de l adresse CP varchar 10 Non Code postal de l adresse Ville varchar 50 Non Ville de l adresse Pays varchar 50 Non Pays de l adresse Commande Nom du champ type Taille Identifiant Désignation Id_commande Int 6 Oui Identifiant de la commande Id_client Int 6 Non Id du client lié la commande Date_commande Date 3 Non Date de la commande Etat_commande varchar 50 Non Etat : validée, payé, en préparation Ca_client Int 6 Non Code adresse du client lié à la commande Reglement varchar 50 Non Mode de règlement : paypal, CB, chèque Montant float 10,2 Non Montant total de la commande 5

Produit Nom du champ type Taille Identifiant Désignation Id_materiel Int 6 Oui Identifiant du produit Marque varchar 32 Non Marque du produit Modele varchar 32 Non Modèle du produit Reference varchar 32 Non Reference interne à leasecom Prix float 10,2 Non Prix du produit Chemin_IMG varchar 150 Non Adresse de l image correspondant au produit dans les répertoires du site. Quantite Int 6 Non Quantité en stock du produit description Text 500 Non Spécifications techniques du produit Taille_ecran Float 5,1 Non Taille de la dalle en pouces Techno_ecran varchar 32 Non Ecran LCD, LED, CRT Type_ecran varchar 32 Non Type écran 16/9, 4/3 Type_imprimante varchar 32 Non Type d imprimante : laser, jet d encre, traceur Compteur_imprimante Int 10 Non Nombre de copies imprimées Taille_ecran_ordi_portable Float 5,1 Non Taille de la dalle en pouces Processeur varchar 32 Non Type de processeur : marque, nombre de cœurs, fréquence en GHz Ram Float 10,2 Non Taille de la mémoire vive en Mo Disque_dur Float 10,2 Non Taille des disques en Mo Carte_raid_serveur Int 6 Non Nombre de cartes RAID Licence_serveur Varchar 32 Non Type et libellé de licence Hdd_hotplug_serveur Int 3 Non Nombre de disques durs branchable à chaud Ligne de commande Nom du champ type Taille Identifiant Désignation Id_LC Int 6 Oui Identifiant de la ligne de commande Id_commande Int 6 Non Id de la commande Id_materiel Int 6 Non Id du produit commandé Quantite Int 6 Non Quantité du produit commandé 2/MODÉLIS ATION DES DONN ÉES : A/P RINCIPALES R ÈGLES DE GESTION : -Un client peut passer une ou plusieurs commandes. -Un client doit avoir une adresse postale pour passer commande, il est indispensable de connaître son adresse email, son adresse postale, son nom, son prénom, son téléphone et s'il s'agit d'un particulier ou d'un professionnel. L'adresse email est l'information la plus importante car elle est le lien de communication avec le client (perte de mot de passe, confirmation de commandes) en plus de servir d'identifiant pour sa connexion au site. -Un client possède une ou plusieurs adresses mais une adresse appartient à un seul client.-une commande est composée d une ou de plusieurs lignes de commande, une ligne de commande appartient à une seule commande. 6

B/ LE MCD : MO DÈLE CONCEP TUEL DE DONN ÉES Voici le MCD, ou appelé aussi schéma entité association, qui permet de visualiser les entités, leurs attributs et leurs relations. C/ LE MLDR : MO DÈLE LO GIQUE DE DONN ÉES RELATIONNELL ES Le MLDR est une description de la base de données qui va être crée, il découle du MCD. CLIENT(ID_CLIENT, NOM, PRENOM, CIVILITE, EMAIL, MDP, TEL, TYPE_DU_CLIENT, DATE_AJOUT, DATE_MODIF, NOM_ENTREPRISE, MDP_TEMP, PANIER_SAUV) H_CLIENT(ID_CLIENT, DATE_HISTO, NOM, PRENOM, CIVILITE, EMAIL, MDP, TEL, TYPE_DU_CLIENT, DATE_AJOUT, DATE_MODIF, NOM_ENTREPRISE, MDP_TEMP, PANIER_SAUV) ADRESSE(CODE_ADRESSE, RUE, CP, VILLE, PAYS, NOM_ADRESSE, PRENOM_ADRESSE, NATURE_ADRESSE, #ID_CLIENT) COMMANDE_EN_LIGNE(ID_COMMANDE, DATE_COMMANDE, ETAT_COMMANDE, CA_CLIENT, REGLEMENT, MONTANT, #ID_CLIENT) H_COMMANDE_EN_LIGNE(ID_COMMANDE, DATE_HISTO, DATE_COMMANDE, ETAT_COMMANDE, CA_CLIENT, REGLEMENT, MONTANT, #ID_CLIENT) LIGNECOMMANDE(#ID_COMMANDE, #ID_MATERIEL, QUANTITE) 7

MATERIEL(ID_MATERIEL, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) DIVERS(ID_MATERIEL, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) ECRAN(ID_MATERIEL, TAILLE, TECHNOLOGIE, TYPE, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) IMPRIMANTE(ID_MATERIEL,TYPE, COMPTEUR, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) MACHINE (ID_MATERIEL, PROCESSEUR, RAM, DISQUE_DUR, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) ORDI_PORTABLE(ID_MATERIEL, TAILLE_ECRAN, PROCESSEUR, RAM, DISQUE_DUR, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) SERVEUR(ID_MATERIEL, LICENCE, CARTE_RAID, HDD_HOTPLUG, PROCESSEUR, RAM, DISQUE_DUR, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) UNITE_CENTRALE (ID_MATERIEL, PROCESSEUR, RAM, DISQUE_DUR, MARQUE, MODELE, REFERENCE, PRIX, DESCRIPTION, CHEMIN_IMG, QUANTITE) D/ R ÉALISATION DE S CRIPT S SQL Un trigger est une procédure événementielle SQL déclenchée par un ou plusieurs événements lié(s) à la mise à jour d'une base de données (ajout, modification, suppression). L'exécution d'un trigger est automatique. Le MCD possède 2 tables historisables (CLIENT et COMMANDE_EN_LIGNE) et une contrainte d'inclusion Donc mise en place de 4 triggers: -Un trigger d'archivage pour les clients, après suppression d'une ou plusieurs lignes dans la table 'client', cette ou ces lignes sont archivés dans la table 'H_client'. -Un autre trigger d'archivage pour les clients, en cas de modification d'une des lignes de la table 'client', on stocke l'ancienne information dans la table 'H_client' (exemple : un client modifie ses informations, le commercial a accès à l'information avant et après modification). -Un trigger d'archivage pour les commandes, après suppression d'une ou plusieurs lignes dans la table 'COMMANDE_EN_LIGNE', on stock la commande concernée dans 'H_COMMANDE_EN_LIGNE' à la date d'historisation avec changement de l'état de la commande qui devient 'ARCHIVÉ'. -Un dernier trigger qui vérifie la contrainte d'inclusion entre les associations localiser et passer commande (le client doit avoir une adresse postale pour passer commande). 8

-- trigger d'archivage pour les commandes après suppression dans la table 'commande_en_ligne' delimiter // CREATE TRIGGER histocom AFTER DELETE ON commande_en_ligne FOR EACH ROW BEGIN INSERT INTO H_commande_en_ligne VALUES (old.id_commande, curdate(), old.date_commande, 'ARCHIVE', old.ca_client, old.reglement, old.montant) END; // delimiter ; -- trigger d'archivage pour les clients après modification dans la table 'client' pour conserver l'ancienne information delimiter // CREATE TRIGGER modifcli AFTER UPDATE ON client FOR EACH ROW BEGIN INSERT INTO H_client VALUES (old.id_client, curdate(), old.nom, old.prenom, old.civilite, old.email, old.mdp, old.tel, old.type_du_client, old.date_ajout, old.date_modif, old.nom_entreprise, old.mdp_temp, old.panier_sauv); END; // delimiter ; -- trigger d'archivage pour les clients après suppression dans la table 'client' delimiter // CREATE TRIGGER histocli AFTER DELETE ON client FOR EACH ROW BEGIN INSERT INTO H_client VALUES (old.id_client, curdate(), old.nom, old.prenom, old.civilite, old.email, old.mdp, old.tel, old.type_du_client, old.date_ajout, old.date_modif, old.nom_entreprise, old.mdp_temp, old.panier_sauv); END; // delimiter ; -- trigger de vérification pour les commandes avant insertion dans la table 'commande_en_ligne' delimiter // CREATE TRIGGER VerifCodeAd BEFORE INSERT ON commande_en_ligne FOR EACH ROW BEGIN DECLARE cpt int; SELECT COUNT(*) INTO cpt FROM client, adresse WHERE client.id_client = adresse.id_client AND client.id_client = new.id_client; IF cpt=0 THEN DELETE FROM commande_en_ligne WHERE new.id_commande AND new.date_commande AND new.etat_commande AND new.ca_client AND new.reglement AND new.montant; END IF; END; // delimiter ; 9

B/ PHASE CONCEPTUELLE DE TRAITEMENT 1/ MCT : MODÈLE CONCE PTUEL DE TRAI TE M ENTS Le MCT énumère les différentes opérations causées par des événements et des acteurs, de l' inscription du client par un formulaire, de sa connexion, de sa validation du panier, jusqu'au paiement de la commande. 10

2/ DET : DI AGRAMME D'É TAT DE TRANSI TI ON le DET spécifie les états d'un objet au cours du cycle d'utilisation de l'application. Ici, on décrit l'état d'un client depuis son inscription jusqu'à la livraison du client. 11

IV - ETUDE FONCTIONNELLE A/ MAQUETTAGE DE L'APPLICATION 1/ DCU : LE DIAGRAM ME DE CAS D UTILIS ATION LE DCU représente les différents acteurs qui vont interagir avec le système et leurs contraintes vis-à-vis de l'application. Ce diagramme reflète les 3 interfaces : -Une interface pour le client prospect (visiteur non inscrit donc non connecté). -Une interface pour le client connecté donc inscrit. -Une interface pour le commercial (authentification requise). 12

Interface client : 2/IN TE RFACES La structure du site est simple : -Une page d accueil avec des produits choisis aléatoirement. -Une page par catégorie contenant tous les produit de ladite catégorie. -Un espace personnel pour le client. -Une page par article sélectionné : 13

Interface d administration simplifiée: Le commercial y accède par l onglet : qui s ajoute à la barre de menu précédemment vue. Cet onglet apparait seulement si le commercial se connecte. Le but de ce backoffice est d être utilisé simplement par un commercial qui n a pas des connaissances informatiques poussées. Il doit pouvoir : -Ajouter, modifier ou supprimer des produits de façon autonome. -Avoir une vue des tous les clients en un clique avec les commandes par client. -Disposer d informations comme le top 10 des produits globaux et par catégorie. 3/EXTRAI TS D U CODE SOUR CE : fonction qui affiche tous les produits de la catégorie rentrée en paramètre function afficherarticle($categorie) { $req = "SELECT * FROM $categorie"; $res = mysql_query($req) or die(mysql_error()); while($tab = mysql_fetch_assoc($res)) { if($tab['quantite'] == 0) $Affichprix = "<font color='red'>produit indisponible</font>"; else $Affichprix = $tab['prix'].' '; echo ' <div class="article"> <div class="img"> <div class="marqueetmodel">'.$tab['marque'].' '.$tab['modele'].'<div class="prix">'.$affichprix.'</div> </div> <a href="select_article.php?id='.$tab['id_materiel'].'&cat='.$categorie.'"> <img src='.$tab['chemin_img'].'> </a> </div> </div>'; } } 14

Résultat : On vérifie si l'email n'existe pas en BDD pour valider le formulaire function AntiDoublonEmail($inscrEmail) { $req = "select EMAIL from client where EMAIL = '$inscremail';"; $res = mysql_query($req); $tabmail = mysql_fetch_assoc($res); if(empty($tabmail)) return false; else return true; } Verification en JavaScript de la validité d'une adresse email function VerifEmail(champ) { var reg = new RegExp('^[a-z0-9]+([_ \. -]{1}[a-z0-9]+)*@[a-z0-9]+([_ \. -]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$','i'); if(champ.value) { if(reg.test(champ.value)) { surligne(champ,false); document.getelementbyid('mail').innerhtml=" "; return true; } else { surligne(champ,true); document.getelementbyid('mail').innerhtml="email invalide"; return false; } } } 15

Fonction qui affiche les dix produits les plus vendus de la catégorie rentrée en paramètre function Top10Cat($categorie) { $reqtop10 = "SELECT ID_MATERIEL, CAT_MATERIEL, COUNT( * ) AS nb_repet FROM lignecommande WHERE CAT_MATERIEL = '$categorie' GROUP BY ID_MATERIEL, CAT_MATERIEL ORDER BY nombre_de_repetition DESC LIMIT 0, 10"; $restop10 = mysql_query($reqtop10) or die (mysql_error()); echo "<table> <tr> <th>icone</th><th>marque</th><th>modele</th><th>reference</th><th>prix</th> <th>qte en stock</th><th>nombre de ventes</th> </tr>"; while($tabtop10 = mysql_fetch_assoc($restop10)) { $cat = $tabtop10['cat_materiel']; $idm = $tabtop10['id_materiel']; $nbrepet = $tabtop10['nombre_de_repetition']; $requ = "select * from $cat where ID_MATERIEL = $idm"; $requ = mysql_query($requ) or die (mysql_error()); $tabu = mysql_fetch_assoc($requ); echo "<tr> <td><a href=\"modif_produit.php?id=".$tabu['id_materiel']."&cat=$cat\"><img src='".$tabu['chemin_img']."'width='100' height='100'></a></td> <td>".$tabu['marque']."</td> <td>".$tabu['modele']."</td> <td>".$tabu['reference']."</td> <td>".$tabu['prix']."</td>"; if($tabu['quantite']<3) echo "<td>".$tabu['quantite']."<br><img src='img/icones/warning.png' width='50' height='50'></td>"; else echo "<td>".$tabu['quantite']."</td>"; echo" <td>$nbrepet</td></tr>;} echo "</table>";} 16

La partie la plus difficile à réaliser fut le panier virtuel. Ce panier utilise des variables de sessions liées au client connecté donc un visiteur non connecté ne peut pas remplir de panier. Quelques caractéristiques du panier : -La quantité par défaut est à 1, que l on peut incrémenter avec le bouton +, décrémenter avec le - ou en rentrant directement dans le champ la valeur souhaité si seulement c est un entier positif compris entre 1 et 99 (contrôle de saisie). -On ne peut pas avoir une quantité du produit souhaité supérieure à celle référencée en stock, (contrôle grâce une balise hidden ). -On peut sauvegarder son panier grâce la fonction PHP serialize() qui transforme la structure et le contenu d un tableau PHP en une chaîne de caractères facilement stockable en BDD. -On ne peut pas ajouter le même article dans le panier pour éviter les doublons. -On ne peut pas ajouter un article dans le panier dont la quantité en stock est 0 grâce à la désactivation en JavaScript du bouton Ajouter au panier. (Vérification en PHP dans les pages de paiement et redirection s il y a anomalie). function verifqte() { #fonction en JavaScript var qte = document.getelementbyid('indicqte').value; if(qte == 0){ document.getelementbyid('price').innerhtml="produit INDISPONIBLE"; document.getelementbyid('price').style.color="red"; document.getelementbyid('button_pan').disabled=true; } } 17

Le gros inconvénient de ce système est qu'il ne permet pas aux visiteurs non inscrits de rajouter des produits dans le panier. B/ DÉPLOIEMENT DE L'APPLICATION. 1/ CH OIX DE L'HÉ BERGEMEN T Leasecom, possède ses propres serveurs pour l'hébergement de ses applications (ERP, GED, messagerie, différents SGBD) mais que LeBroke.fr est un site web se rattachant à l'agence de Fresnes, le choix d'un hébergement extérieur à été fait. Donc l'achat du nom de domaine et de l'hébergement se fera sur les serveurs mutualisés de OVH (première hébergeur Français). LeBroke.fr n'est pas destiné à recevoir un trafic important comme les plus gros sites marchand du web (cdiscount, rueducommerce, etc.), le choix s'est porté sur un hébergement classique avec un espace disque suffisant pour des possibles évolutions futures, un espace dédié à la base de données, une bande passante correcte, des technologies supportées classiques du web (PHP, HTML, CSS, JS). Le site n'a pas encore été déployé en réel car il manque certains modules spécifiques comme celui du paiement (FIA-NET, PayPal). Le commerciale concerné par lebroke.fr est revenu sur des détails et voudrait dans le futur ajouter d'autre modules comme la mise en place d'une 'vente flash' (période donnée pendant laquelle un produit spécifique est en promotion) Le site a été testé en interne : c'est la phase d'intégration, c'est à dire qu'aucun acteur externe à Leasecom ne l'a testé : à part des bugs mineurs et des légers problèmes liés au CSS (certaines '<div>' étaient décalées dues à un navigateur obsolète), le commercial était satisfait. Après validation en interne du design et de la disposition du site par le commercial concerné, le site rentrera en phase de production : déployé sur les serveurs D'OVH pour son hébergement final. Là des détails seront à régler (création des adresses emails adéquates, et mise en place du robot de référencement). 2/ SCHÉMA DE DÉ PL OI EMEN T PH YSIQUE Ce schéma explique simplement comment l'application a été déployé en intégration dans un premier temps puis le site sera hébergé les serveurs d'ovh. 18

V - CONCLUSION GÉNÉRALE A/ BILAN DE L'APPLICATION LeBroke.fr sera présent dans le but de fournir au commercial concerné un produit web simple, pour vendre ses produits, possédant un backoffice ergonomique et facile d'utilisation. Le travail réalisé correspond aux demandes du commercial. Mais il reste des parties à régler : -améliorer la compatibilité sur un maximum de navigateurs internet (style et affichage) -développer la page 'contact' trop pauvre. -modifier la page d'accueil : présenter les produits les plus vendus et non pas aléatoirement. B/ ACQUISITION ET BILAN PERSONNEL Après avoir été muté, ce projet m'a beaucoup apporté en termes d'organisation, de conduite de projet et de méthodes de développement web mais il ne suffit pas uniquement de produire du code pour réaliser une application web, il faut également se mettre à la place d'un client ou d'un commercial, faire comprendre ce qu'il est possible de faire, et ce qui ne fait pas partie de nos compétences informatiques. La réalisation de ce projet me conforte dans l'idée de continuer mes études dans ce domaine prometteur et sans arrêt en évolution. 19

LEXIQUE : Mot Acronyme de Définition GED Gestion Electronique des Documents Procédé informatisé visant à organiser et gérer des information et des documents électroniques au sein d'une société. ERP Enterprise Resource Planning Logiciel qui intègre toutes les composantes d'une entreprise : comptabilité, production, RH, gestion commerciale, logistique. SGBD Système de Gestion de Base Données Logiciel système destiné à stocker et partager des informations dans une base de données. CSS Cascading Styling Sheet Langage informatique qui sert à décrire la présentation des documents HTML 20