Académique Documents
Professionnel Documents
Culture Documents
Rapport technique
du site de covoiturage Etucovoiturage
version 1.0
Référence : rapport_technique.pdf
Sommaire
1. OBJECTIF DU DOCUMENT......................................................................................3
1.1. OBJECTIF ...........................................................................................................3
1.2. CONTEXTE ..........................................................................................................3
1.3. MODE OPERATOIRE DU SITE ...................................................................................3
1.4. CHOIX DU LANGAGE ..............................................................................................4
2. ARCHITECTURE DE L'OUTIL ....................................................................................5
2.1. UTILISATEURS ......................................................................................................5
2.2. ADMINISTRATEUR .................................................................................................7
3. MODELE DE DONNEES ...........................................................................................8
3.1. STRUCTURATION DES DONNEES ..............................................................................9
3.2. LE MODELE CONCEPTUEL DE DONNEES ....................................................................10
3.3. LE MODELE LOGIQUE DE DONNEES .........................................................................11
4. SCENARIO D’EXECUTION .....................................................................................12
4.1. RECHERCHER UN TRAJET ......................................................................................14
4.2. PUBLIER UN TRAJET .............................................................................................14
4.3. MON PROFIL ....................................................................................................16
4.4. MES MESSAGES .................................................................................................17
4.5. MES ANNONCES ................................................................................................17
4.6. MES RESERVATIONS ............................................................................................17
5. LIMITATIONS ET PERSPECTIVES ...........................................................................18
5.1. LES LIMITATIONS ................................................................................................18
5.2. LES ELEMENTS MARQUANT DU SITE ........................................................................18
5.3. LES PERSPECTIVES ..............................................................................................18
1. Objectif du document
1.1. Objectif :
1.2. Contexte :
Ecologique, économique et convivial, le covoiturage fait beaucoup parler de lui pour lutter
contre les engorgements des villes, la pollution, ou bien encore pour pallier aux grèves de
transports.
Contre l'engorgement des villes : Moins de véhicules dans les agglomérations, c'est
aussi plus de place de stationnement, moins de nuisance sonore, plus de sécurité, un
temps de déplacement plus court (une diminution de trafic de 2% apporte une
amélioration de 8% sur la durée du trajet).
Contre la pollution : Lors des pics de pollution, le covoiturage devient une solution
évidente.
Dans les zones rurales : Le covoiturage peut également apporter des services dans les
déplacements, notamment dans les zones peu ou pas desservies par les transports
en commun.
Des passagers : ceux qui souhaitent partager un véhicule le temps d'un voyage
déterminé.
La programmation n'est pas une tâche facile, elle exige beaucoup de sacrifices, de la
patience, de la gymnastique de l'esprit ainsi que les aptitudes et attitudes de bien raisonner
pour arriver à réaliser un bon programme à des fins utiles.
Le PHP est à l’origine un langage purement destiné au web. Contrairement à Java et à Dot
Net dont les codes sont d’abord précompilés puis s’exécutent sur une machine virtuelle,
le PHP est interprété par le serveur sur lequel il s’exécute. Un même code PHP est donc
capable de s’exécuter sur n’importe quel serveur, mais il n’est pas « optimisé ». Le serveur
réalise cette opération à la première utilisation de l’application. Concrètement, le PHP
cumule deux avantages majeurs :
Il apparaît que le PHP est bien plus performant que JAVA. Bertrand Bigay PDG de
Cityvox, explique que Le Monde et TF1 ont adopté le PHP. Comparant les applications
de gestion de contenu « ils ont calculé qu’une page s’affiche douze fois plus vite
en PHP » !
L’autre force de PHP c’est WAMP (MAMP ou XAMPP) incluant 4 composants libres
suffisant pour bénéficier d’un serveur.
Quant à la base de données MySQL, elle est devenue la base de données open source la plus
populaire au monde grâce à sa haute performance, sa fiabilité et sa simplicité d'utilisation.
Beaucoup de sociétés à forte croissance telles que Google, Lafarge, EADS, Alcatel-Lucent,
Nokia et YouTube, réduisent leurs coûts de manière significative en utilisant MySQL pour
leurs sites Web, leurs applications critiques d’entreprise, ou en embarquant MySQL au sein
de leurs solutions.
Non seulement MySQL est la base de données open source la plus populaire au monde, mais
elle est aussi devenue le choix privilégié pour la nouvelle génération d'applications
développées sur la pile LAMP (Linux, Apache, MySQL, PHP / Perl / Python). MySQL
fonctionne sur plus de 20 plateformes incluant Linux, Windows, Mac OS, Solaris, HP-UX, IBM
AIX.
2. Architecture de l'outil
2.1. Utilisateurs
Le schéma ci-dessous résume l’architecture détaillée du site de covoiturage qui est basé
sur deux types de connexions (mode connecté et non-connecté).
Module de gestion des comptes : Le système permet à chacun des membres de faire
la gestion de son compte. Il sera possible de modifier des informations personnelles
ou préférences.
Passagers : Les passagers sont ceux qui bénéficient le plus du système. Ils peuvent
lancer diverses recherches pour trouver des itinéraires qui conviennent à leurs
besoins et faire des réservations. Dans le cas où les points d’embarquements
conviennent plus ou moins, ils peuvent envoyer une proposition de point
d’embarquement au conducteur. De plus, ils peuvent consulter leur historique de
réservations.
2.2. Administrateur
3. Modèle de données
Pour illustrer la modélisation de la base de données du site web, on va exposer tout d’abord
la liste des différentes données dont on a besoin pour le bon fonctionnement du site :
Les données
Login ou
Lieux de Destinataire Qui a réservé
email
rencontres
Autres
options
(photo,
voiture..)
Afin de déterminer quel outil de modélisation de base de données serait le plus intéressant à
utiliser dans le cadre de notre projet, on s’est basé sur une description exhaustive des
principaux outils de modélisation de base de données qui ont été évalués suivant cinq
critères :
La facilité d’utilisation
La taille du logiciel
La pérennité
Le prix
Dans notre cas, on a choisi MySQL Workbench de la compagnie MySQL offert en version Mac
ou Windows qui nous a permis de créer un modèle entité-relation de notre base de données
(MCD et MLD) et de générer ainsi les scripts de créations des tables SQL. MySQL Workbench
permet à un administrateur de base de données, un développeur ou un architecte de
données de concevoir, de modéliser, de générer et de gérer visuellement des bases de
données. Il comprend tous les éléments nécessaires à un modélisateur de données pour
créer des modèles entité-relation.
Voici une liste des tables à créer permettant de stocker l’ensemble de données dont on a
besoin pour le bon fonctionnement du site de covoiturage :
4. Scenario d’exécution :
Dans cette partie seront expliqués les différents mécanismes du fonctionnement technique
du site web.
La page ‘index.php’ est chargée automatiquement lorsque le DNS ‘etucovoiturage’ est saisi
dans la barre d’adresse du navigateur. Sachant qu’il y a une vérification de l’existence d’une
session à l’aide de la fonction ‘verif_session_var()’, si l’utilisateur est toujours connecté, donc
‘index.php’ redirige automatiquement l’utilisateur vers la page ‘bienvenu.php’ (espace
personnel de l’utilisateur). Si après vérification aucune session n’est détectée, l’utilisateur
reste sur la page ‘index.php’.
Un utilisateur:
Etant non connecté a la possibilité de consulter les offres de trajets générées par la
page ‘results.php’. En cliquant sur l’annonce qui l’intéresse, la page
‘details_not_user.php’ se lance à l’aide de la fonction JavaScript ‘TINY.BOX.SHOW ()’
et affiche les détails du trajet choisi par l’utilisateur. Ce dernier n’a pas le droit de
réserver et de contacter l’annonceur.
Etant connecté a la possibilité de consulter les offres de trajets générées par la page
‘result.php’. Celle-ci gère d’une façon systématique l’ensemble de permissions
accordées à l’utilisateur (par exemple, l’utilisateur ne peut pas réserver une place
pour un trajet déposé par un passager). En cliquant sur l’annonce, la page
‘details.php’ se lance à l’aide de la fonction JavaScript ‘TINY.BOX.SHOW ()’ et affiche
les détails du trajet choisi par l’utilisateur. A l’opposé du mode non connecté, ce
dernier a le droit de réserver et de contacter l’annonceur.
Pour pouvoir bénéficier de tous les services offerts par le site de covoiturage, l’utilisateur
doit se connecter. Si c’est sa première visite du site, il devra d’abord s’inscrire sur le site.
Une fois sur la page ‘formulaire.php’, l’utilisateur saisit son nom, prénom, date de naissance,
login, mot de passe, ville et numéro de téléphone. Ce formulaire est contrôlé par PHP et
JavaScript, derrière chaque `input` il y a une fonction qui vérifie l’exactitude du format
d’insertion :
verifMotDePass() : vérifie que les deux mots passe saisis sont identiques et qu’ils
contiennent au moins 8 caractères
insertion() : la fonction chargée d’insérer les données saisies dans la base de données
ainsi que d’envoyer un mail de confirmation d’inscription contenant un lien
d’activation de l’espace membre à l’utilisateur.
Si lors de l’inscription l’utilisateur n’a pas renseigné l’un des champs obligatoires, le
formulaire se recharge en gardant les valeurs déjà saisies. En cas d’erreur, la page reste
bloquée en signalant par un message clair l’erreur. Concernant le champ login, la fonction
‘mailexist($mail)’ se connecte à la base de données et vérifie l’existence du login indiqué par
le covoitureur : si c’est bien le cas, l’utilisateur se tient alors informé.
Une fois que le formulaire a bien été rempli, la fonction ‘insertion()’ se charge de créer
l’espace personnel de l’utilisateur ainsi que d’envoyer un email contenant un lien
d’activation à l’adresse mail indiquée lors de l’inscription.
Si l’utilisateur essaie de se connecter sans avoir activé son compte, un message clair lui est
affiché en l’incitant à activer son compte.
Le formulaire de connexion, contrôlé par PHP, permet d’accéder à l’espace membre. Si les
identifiants saisis sont corrects, l’utilisateur passe à la page ‘bienvenu.php’, sinon un
message clair l’informe de l’erreur survenue.
Dès que l’espace membre a été créé, l’utilisateur peut désormais bénéficier de toutes les
fonctionnalités du site.
Pour contacter un abonné, le seul moyen est de cliquer sur l’onglet `message` figurant dans
la fenêtre affichant les détails d’une annonce (affiché par JavaScript).
Pour chaque valeur saisie par l’utilisateur, il y a des fonctions vérifiant l’exactitude des
formats d’insertion des champs :
Dans la page ‘trajet_user_ step_2.php’, si l’utilisateur ne passe pas par la page ‘trajet_user_
step_1.php’, une redirection automatique le renvoie à l’étape précédente (vérification des
variables de session). Il y a deux cas de figure possibles :
Si tout va bien, une redirection vers la page ‘trajet_user_ step_3.php’ est effectuée après
avoir cliqué sur le bouton ‘Valider et passer à l’étape 3’. Dans la page ‘trajet_user_
step_3.php’, si l’utilisateur ne passe pas par ‘trajet_user_ step_2.php’, une redirection
automatique le renvoie à l’étape précédente (vérification des variables de session). Il y a
deux cas de figure possibles :
A ce stade, les variables de session correspondant au dépôt d’un trajet sont vidées pour
permettre une nouvelle proposition de trajet.
Supprimer mon compte (‘profil_suppression.php’) : dans cette page après avoir saisi
le mot de passe (contrôlé par la fonction ‘verifPass()’ vérifiant l’égalité entre le mot
de passe indiqué et celui-ci stocké dans la base de données) la fonction
‘suppression()’ déclenche la suppression du profil de l’utilisateur de la table
‘authentification’ et en cascade des autres tables. L’utilisateur supprime
définitivement son espace membre ainsi que ses annonces, ses messages et les
trajets déposés sur le site.
Cette page (‘annonces.php’) affiche l’historique des annonces sous forme de tableau: type
d’annonce (conducteur/passager), ville de départ, ville d’arriver, date, heure, nombre de
places réservées et prix. Tout cela grâce à une fonction récupérant à partir d’une requête
SQL les informations ci-dessus. Si l’utilisateur n’a publié aucune annonce, « aucune
annonce » est affiché.
Cette page (‘reservation.php’) affiche l’historique des annonces sous forme de tableau : ville
de départ, ville d'arrivée, date de départ, heure de départ, nom du conducteur et prix. Tout
cela grâce à une fonction récupérant à partir d’une requête SQL les informations ci-dessus.
Et si l’utilisateur n’a effectué aucune réservation, « aucune réservation » est affiché.
5. Limitations et perspectives:
Hébergement : le site est actuellement hébergé sur un serveur gratuit de Free, ce qui
limite les fonctionnalités du site : par exemple ‘autocomplete’ des noms des villes ne
fonctionne pas.
Le design du site est un élément dont nous sommes fiers car il a pris une très grande
attention lors du développement.
Rendre le site compatible avec le navigateur Internet Explorer car actuellement notre
site ne s’affiche pas correctement dans ce navigateur.
Rendre le site accessible sur des Smartphones car une version mobile d’un site
internet est un vecteur d’images positives montrant le caractère innovant de celui-ci.
Améliorer la mise en relation entre les conducteur et passager par la mise en place
d’un système de SMS qui va servir de justificatif pour les réservations de trajets.
Gréer une page sur Twitter pour faire connaitre le site auprès d’un large public.
Réaliser un espace pour les questions fréquentes et mettre en place un forum sur le
mode de fonctionnement du site.
Faire évoluer la partie recherche des trajets on la réalisant sous forme de carte de
France
Chercher des partenaires publics et privés pour nous accompagner dans notre
développement.
Pour conclure, il faut mettre en évidence que le marché du covoiturage dynamique est
estimé à 500 milliards de dollars par Nokia au niveau mondial en calculant le prix des places
vides dans une voiture. Au niveau national et selon les statiques : 79% des français sont
prêts à faire un recours au covoiturage, et même sur des petits trajets (voir le baromètre
MACIF-août 2010). Faute de bénéficier d’une réelle impulsion, le covoiturage est encore peu
pratiqué en France, où il représente une part minime des trajets domicile-travail, de l’ordre
de 3%.
2012
KOULOUH Khalid,
Université d’Orléans MARYNICH
Rapport Mikhail, OUDJEHIH Anis, OQAIDI
technique PageKhalid
20 sur 20
2011/2012 Master 2 CCI
28/03/2012