Vous êtes sur la page 1sur 21

2012

Rapport technique
du site de covoiturage Etucovoiturage
version 1.0

KOULOUH Khalid, MARYNICH Mikhail, OUDJEHIH Anis, OQAIDI Khalid


Master 2 CCI
28/03/2012
Etucovoiturage Rapport technique : Projet Programmation Web

Projet : Développement d’un site de covoiturage

Référence : rapport_technique.pdf

Rédacteur(s) : Khalid OQAIDI, Khalid KOULOUH, Anis OUDJEHIH, Mikhail MARYNICH

Responsable : Abdel Ali ED-DBALI

HISTORIQUE DES MISES A JOUR


Version Date Nature du document d’origine et des différentes Pages
modifications
1.0 28/03/2012 Version initiale 20

Université d’Orléans Rapport technique Page 1 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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

Université d’Orléans Rapport technique Page 2 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

1. Objectif du document

1.1. Objectif :

Ce document a pour objectif d’expliquer le fonctionnement du site de covoiturage


Etucovoiturage en rappelant le contexte dans lequel il a été développé et pourquoi il a été
développé.

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.

La création du site de covoiturage sera un gage afin de pallier :

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.

1.3. Mode opératoire du site :

Ce site propose de mettre en contact :

Des conducteurs : ceux qui proposent un trajet.

Des passagers : ceux qui souhaitent partager un véhicule le temps d'un voyage
déterminé.

Et en particulier les étudiants ainsi que les professeurs de l'Université d'Orléans.

Université d’Orléans Rapport technique Page 3 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

1.4. Choix du langage :

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.

Notre choix est tombé sur PHP-MYSQL.

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.

Université d’Orléans Rapport technique Page 4 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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é).

Université d’Orléans Rapport technique Page 5 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

Le site de covoiturage est composé de ces différents modules :

Module des inscriptions : Le système doit permettre aux conducteurs et covoitureurs


de pouvoir s’inscrire de façon autonome via le site web.

Module de gestion des itinéraires : Le système doit permettre l’ajout, modification


et suppression d’un itinéraire par un conducteur ou un passager. Ces derniers auront
accès à tous leurs itinéraires passés et pourront créer de nouveaux itinéraires à partir
d’un itinéraire déjà effectué dans le passé. Le conducteur pourra fixer le prix voulu de
la part des covoitureurs.

Module de gestion des réservations : Le système doit aussi permettre aux


covoitureurs de rechercher des itinéraires. Des recherches peuvent s’effectuer
suivant des critères précis. Suite à l’affichage des résultats le covoitureur peut choisir
parmi les plus « intéressants » pour lui. En cas de changement de plan, un système
de notification envers le conducteur ou le passager est disponible (messagerie), afin
d'aviser que le passager n’embarque plus avec le conducteur ou que le conducteur
souhaite annuler son trajet.

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.

Les différentes classes d’usagers du système sont comme suit:

Administrateur : L’administrateur est le seul à avoir accès à l’information complète


du système. Il peut faire la gestion globale du système, par exemple créer des
comptes de covoitureurs. Il lui est aussi possible de suspendre n’importe quel
compte.

Conducteurs : Les conducteurs permettent d’alimenter le système en itinéraires


disponibles pour la recherche. En effet, c’est la quantité et qualité des conducteurs
qui permettront d’avoir une banque de données intéressante dans le système. Suite
à la publication d’un itinéraire, ils sont responsables de vérifier à intervalle régulier
s’ils reçoivent des demandes d’embarquement des covoitureurs. Dans un tel cas, ils
sont responsables de confirmer l’embarquement du passager à un point donné. De
plus, ils peuvent consulter leur historique d’itinéraires.

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.

Université d’Orléans Rapport technique Page 6 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

2.2. Administrateur

Le schéma ci-dessous décrit le fonctionnement de l’espace administrateur. L’administrateur


est le seul à avoir accès à l’information complète du système. Il peut faire la gestion globale
du système, par exemple suspendre n’importe quel compte.

Université d’Orléans Rapport technique Page 7 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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

Utilisateur Trajets Messagerie Gestion de Liste des


réservation villes de
France
Mot de passe Date Ville+
Ville départ+ Expéditeur
celle Code
d’arrivée+CP Postale

Login ou
Lieux de Destinataire Qui a réservé
email
rencontres

Ses Contenu d’un Trajet en


préférences Nombre de message question
places
disponibles

Adresse + Etat d’un


Date de Date + Heure message (lu
naissance de voyage on non lu)

Autres
options
(photo,
voiture..)

Université d’Orléans Rapport technique Page 8 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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

Les performances (robustesse, richesse fonctionnelle…) : l’exploitation des données


dépendent fortement des outils que le SGBD met à disposition.

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.

3.1. Structuration des données :

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 :

Nom de table Description


authetification Table contenant les infos personnelles des utilisateurs
profil Stockage de préférences des utilisateurs
trajet Où seront stockées les informations sur chaque trajet
reservation Servira à la gestion de réservation des trajets et contiendra l’identifiant
du trajet et ainsi que l’identifiant de l’utilisateur qui a réserver ce trajet
messagerie Stockage de messages envoyés par les utilisateurs ainsi que leurs
identifiants
cp_autocomplete Contient une liste de toutes les villes de France avec leurs codes postaux.
Remarque : Cette table n’apparaît pas dans le MCD et le MLD, mais par
contre les fonctions de contrôle de saisie des noms de villes font appel à
cette table.

Université d’Orléans Rapport technique Page 9 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

3.2. Le modèle conceptuel de données :

Université d’Orléans Rapport technique Page 10 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

3.3. Le modèle logique de données :

Université d’Orléans Rapport technique Page 11 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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.

Techniquement parlant, l’attribution des droits dépend de plusieurs conditions, elles-mêmes


dépendent de la vérification de la session en cours.

L’utilisateur non connecté a la possibilité de consulter les différentes informations situées


dans le pied de page (A propos, Vos questions sur le covoiturage, Conditions Générales
d'Utilisation, Les avantages du covoiturage, etc.). Sur ces pages il n’y a aucun contrôle de
session (accès libre).

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 :

Université d’Orléans Rapport technique Page 12 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

verifNom() : vérifie l’insertion et l’exactitude du nom

verifPrenom() : vérifie l’insertion et l’exactitude du prénom

verifMail() : vérifie l’insertion et l’exactitude du mail

mailexist($mail) : vérifie la non-existence du mail dans la base de données

verificationDuUserName() : fait appel à la fonction mailexist($mail) pour la


vérification de la non-existence du mail

verifPhone() : vérifie l’insertion et l’exactitude du numéro de téléphone

verifMotDePass() : vérifie que les deux mots passe saisis sont identiques et qu’ils
contiennent au moins 8 caractères

verifAdress() : vérifie l’insertion et l’exactitude du nom d’une ville

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é.

Le formulaire d’inscription dispose également de deux checkboxes et un bouton radio. Le


bouton radio tient en considération le souhait de l’utilisateur par rapport à l’affichage de son
numéro de téléphone dans les annonces. La première checkbox concerne les offres des
partenaires. Quant à la seconde, elle sert à s’assurer que l’utilisateur confirme avoir lu les
Conditions Générales d’Utilisation du site. Si cette checkbox n’est pas cochée, une alerte JS
incite l’utilisateur à le faire.

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.

Université d’Orléans Rapport technique Page 13 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

Sur la page ‘formulaire.php’ figure également le lien de récupération du mot de passe


perdu. Si l’utilisateur clique sur ce lien, c’est la page ‘password_oubli.php’ qui se charge en
demandant de saisir son adresse mail à laquelle par la suite sera envoyé un nouveau mot de
passe. Compte tenu du fait que les mots de passe sont stockés dans la base de données sous
une forme cryptée à l’aide de la fonction de hachage ‘md5()’ (il en déduit qu’il est impossible
de les récupérer sous une forme non-cryptée), la fonction ‘newChaine()‘ génère
automatiquement un nouveau mot de passe de 8 caractères qui remplacera l’ancien. Avant
d’envoyer le nouveau mot de passe, le script vérifie aussi que le mail indiqué est bien
présent dans la base de données.

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.

4.1. Rechercher un trajet :

La fonction de restriction d’accès aux fonctionnalités de réservation et de contact de


l’annonceur d’un trajet est désactivée automatiquement, mais elle vérifie constamment que
l’utilisateur est bien connecté, sinon elle l’invite à se connecter.

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).

Si l’annonce ne provient pas de la part d’un passager, l’utilisateur a la possibilité d’effectuer


une réservation. Une alerte JavaScript le tient informé du succès de l’opération, et un email
récapitulatif est envoyé aux deux parties (passager et conducteur).

Une fois la réservation effectuée, le nombre de places est automatiquement décrémenté.


S’il ne reste plus de places disponibles dans un trajet, la fonctionnalité réservation est
désactivée et la mention `complet` apparaît sur l’annonce.

4.2. Publier un trajet :

Dans cette partie (‘trajet_user_ step_1.php’), l’utilisateur a le choix entre Conducteur et


Passager. Il est demandé de saisir la ville de départ + son code postal, lieu de départ, ville
d’arrivée + son code postal et le lieu d’arrivée. En cliquant sur le bouton « Valider et Passer à
l’étape 2 », on récupère la saisie dans des variables de session transportables en pages
‘trajet_user_ step_2.php’ et ‘trajet_user_ step_3.php’.

Université d’Orléans Rapport technique Page 14 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

Pour chaque valeur saisie par l’utilisateur, il y a des fonctions vérifiant l’exactitude des
formats d’insertion des champs :

chercherVilleBdd($ville) : sélectionne toutes les villes dans la table


‘cp_autocomplete’.

verificationGenerale() : la fonction qui vérifie la présence de la ville saisie dans la


base de données en faisant appel à la fonction ‘chercherVilleBdd($ville)’. Elle vérifie
aussi le format de saisie du code postal ainsi que des lieux de départ et d’arrivée. En
cas d’erreur de saisie, un message clair informe l’utilisateur.

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 :

Conducteur : il est demandé de renseigner la date de départ, l’heure de départ, le


nombre de places dans le véhicule ainsi que les préférences du trajet (acceptation de
fumeurs ou non, animaux). La fonction ‘verification()’ s’assure de la bonne saisie,
sinon en cas d’erreur un message clair est affiché demandant de bien renseigner les
champs concernés.

Passager : il est demandé de renseigner juste la date de départ et l’heure de départ.


La fonction ‘verification()’ s’assure de la bonne saisie, sinon en cas d’erreur un
message clair est affiché demandant de bien renseigner les champs concernés.

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 :

Conducteur : Il est demandé à l’utilisateur d’indiquer le tarif du trajet par passager.


La fonction ‘verifPrix()’ assure l’exactitude du format du prix. Ensuite, après avoir
cliqué sur le bouton « Publier l’annonce » la page de récapitulatif du trajet apparaît,
la base de données est alimentée et un email de confirmation est envoyé à
l’utilisateur.

Passager : dans ce cas l’utilisateur passe directement au récapitulatif du trajet sans


avoir à renseigner le prix.

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.

Université d’Orléans Rapport technique Page 15 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

4.3. Mon profil :

Dans cette partie du site (‘profil.php’), il y a 6 fonctionnalités :

Mes informations générales (‘profil_informations.php’) : l’utilisateur peut modifier


son nom, prénom, date de naissance et son numéro de téléphone (tous les champs
sauf son login) qui sont sous les mêmes vérifications que les champs du formulaire
d’inscription de la page ‘formulaire.php’ . Après validation les champs dont les
valeurs ont été modifiées sont mises à jour dans la base de données à l’aide de la
fonction ‘modfication()’.

Mes préférences (‘profil_preferences.php’) : lors de la création de l’espace personnel


les préférences du profil sont par défaut mises à « non renseigné ». Après la saisie
(sous forme de booléen) et validation des informations saisies, les mises à jour sont
transférées directement dans la base de données par le biais de la fonction
‘setModification()’, et sont désormais visibles dans les annonces de l’utilisateur ainsi
que sur sa page d’accueil.

Mon adresse (‘profil_adresse.php’) : Dans cette page, l’utilisateur a la possibilité de


modifier et/ou détailler son adresse. La saisie de données est sous le contrôle des
fonctions PHP (verifAdress1() , verifAdress2(), verifCode(), verifVille(), verifPays()). Une
fois tous les champs obligatoires renseignés, les mises à jour sont transférées
directement dans la base de données par la fonction ‘setModification()’ , et sont
désormais visibles dans les annonces de l’utilisateur ainsi que sur sa page d’accueil.

Mon mot de passe (‘profil_password.php’) : dans cette page, il y a trois champs :

 Le premier champ demande de renseigner l’ancien mot de passe (la fonction


‘verifPass()’ vérifiant l’égalité du mot passe saisi et celui-ci dans la base de
données crypté en md5)

 Le deuxième et le troisième champ ont le même principe de fonctionnement


que les deux champs mot de passe du formulaire d’inscription sur la page
‘formulaire.php’ (voir plus haut).

Mon véhicule (‘ profil_vehicule.php’) : Cette page permet d’indiquer la marque, le


modèle et la version du véhicule de l’utilisateur en précisant son confort afin d'être le
plus précis possible. Si l’utilisateur ne dispose pas de véhicule, il devrait cocher la
checkbox correspondant (pas de voiture). Sinon les quatre champs sont obligatoires à
renseigner (contrôlés par les fonctions verifMarque(), verifModele(), verifConfort()).
En cas d’anomalie, un message d’erreur clair est affiché.

Université d’Orléans Rapport technique Page 16 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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.

4.4. Mes messages :

Messages reçus (‘read_mail.php’): Permet d‘afficher tous les messages destinés à


l’utilisateur ainsi que le nombre de messages non lus (apparaissant à côté de la
mention ‘Messages reçus ’ grâce à un script associant 0 à un message lu et 1 à un
message non lu).
Si aucun message concernant l’utilisateur n’est présent dans la base de données,
« aucun message reçu » est affiché. A partir d’une requête SQL récupérant les titres,
contenu, date et l’heure et grâce à la fonction ‘getExpediteur($id)’ on récupère
l’identifiant de l’expéditeur du message . Un clique sur le titre du message fait
apparaître une fenêtre JavaScript contenant les détails du message en question ainsi
qu’un champ d’une éventuelle réponse et un bouton d‘expédition (PHP, MySQL,
JavaScript).

Messages envoyés (‘mail_sent.php’): Permet d‘afficher tous les messages envoyés


par l’utilisateur aux autres covoitureurs, et cela à partir d’une requête SQL
récupérant les titres, contenu, date et l’heure et la fonction ‘getDestinataire($id)’ qui
récupère l’identifiant du destinataire du message. Si l’utilisateur n’a envoyé aucun
message, « aucun message envoyé » est affiché.

4.5. Mes annonces:

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é.

4.6. Mes réservations:

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é.

Université d’Orléans Rapport technique Page 17 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

5. Limitations et perspectives:

5.1. Les limitations

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 site ne comporte pas d’espace réservé à la publicité et les actualités.

En l’absence des connaissances de webmarketing, nous ne pouvons pas rendre le site


rentable.

Absence de statistiques sur le nombre de visiteurs du site.

5.2. Les éléments marquant de site :

En général, le travail réalisé sur le site http://etucovoiturage.free.fr’ est considéré comme un


élément marquant en soi-même, mais certaine partie de ce travail reste plus marquante que
d’autres, à ce titre en peut citer :

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.

L’espace personnel de l’utilisateur mettant à disposition des covoitureurs un


ensemble de fonctionnalités facilitant la gestion de l’espace membre.

Le système ‘autocomplete’ aidant l’utilisateur à saisir la ville de départ et la ville


d’arrivée ainsi que le code postal.

La messagerie interne permettant l’envoi de messages entre les membres du site.

5.3. Les perspectives :

Améliorer le référencement : il s'agit de l'inscription du site web dans les différents


moteurs de recherche et les annuaires qui vont donc le «référencer» dans leur pages
de résultats.

Rendre le site compatible avec le navigateur Internet Explorer car actuellement notre
site ne s’affiche pas correctement dans ce navigateur.

Université d’Orléans Rapport technique Page 18 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

Le covoiturage dynamique : Le covoiturage dynamique associe plusieurs technologies


dont la géolocalisation par GPS (associée parfois à un système d’information
géographique), les connexions GSM (téléphones mobiles GPS) et une panoplie
d’outils Internet. Il permet de synchroniser en temps réel les demandes et les offres
de trajets.

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.

Ajouter des fonctionnalités à l’espace personnel afin de permettre aux utilisateurs de


modifier ou de supprimer une annonce en cas d’erreur.

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.

Réservations multiples afin de permettre au passager de réserver plusieurs places car


actuellement le site ne le permet pas.

Développer une page du site sur Facebook.

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%.

Université d’Orléans Rapport technique Page 19 sur 20


2011/2012
Etucovoiturage Rapport technique : Projet Programmation Web

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