Projet ISN - dossier réalisé par Randrianarimanana Stéphanie Titre du projet : Site de rencontre le nom de notre site de rencontre : Linkymeet ( tout astérisque* signifie voir annexe) l'équipe : Randrianariamanana Stéphanie Charlène Doudou Mathieu Coupé Lien de mon CV écrit en HTML* :http://isn.codelab.info/e-portfolio/eportfolios-du-groupe-vendredi/stephanie-ts2/mes-mini-projets-isn/mon-cv/
Pourquoi ai je choisi le projet : site de rencontre? J'ai choisi ce projet, car aujourd'hui il existe beaucoup de sites de rencontre,ainsi il est très intéressant de voir comment un site de rencontre peut être fait. L'état de l'art : ce que l'on connaît déjà sur les sites de rencontre et comment fonctionnent-ils? Aujourd'hui les sites de rencontre se développent énormément notamment sur la messagerie, en effet à part la messagerie interne, existent aussi la messagerie instantanée et l'appel en visioconférence. Ensuite il existe aussi les forums pour discuter lorsque par exemple des utilisateurs ont des problèmes ou bien des forums par thème pour discuter. Dans les sites de rencontre il existe aussi des tests par affinité, ainsi lorsqu'une personne sélectionne des critères, et qu'on retrouve cette personnalité chez une autre personne, il y a affinité et les deux personnes sont reliés. Nous comptons développer cette partie du programme. Quels sont nos objectifs? Notre objectif est de créer une interface simple avec une page d'accueil et une page profil, puis des interactions possibles que nous comptons développer avec la messagerie par mél et la messagerie instantanée, un formulaire de contact et un moteur de recherche de profils. Comme sur chaque site de rencontre ou autre, il faut imposer des règles d'utilisation à l'utilisateur ainsi nous allons élaborer une condition générale d'utilisation en expliquant à l'utilisateur ce qu'il a le droit de faire ou non sur le site. On peut aussi étudier ce que les administrateurs peuvent dévoiler au public c est-à-dire aux autres utilisateurs par rapport à un autre utilisateur.
Comment allons-nous réaliser notre projet? Nous allons tout d'abord créer une page d'inscription qui sera visible dès que quelqu'un se connecte sur le site. Elle sera codée en HTML et mise en forme en CSS* puis traitée en PHP. Elle conduira ensuite à un espace membre avec une recherche de profils selon des critères simples (affinités) et reposant sur une base de données SQL* et enfin sur un espace de dialogue pour mettre en contact les membres soit directement ou indirectement par l'intermédiaire d'un formulaire codé en HTML et traité en PHP. Comment avons-nous réparti nos tâches? Randrianarimanana Stéphanie : développer la messagerie interne et traiter un questionnaire pour organiser les rencontres par affinité. Mathieu coupé : coder le site en PHP* Doudou Charlène : coder le questionnaire, coder un formulaire d'inscription en HTML Ce que nous avons fait ensemble : nous avons vu l'aspect du site ensemble et le nom qu'il portera.
Notre planning : Tâches Nombre de séancesnoms État 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 Ma Première partie : La messagerie Les difficultés étaient que je n'avais aucune compétence pour programmer. Alors j'ai demandé de l'aide auprès de mes coéquipiers. On a alors fait de la recherche sur internet pour voir si un programme similaire a déjà été crée ou pas. Enfin, on trouvé une solution que j'ai trouvé assez simple, à mettre dans le serveur PHP puisqu'elle était suffisamment détaillée pour la comprendre.
Ma Deuxième partie : mon programme sur le partage de fiche Il s'agit de créer un programme pour relier deux personnes par affinité c est-à-dire deux personnes qui cherchent le même profil. Au début, j'ai pensé que cela consistait à créer un algorithme tel que si l'utilisateur sélectionne les critères qu'il recherche chez une autre personne, le programme cherchait dans chaque profil s il y a des critères semblables à ce que la personne recherchait. Si les critères sont à peu près semblables, il y a alors affinité et donc on peut lier les deux personnes. J'ai demandé l'avis de mes professeurs qui mont conseillé d'utiliser des matrices c est-àdire des tableaux pour pouvoir comparer les profils. J'ai alors décidé de faire un prototype de ce qui pourrait être fait en rendant cela plus simple : des filles répondent à un questionnaire par exemple sur leurs goûts et les garçons répondent à ce même questionnaire. Si un garçon et une fille ont un certain nombre de réponses communnes alors ils peuvent partager leur fiche entre eux. J'ai imaginé le prototype comme ceci : Chaque ligne correspond à la réponse d'une personne et chaque colonne aux questions. Dans cet exemple, 3 filles répondent au questionnaire. Sur la première ligne, la première fille choisit la réponse 0 à la première question, puis la réponse 1 à la seconde question, 2 à la troisième et 3 à la quatrième. La deuxième fille répond 3 à la première question, 2 à la seconde, 1 à la troisième et 0 à la quatrième et ainsi de suite... Voici le tableau affiché par mon programme : 4 garçons répondent également au même questionnaire et le premier garçon a donné les mêmes réponses que la première fille.
On transpose le tableau des garçons, on change les lignes en colonnes et les colonnes en ligne, ainsi donc chaque ligne correspond à une question et chaque colonne correspond à la réponse d'un garçon. Cette transposée de matrice permettra de calculer le nombre d'occurrences c est-à-dire le nombre de réponses communes entre la matrice filles et la matrice garçons. On obtient alors une nouvelle matrice dans le cadre rouge. Le 4 encadré en rose signifie qu'il y a 4 réponses en commun entre le premier garçon et la première fille, on doit alors partager leur fiche. Au premier tour on ne partage pas la fiche de la première fille et du deuxième garçon, car la fille a déjà partagé sa fiche avec le premier. Une perspective pour aller plus loin serait que si le premier garçon n'intéresse finalement pas la fille, le deuxième garçon et la fille partageraient alors leur fiche. On pourrait arrêter le rapprochement avec un seuil d'une réponse en commun entre une fille et un garçon. Je me suis servie aussi d'une double boucle pour mon programme : cette double boucle permet d'accéder à chaque case du tableau ligne par ligne et colonne par colonne pour chaque ligne.
Bilans et perspectives : Ce que je proposerai pour améliorer mon projet : aller vers la messagerie instantanée et l'appel en visioconférence pour être plus moderne et améliorer le programme sur le partage de fiche Ce que j'ai appris en travaillant sur ce projet : J'ai beaucoup appris avec ce projet du fait que je n'ai pas beaucoup d'expérience en programmation à part ce que l'on m'a appris cette année, j'ai appris à utiliser une base de données, à comprendre ce qu'est le PHP et le SQL grâce aux explications de mes coéquipiers.
Annexes : PHP : c'est un langage de programmation libre qui permet de rendre une page plus dynamique CSS :( feuille de style en cascade) elle permet la mise en forme de la page comme mettre de la couleur par exemple HTML : c'est le langage universel utilisé par tous les navigateurs web. Base de donnée SQL : c'est un langage de définition de données c est-àdire qu'elle permet de créer des tables dans une base de données et on peut modifier ou supprimer. Programme sur le partage de fiche : PFont f; //int[][] réponsefille = 0, 1, 2, 3, 3, 2, 1, 0, 0, 1, 0, 0 ; int[][] réponsegarçon = 0, 1, 2, 3,
0, 1, 2, 3, 0, 1, 0, 0, 1, 0, 1, 0 ; void setup() int[][] result; int[][] t_réponsegarçon; printmatrix(réponsefille); println();// pour eviter que les réponses de chaque fille soit sur la même ligne printmatrix(réponsegarçon); println(); t_réponsegarçon=transposematrix(réponsegarçon);// transposer la matrice signifie qu'on échange les colonnes en lignes. printmatrix(t_réponsegarçon); println(); result=(multimatrix(réponsefille, t_réponsegarçon)); printmatrix(result); void draw() void printmatrix(int[][] matrix) for (int i=0 ; i<matrix.length ; i=i+1)//length: à chaque fois qu'on ajoute une personne on n'a pas beson de changer tout le programme
for (int j=0 ; j<matrix[0].length ; j=j+1)// au lieu de mettre j<5 print("["+matrix[i][j]+"]"); println(); int[][] transposematrix(int[][] matrix) int[][] result; result = new int[matrix[0].length][matrix.length]; for (int i=0 ; i<result.length ; i=i+1) for (int j=0 ; j<result[0].length ; j=j+1) result[i][j] =matrix[j][i]; return result; int[][] multimatrix(int[][] tableaufille, int[][] tableaugarçon) int[][] result; result = new int[tableaufille.length][tableaugarçon[0].length]; for (int i=0 ; i<result.length ; i=i+1) for (int j=0 ; j<result[0].length ; j=j+1) result[i][j] = 0; for (int k=0 ; k<tableaugarçon.length ; k=k+1) if (tableaufille[i][k]==tableaugarçon[k][j]) result[i][j] =result[i][j]+1; return result;