diff --git a/rapport.pdf b/rapport.pdf index a15038e8ae1cc13ac000c12ccc0302304227a643..9f4a00dc9afeaffae51fb698cb3f5f1a74b7b22d 100644 Binary files a/rapport.pdf and b/rapport.pdf differ diff --git a/rapport.tex b/rapport.tex index afa80dad98bfe74c1f5596750701f66b058507cd..51dea34400c7988e74cd78cda269412b2debba3c 100644 --- a/rapport.tex +++ b/rapport.tex @@ -35,7 +35,7 @@ Notre groupe est composé des membres suivants : Notre projet est un projet libre, néanmoins inspiré du projet d'application de ranking pour babyfoot proposé par votre équipe. Ainsi, nous avons également choisi de travailler sur une application de classement, mais plutôt pour des jeux de société compétitifs. Le site est donc issu d'un besoin de compétition sur ces jeux, mais également d'un besoin d'interaction sociale à travers ces compétitions. -La raison principale de ce choix est que la plupart des membres de notre groupe sont eux-mêmes des joueurs de jeux de société au sein de l'ENSIIE et que nous avons trouvé cela motivant de pouvoir travailler sur un projet nous concernant, et pouvant même être réutilisé par la suite une fois le projet terminé. +La raison principale de ce choix est presque tous les membres de notre groupe sont eux-mêmes des joueurs de jeux de société au sein de l'ENSIIE et que nous avons trouvé cela motivant de pouvoir travailler sur un projet nous concernant, et pouvant même être réutilisé par la suite une fois le projet terminé. \section*{Approche mise en place} @@ -47,13 +47,13 @@ Nous avons utilisé Git durant toute la durée du projet afin de pouvoir travail \section*{Problématiques rencontrées (techniques et méthodes) et solutions apportées} -Au cours de notre développement, nous nous sommes heurtés à plusieurs problèmes, et ce à différents niveaux. D'un point de vue méthodologique, nous faisions l'erreur de fonder nos fichiers (vue/contrôleur) sur la base de données, ce qui nous a été indiqué lors de la deuxième séance de projet. Cela avait tendance à nous brider un peu sur le développement de certaines fonctionnalités, et une fois ce problème identifié, nous avons pu nous libérer de cette contrainte, modifiant la structure de la base et rajoutant des modules autant que nécessaire. Par ailleurs, les nombreux changements sur la base par chacun des membres de l'équipe ont entrainés souvent des divergences entre les différentes branches, et ont donc demandé de nombreuses régénérations de bases dans chacune des bases personnelles de développement. Cela aurait pu être corrigé en travaillant directement avec une base sur un serveur commun de développement. +Au cours de notre développement, nous nous sommes heurtés à plusieurs problèmes, et ce à différents niveaux. D'un point de vue méthodologique, nous faisions l'erreur de fonder nos fichiers (vue/contrôleur) sur la base de données, ce qui nous a été indiqué lors de la deuxième séance de projet. Cela avait tendance à nous brider un peu sur le développement de certaines fonctionnalités, et une fois ce problème identifié, nous avons pu nous libérer de cette contrainte, modifiant la structure de la base et rajoutant des modules autant que nécessaire. Par ailleurs, les nombreux changements sur la base par chacun des membres de l'équipe ont entraîné souvent des divergences entre les différentes branches, et ont donc demandé de nombreuses régénérations de bases dans chacune des bases personnelles de développement. Cela aurait pu être corrigé en travaillant directement avec une base sur un serveur commun de développement. -Il y a également eu des débats internes au groupe sur l'algorithme de classement à utiliser. En effet au début du projet l'algorithme ELO n'était pas une évidence pour tout le monde, et un simple système d'ajout/retrait de points fixes semblait suffire. Mais, en expliquant les principaux intérêts de l'algorithme (prendre en compte le niveau des joueurs pour attribuer la quantité de points) le groupe fut finalement convaincu d'utiliser cet algorithme. Cependant, le fait de devoir adapter l'algorithme à plusieurs types de jeu demandait des efforts supplémentaires, que certains membres n'étaient pas prêts à prendre. Mais Eliah Rebstock, qui avait proposé l'algorithme après quelques recherches sur le sujet, accepta de prendre charge de celui-ci. +Il y a également eu des débats internes au groupe sur l'algorithme de classement à utiliser. En effet, au début du projet, l'algorithme ELO n'était pas une évidence pour tout le monde, et un simple système d'ajout/retrait de points fixes semblait suffire. Mais, en expliquant les principaux intérêts de l'algorithme (prendre en compte le niveau des joueurs pour attribuer la quantité de points) le groupe fut finalement convaincu de la nécessité d'utiliser cet algorithme. Cependant, le fait de devoir adapter l'algorithme à plusieurs types de jeu demandait des efforts supplémentaires, que certains membres n'étaient pas prêts à prendre. Mais Eliah Rebstock, qui avait proposé l'algorithme après quelques recherches sur le sujet, accepta de prendre charge de celui-ci. -Enfin, un manque d'objectifs au début du projet nous a menés à ne pas beaucoup avancer les premiers temps, car aucune liste précise des choses à faire n'était établie. Nous avons tenté de corriger le problème à l'aide des issues sur Git, mais c'est finalement la réalisation d'une liste de TODO qui nous a réellement permis d'avancer de façon productive. De cette façon, chacun pouvait se lancer dans le développement d'un point de la liste, et une fois ce point terminé, pouvait se lancer dans un autre sans nécessité de se concerter avec les autres, puisque ceux-ci étaient occupés sur d'autres tâches déjà identifiées. +Enfin, un manque d'objectifs au début du projet nous a menés à ne pas beaucoup avancer les premiers temps, car aucune liste précise des choses à faire n'était établie. Nous avons tenté de corriger le problème à l'aide des issues sur Git, mais c'est finalement la réalisation d'une liste de TODO qui nous a réellement permis d'avancer de façon productive. De cette façon, chacun pouvait se lancer dans le développement d'un point de la liste, et une fois ce point terminé, pouvait se lancer dans un autre sans nécessité de se concerter avec les autres membres, puisque ceux-ci étaient occupés sur d'autres tâches déjà identifiées. -Au niveau technique maintenant, nous avons rencontré d'autres soucis. Par exemple, un bug qui ne réalisait pas les bonnes redirections sans raison apparente. Il s'est avéré que le souci venait d'un manque d'accolades dans le code, ainsi que de la nécessité de cesser l'exécution du reste du fichier après la redirection à l'aide de la fonction die(); de PHP. Parmi les soucis techniques, nous pouvons également penser au fait qu'aucun d'entre nous n'avait utilisé MVC en pratique dans un contexte web, qu'aucun d'entre nous ne maitrisait JavaScript, ni le responsive design en CSS, et pour palier à ces soucis, il nous a fallu avoir une démarche d'autodidacte, ce qui a ralenti le développement. +Au niveau technique maintenant, nous avons rencontré d'autres soucis. Par exemple, un bug qui ne réalisait pas les bonnes redirections sans raison apparente. Il s'est avéré que le souci venait d'un manque d'accolades dans le code, ainsi que de la nécessité de cesser l'exécution du reste du fichier après la redirection à l'aide de la fonction \verb|die();| de PHP. Parmi les soucis techniques, nous pouvons également penser au fait qu'aucun d'entre nous n'avait utilisé MVC en pratique dans un contexte web, qu'aucun d'entre nous ne maitrisait JavaScript, ni le responsive design en CSS, et pour palier à ces soucis, il nous a fallu avoir une démarche d'autodidacte, ce qui a ralenti le développement. \section*{Répartition des tâches} @@ -61,7 +61,7 @@ Une répartition des tâches s'est mise en place dès les travaux préparatoires Pendant une première phase du projet, Guillaume Sézille a mis en place une première version de la base de données, Vincent Bochet a travaillé sur la mise en place d'une structure MVC utilisable par tous les membres du groupe, tandis que Romain Drouin réfléchissait à de nouvelles fonctionnalités. En parallèle Eliah Rebstock a fait des maquettes pour le site et mis en place des pages tests afin d'implémenter le design qui allait devenir celui du site. Certaines parties comme les headers et footers seront reprises dans le design final, tout comme certaines pages converties en vues. -Une fois que la structure MVC a été mis en place, il fut possible de commencer à travailler sur les différents modèles du site. Ainsi, Eliah Rebstock s'est focalisé sur la l'ajout de partie, la mise en place d'un algorithme ELO amélioré capable de gérer les différents types de jeu disponibles et la page de classement global. Vincent Bochet a mis en place l'authentification ainsi que les pages d'accueil, de contact, la page de profil, le menu, la migration de la base de données sous PostgreSQL (au lieu de MySQL). Romain Drouin a, lui, pris en charge la gestion des images pour les jeux et les membres, l'édition de profil et l'interface d'administration. +Une fois que la structure MVC a été mis en place, il fut possible de commencer à travailler sur les différents modèles du site. Ainsi, Eliah Rebstock s'est focalisé sur l'ajout de partie, la mise en place d'un algorithme ELO amélioré capable de gérer les différents types de jeu disponibles et la page de classement global. Vincent Bochet a mis en place l'authentification ainsi que les pages d'accueil, de contact, la page de profil, le menu, la migration de la base de données sous PostgreSQL (au lieu de MySQL). Romain Drouin a, lui, pris en charge la gestion des images pour les jeux et les membres, l'édition de profil et l'interface d'administration dans sa totalité. \end{document} \ No newline at end of file