Hackathon
Périodes: 2023-2024
Symfony
Cette application servirait à la gestion de l'inscription, du positionnement, de la clôture et des résultats d'un hackathon dans le contexte du projet Hackat'Innov.
Java
Cette application servirait à la gestion de la configuration (initialisation et planification) d'un hackathon dans le contexte du projet Hackat'Innov.
Compétences : HTML/CSS, PHP 8.3.3 (Symfony), MySQL, Java, GIT.
Gérer le patrimoine informatique.
Répondre aux incidents et aux demandes d’assistance et d’évolution.
Développer la présence en ligne de l’organisation.
Travailler en mode projet.
Mettre à disposition des utilisateurs un service informatique.
Organisation du projet
User Stories

Nous avons estimé le temps nécessaire pour chaque tâche et les avons réparties entre les différents membres du projet. Pour assurer le suivi de l'avancement, nous avons utilisé le système de "issues" sur Framagit. Ce système permet la collaboration entre les membres de l'équipe, chacun peut suivre le progrès global du projet, identifier les éventuels blocages, et apporter son aide si nécessaire. En organisant le travail de cette manière, nous avons améliorer l'efficacité du projet.
Framagit : Issues
Diagramme de PERT

Diagramme de GANT

Les diagrammes de Gantt et de PERT nous aident à visualiser la durée totale du projet et à déterminer quelles tâches doivent être effectuées en priorité. Le diagramme de Gantt fournit une représentation chronologique des tâches et de leur durée, ce qui facilite le suivi de leur progression et des dépendances entre elles. Le diagramme de PERT, quant à lui, met l'accent sur les relations entre les tâches et aide à identifier les chemins critiques du projet, soulignant les étapes qui influencent le plus la durée totale.
Framagit : Commits/Branchs
Le projet est organisé en différentes branches, chacune représentant une ligne de développement distincte. Cela nous permet de travailler sur plusieurs fonctionnalités ou correctifs en parallèle sans interférer les uns avec les autres. À chaque modification significative du code, nous effectuons des commits, qui permettent de suivre l'historique des changements. Cela assure un versioning efficace, permettant de revenir à une version précédente si nécessaire, de comparer les différences entre les versions, et de collaborer plus facilement entre les membres de l'équipe.
Modèle relationel
Member (id, firstname, lastname, idUser)
clé primaire : id
clé étrangère : idUser référence User(id)
User (id, memberid, username, roles, password)
clé primaire : id
Participation (id, hackathonid, memberid, roleid, details, idHackathon, idMember)
clé primaire : id
clés étrangères : idHackathon référence Hackathon(id), idMember référence Member(id)
Role (id, name)
clé primaire : id
Hackathon (id, name, topic, description, lieu, date, objectifs, theme, type_inscription)
clé primaire : id
Modèle conceptuel

Diagramme des classes

Serie de tests
Dans la partie Java, nous avons mis en place une série de tests pour valider l'ajout d'un jury dans la base de données, en utilisant le framework JUnit. Ces tests sont nécessaire pour assurer la qualité du projet, ils permettent de vérifier l'intégrité des données. Plus précisément, ces tests nous permettent de détecter la présence de doublons parmi les jurys, assurant ainsi que chaque jury soit unique et que les informations ne soient pas redondantes.
Les tests permettent egalement de renvoyer un message d'erreur clair dans le cas d'un doublons. De cette manière, ils aident à prévenir l'introduction de données incorrectes dans la base de données, assurant que le système reste fiable.