9
Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 1 RÉALISATION D’UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d’ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD et Yann BERTRAND. Mon CV : Cliquez ici !

RÉALISATION D’UN SITE DE - isn.codelab.infoisn.codelab.info/site/assets/files/1211/dossier_isn_mathieu.pdf · Pages statiques 2 séances Charlène .D ... Corrections bugs 1 séance

Embed Size (px)

Citation preview

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 1

RÉALISATION D’UN SITE DE

RENCONTRE

Par Mathieu COUPE, Charlène DOUDOU et Stéphanie

RANDRIANARIMANA

Sous la coordination des professeurs d’ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD et Yann BERTRAND.

Mon CV : Cliquez ici !

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 2

Sommaire

I – Pourquoi ce projet ? Quelles idées ?

II – Cahier des charges

III – Répartition et travail collaboratif

IV – Réalisation personnelle

PHP au service du dynamisme

Une base de données ?

HTML et CSS des outils indispensables vers une mise en ligne

V – Intégration et validation

VI – Bilan et perspectives

I – Pourquoi ce projet ? Quelles ide es ?

Avant même de choisir la spécialité ISN, mon intérêt se portait sur l’informatique et plus

particulièrement par le domaine du « web ». Alors quand nous avons eu les différentes

propositions de projet mon choix se porta naturellement vers un projet web. Celui du site de

rencontre m’intéressait particulièrement, car il nécessitait des capacités que j’avais déjà

développées et de nouvelles qui m’intriguaient énormément ! Notamment sur le fait de

réaliser un site interactif, où les utilisateurs n’auront pas une simple page à lire, mais une

page sur laquelle ils seront acteurs. Ayant déjà pu réaliser quelques pages web statiques, je

prenais la pleine mesure de ce projet qui était pour le moins ambitieux. Avec mes

coéquipières, nous nous sommes concertés sur ce que nous attendions de ce projet. Pour

nous la réponse était simple, notre objectif sera de réaliser un site sur lequel les utilisateurs

pourront s’inscrire, avoir accès à un espace membre, rechercher d’autres personnes et

pouvoir communiquer avec eux, mais aussi avec nous : administrateurs.

Une fois notre idée de base définie, nous avons effectué des recherches sur les différents

sites de rencontres déjà existants. Ces sites fleurissant avec importance sur la toile, il nous

fut aisé de voir beaucoup d’exemples, et à la vue d’autant de sites de rencontre nous furent

confortés dans notre choix, car ils représentent dorénavant une part importante du web et

nous pourrons donc nous inscrire dans cette continuité. Ce que nous avons pu remarquer

c’est que tous ces sites présentent une page d’accueil très attrayante et remarquable, sur

laquelle il y a une partie d’inscription simple et visible : pour pousser le visiteur à s’inscrire.

Ensuite pour la majorité, ces sites sont payants ce qui nous a limités dans nos recherches.

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 3

Cependant nous avons pu observer que chaque site offre des possibilités de rencontres

adaptées au souhait de l’utilisateur. Dès le départ, chaque personne choisit un site en

fonction de sa recherche, certains pour trouver des relations amicales, amoureuses ou

professionnelles... De plus une fois connecté sur le site, l’utilisateur peut modifier son profil

en remplissant une grille de champs personnalisés. Cette grille permet facilement de

retrouver quelqu’un en fonction des champs recherchés à travers d’un moyen mettant en

relation les profils similaires. Ainsi notre site aura de nombreux objectifs que nous espérons

atteindre.

II – Cahier des charges

Organisation du site

Premièrement il faut organiser le site. Pour cela nous utiliserons une fonction PHP : include. Celle-ci

permet de créer notre site tel un assemblage de brique. Nous pouvons faire chaque partie

indépendamment puis l’inclure dans une page type. Cela facilitera notre travail. De plus nous

essayerons de réaliser un site joli et attrayant.

Un site dynamique ?

En désirant créer un site de rencontre, nous ne pouvions nous permettre de faire un site statique,

c'est-à-dire un site avec lequel l’utilisateur ne puisse interagir. Pour gérer ce site dynamique, c'est-à-

dire qui générera les pages en fonction de la demande de l’utilisateur nous coderons notre site en

langage PHP associé avec du HTML et CSS.

Inscription, connexion et déconnexion

Afin de réaliser un site de rencontre qui réponde aux critères définis par les autres sites déjà

existants, il faudra que nous réalisions un espace membre. Une partie du site visible uniquement

pour les personnes inscrites et connectées. Pour cela nous devons définir un module d’inscription

puis un autre gérant la connexion et la déconnections.

Un contact permanent

En voulant faire un site dynamique, un point essentiel nous est apparu : la communication ! En effet

les utilisateurs d’un site de rencontre doivent pouvoir échanger entre eux, pour cela nous

développerons une messagerie interne. Mais ils devront aussi pouvoir communiquer avec les

administrateurs pour cela un formulaire de contact sera mis en place.

Profil personnalisé

Pour permettre aux différents membres de rencontrer une personne répondant à leurs critères

(physiques, mentaux … ) nous devrons définir une liste de champs tels que la taille, couleurs des

yeux, activités professionnelles, etc… Ces champs permettent une personnalisation complète du

profil pour mieux définir chaque personne !

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 4

Des pages d’information

Tout bon site se doit d’avoir une partie d’information. Celles-ci concernant le site en lui-même, le

pourquoi du comment en quelque sorte, sa visée et ses origines ; les administrateurs, qui sont-ils ; les

conditions générales d’utilisation, qu’avons-nous le droit de faire en tant qu’utilisateurs. Cette

dernière partie permettant de travailler sur l’aspect légal de la diffusion sur internet.

Compatibilité des membres ?

Une fois la liste des champs personnalisés établis il nous faudra les exploiter. En effet nous aimerions

pouvoir mettre en relation les personnes « semblables », qui ont un certain nombre de champs en

communs. Pour y parvenir, nous tenterons de développer un algorithme comparant les fiches des

membres et les classeras en fonction de leur pourcentage de similitude. Ce programme sera réalisé

sous l’environnement de travail : Processing.

III – Re partition et travail collaboratif

Tâches Nombre de

séances Noms

Etat de l'art 1 séance Stéphanie R.

Recherche sur les sites dynamiques

1 séance Mathieu C.

Structure et organisation du site 5 séances* Mathieu C. et Charlène D.

Module inscription 2 séances Mathieu C.

Rédaction des CGU 1 séance Charlène .D

Formulaire de contact 2 séances Charlène .D

Espace membre (connexion et déconnexion )

2 séances Mathieu C.

Pages statiques 2 séances Charlène .D

Ébauche de design 1 séance Mathieu C. et Charlène D.

Création Base de données 1 séance Mathieu C.

Champs de profils personnalisés 2 séances Charlène .D

Corrections bugs 1 séance Mathieu C.

Intégration des formulaires menus

1 séance Charlène .D

Messagerie 1 séance Mathieu C.

Révision des formulaires 2 séances Charlène .D

Algorithme de compatibilité 9 séances Stéphanie R.

Mise en ligne 1 séance Mathieu C.

Total : 10 séances

* travail effectué en même temps que d'autres séances

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 5

Pour mettre en commun notre travail, nous avons utilisé différentes méthodes. Régulièrement nous

communiquions sur notre avancement personnellement via les réseaux sociaux, comme ça nous

pouvions nous aider si nous avions des questions où problèmes. De plus nous avons utilisé la

plateforme Github afin de partager nos fichiers en ligne. Pour finir, notre mise en ligne du site

permet aussi de récupérer les fichiers et de voir l’avancement final du projet.

IV – Re alisation personnelle

Lorsque nous avons réparti les tâches à effectuer, j’ai pris les devants en me positionnant sur les

parties les plus « techniques ». En effet j’ai pris la charge de travailler sur la gestion du dynamisme du

site, de la base de données et de l’intégration générale. Je détaillerais ma réalisation personnelle en

trois temps :

PHP au service du dynamisme

Une base de données ?

HTML et CSS des outils indispensables vers une mise en ligne

PHP au service du dynamisme

Pour débuter, il faut comprendre la différence entre les sites statiques et les sites dynamiques. Un

site statique fonctionne de manière très simple. D’un côté il y a le visiteur qui va demander à voir une

certaine page avec son adresse URL, le serveur lit cette demande et lui envoie la page telle qu’elle a

été demandée par le visiteur. Il n’ya aucun traitement d’informations.

Un site dynamique fonctionne différemment. En effet le visiteur demande à voir une page, le serveur

va alors générer une page spécialement pour le visiteur puis lui transmettre en fonction de la

demande et du client. Par exemple il affichera telle ou telle page si l’utilisateur est connecté ou non.

Sur un site statique seul, les langages HTML et CSS sont utilisés au contraire du site dynamique ou un

troisième langage est utilisé : le PHP. Ce dernier est langage serveur, c’est lui qui va générer la page

web. PHP sert à écrire du HTML. Par exemple si j’informe le serveur que je suis connecté au site et

que je m’appelle Mathieu, PHP générera un code qui dira : « Bonjour Mathieu, Bienvenue sur le

site. »

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 6

Le code PHP est toujours compris entre ces balises :

<?PHP echo ?>

À l’intérieur de celles-ci peuvent être définies plusieurs fonctions et variables qui sont obligatoires pour le fonctionnement du site. Les différentes variables que nous avons utilisées pour le site sont : string : qui correspond à du texte ; int : qui correspond à un nombre ; et bool : qui revient à un vrai ou faux. Passons maintenant à une fonction essentielle de notre site. Lorsque j’ai commencé à penser la structure du site avec Charlène il s’est avéré que si nous devions coder deux menus, un entête, un pied de page et le corps de la page en même temps cela nous donnerait un fichier avec un nombre de lignes conséquentes. Pour remédier à cela, nous avons utilisé la fonction include. Celle-ci permet d’inclure des portions de pages. Nous pouvons donc gérer chaque bloque du site sur un fichier séparer. Il suffit ensuite d’inclure le bloc avec un code de ce type :

<?php include("menus.php"); ?>

Ainsi au lieu d’avoir un fichier avec des dizaines de lignes de codes nous en avons beaucoup moins. Le PHP va aussi nous servir pour développer l’espace membre. À travers d’une structure If … Else nous vérifierons si l’utilisateur est connecté ou pas. Ensuite le site généra la page en fonction du statut du client. Voici un exemple avec la page d’accueil. En haut la page générée pour un visiteur lambda et en bas la page pour un membre connecté.

De plus le PHP sera utilisé pour inscrire les informations dans la base de données et récupérer ces informations. Pour cela nous avons défini des variables que l’utilisateur remplira lors de son inscription ou modification de profil. Cette inscription se fait avec la fonction $_POST. Avec le PHP j’ai pu intégrer les différents modules dynamiques du site que sont l’inscription, la connexion, la déconnexion, la gestion du profil, la liste des membres et la messagerie. Cependant vu la complexité de notre projet j’ai dû m’inspirer de codes déjà existants (toujours libres de droits), créer nos propres codes auraient été trop longs et complexe au vu du temps imparti.

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 7

Une base de données ?

Pour exploiter tout le potentiel du PHP celui doit être utilisé avec une base de données. Mais qu’est-

ce qu’une base de données. C’est un peu comme un tableur informatique dans lequel il y a des

entêtes et dans lequel nous inscrivons des informations. L’avantage d’une base de données c’est que

celle-ci va en permanence trier les informations. J’ai fait le choix d’utiliser un système de gestion de

base de donnée libre et gratuit et qui soit aussi le plus simple à utiliser, c’est pour ça que nous avons

utilisé MySQL. Pour utiliser correctement la base de données, on utilise un autre langage le SQL,

celui-ci ne sert exclusivement aux bases de données. Il permet de la gérer de manière simple.

Comme dit précédemment PHP est utilisé pour inscrire les données dans la base de données. Il sert

alors de lien entre le serveur et MySQL. Une BDD (raccourci pour base de données) est toujours très

bien organisée, à l’intérieur de celle-ci il y a des tables et à l’intérieur de ces tables sont rangées les

informations en fonction de champ préalablement défini. La BDD est administrée via phpMyAdmin,

c’est une interface PHP qui permet de gérer avec facilité notre BDD, soit à travers d’une console où

on utilise le SQL pour effectuer notre requête soit en parcourant les tables manuellement.

Pour notre site j’ai défini deux tables simple, mais efficace. Une première : « users », celle-ci permet

de gérer l’inscription, la connexion/déconnexion, la modification du profil. Dans tous ces modules,

c’est toujours la même table qui est reprise avec les mêmes champs. Il n’y a qu’au niveau du code

PHP qu’il y a des différences pour justement opérer la bonne action avec la BDD, si on veut par

exemple inscrire un nouveau pseudo ou changer son mot de passe. La seconde table « pm »(pour

personal messenger » sert à gérer la messagerie. Elle reprend le même principe que la table users

mais avec des champs différents.

HTML et CSS des outils indispensables pour une mise en ligne

Bien que mon travail soit essentiellement basé sur

l’intégration du PHP au sein du site et de l’utilisation de la

base de données je me suis consacré aussi à la mise en

forme du site et à ça mis en ligne. Pour mettre en forme le

site, j’ai mis en place une feuille de style CSS pour faciliter

les modifications. Celle-ci permet de modifier une partie du

design sans pour autant tout changer. Par exemple on peut

changer la couleur du fond sans changer la position de

menus.

Sur cette image on voit la répartition du site et le style qui y

est appliqué. On observe la différentiation entre les

blocs : « body » ; les div avec id : « #corps » ; et les classes

« .menut ». Cette méthode permet une classification

simplifié du style à travers les différentes mises en formes

telles ques « height »(hauteur) , « border »(bordure) … Il en

existe une pour chaque chose que l’on souhaite modifier.

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 8

Ici un aperçu du site. On peut aisément remarquer les différentes parties du site et le design que

nous avons choisi pour correspondre aux critères des différents sites de rencontres. Par soucis de

temps, nous avons utilisé des générateurs de menus, que nous avons ensuite modifiés nous-mêmes

pour correspondre à notre design. Le HTML quant à lui permet de faire tout le reste qui n’a pas

besoin d’être généré par PHP. Si nous n’utilisions pas ces deux langages, notre site aurait quand

même pu fonctionner, mais celui-ci aurait été alors peu ergonomique et totalement inesthétique. Et

ceci ne pouvait être envisageable pour une diffusion grand public sur internet.

Lors de la dernière séance grâce à la mise en ligne d’un serveur dédié par monsieur Bernard et d’une

base de données nous avons pu mettre notre site en ligne. Pour faire cela, j’ai utilisé un protocole

FTP. C’est un protocole de transfert de données de fichiers sécurisés. Avec le logiciel FileZila j’ai pu

envoyer les fichiers directement sur le serveur après une identification, car le serveur est protégé par

un login et un mot de passe. Ensuite manuellement on envoie les fichiers sur le serveur. Celui est

accompagné d’une base de données permet le fonctionnement de l’intégralité du site, comme

expliqué dans les parties précédentes.

V – Inte gration et validation

Mon travail représentait donc une part importante de notre projet. Non pas que celles de Charlène

et Stéphanie le soit moins, mais la mienne est un peu comme la colonne vertébrale du squelette ou

le tronc d’un arbre. Et c’est sur celle-ci que tout le reste est venu s’attacher ou aussi le compléter. En

effet si le site était uniquement doté d’une inscription les utilisateurs ne pourraient pas faire grand-

chose. C’est en ajoutant les champs de profils personnalisés, les menus, les formulaires que le site

gagne tout son interactivité. De plus derrière tout cela les utilisateurs souhaitent faire des rencontres

et c’est pour cela que l’algorithme de compatibilité est essentiel.

À la base nous avons travaillé en local sur les ordinateurs du lycée et sur mon portable avec le logiciel

Wamp. Grâce à notre travail en collaboration, c’est moi qui intégrais au fur et à mesure les

différentes parties du projet. Mais il fallait aussi un retour. En effet je devais aussi, une fois que

chaque étape était finie, intégrer mes résultats au reste.

Pour valider notre projet, nous avons dû attendre la mise en ligne du site. Une fois celle-ci effectuée

nous avons créé des utilisateurs puis tester la connexion, la modification de profil et la messagerie. Je

vérifiai ensuite que ces données étaient bien inscrites dans la base de données et si nous retrouvions

bien les informations partout, notamment la liste des membres.

Dossier ISN 2013 – Projet : Site de rencontre – COUPE Mathieu 9

On observe ici que deux utilisateurs sont enregistrés sur le site. Ceci permet de valider que le site

fonctionne, tout du moins en partie. Car par manque de temps nous n’avons pas puis créer une table

pour les champs personnalisés et les enregistrés dans la base de données.

VI – Bilan et perspectives

Après ces 10 séances de travail nous avons un site qui est « fonctionnel », enfin tout du moins dont

les fonctions primaires sont actives. Il est encore incomplet et ne permet pas toutes les

fonctionnalités que nous avions imaginées au début. Ceci prouve donc que nous avions choisi un

projet compliqué et que nous ne nous sommes pas simplifié la tâche en ayant des ambitions hautes.

Néanmoins sans ces ambitions je ne pense pas que nous serions arrivés à ce stade d’avancement. Car

malgré les difficultés que nous avons eues nous avons toujours réussi à avancer.

Pour ma part ce fut un projet enrichissant, car au début j’arrivais avec davantage de connaissances

que Stéphanie et Charlène j’ai donc joué un rôle de mentor en quelque sorte, leur montrant ce que

j’avais déjà fait et expliquant les bases que j’avais déjà acquises. Mais cette avance fut de courte de

durée, car m’étant orienté vers le PHP et la BDD je me suis vite retrouvé bloqué ayant besoin de

l’aide précieuse d’internet de monsieur Bernard qui m’aida pour notamment accéder à la BDD et

pour la mise en ligne. Charlène et Stéphanie ont quant à elle eu une vision plus terre à terre des

choses recadrant le projet quand il le fallait et avec une autre approche que la mienne qui était plus

technique, elles avaient des idées que je n’avais pas, surtout pour le design…

Concernant les perspectives d’avenir pour notre projet, elles sont nombreuses. Tout d’abord finir

d’héberger les pages faites par mes coéquipières en intégrant leur style à la feuille CSS. Puis de mieux

gérer le menu membre (à gauche) qui n’apparait pas sur toutes les pages comme je le souhaiterais.

Ensuite il faudrait gérer les champs personnalisés dans la BDD pour que l’algorithme puisse classer

les membres… Enfin plus personnellement j’aurais voulu mieux gérer la messagerie qui est un peu

obsolète et pouvoir permettre aux utilisateurs de « rester connectés ».

Peux être qu’un jour l’envie nous prendra de continuer ce site et ainsi nous pourrons fignoler tous

ces détails.

Notre site est disponible à cette adresse : http://demo.codelab.info/