Skip to content

Collaboration

David Pellissier edited this page Jan 28, 2022 · 7 revisions

Workflow

Le projet fonctionne sur le principe de "Feature Branch". Chaque collaborateur du projet qui veut contribuer doit créer une issue qui décrit ce qu'il va faire (en reprennant les informations de la story) et créer une branche sous la forme "fb-nomDuFeature".

Lorsque le feature est implémenté, le contributeur doit faire une pull request qui référence son issue et y assigne des collaborateur pour une review.

Si les reviewers sont d'accord et que les tests passent, ils mergent la feature branch sur "dev". Lorsque le sprint se termine, la branche "dev" et merge dans "main" et le projet est automatiquement déployer sur le serveur si tous les tests passent grâce aux Github Actions

Pratiques

Le projets suit les pratiques SCRUM.

Au début de chaque sprint, l’équipe écrit les stories liées à celui-ci sur iceScrum et commence a travailler dessus ainsi que sur les stories en backlog.

Chaque semaine, l'équipe discute de l'avancée du projet.

A la fin du sprint, L’équipe regarde ce qui à été terminé et mets les stories non terminées dans le backlog pou le prochain sprint.

Outils

Cette partie décrit les outils de collaboration utilisés dans ce projet.

Github

Github nous permet de travailler à plusieurs sur le projet en distribuant nos tâches en fonctions des features à ajouter. Il nous permet aussi de suivre l’évolution du projet grâce à la section Projet qui nous permet de manager nos sprint et de voir rapidement sur quoi chacun travail.

IntelliJ IDEA Ultimate

Nous utilisons IntelliJ IDEA Ultimate comme IDE car il intègre J2EE sans modifications et nous permet de commencer avec un template d'application web ce qui nous permet de commencer le projet plus rapidement.

Il intègre aussi la gestion de git ce qui nous permet de crée des feature branch et de commit plus rapidement.

Docker

Afin de setup un environnement de développement rapidement et identique pour tout le monde, nous utilisons Docker pour de faire tourner un serveur MySQL ainsi qu'adminer qui nous permet de voir l'état de la base de données de manière graphique. La description pour l'installation se trouve dans le dossier "Setup/Docker" du projet.

Discord

Discord nous permet de collaborer vocalement et de discuter du projet dans des canaux spécifiques. Nous pouvons aussi envoyer des fichiers et garder un historique de la conversation.

Avec l'utilisation de webhooks, nous pouvons être alerté lorsque un test unitaire ne passe pas ou que quelqu'un ferme une issue.

Telegram

Telegram est utilisé pour discuter en dehors des heures assignées au projet et pour gérer l'organisation.

iceScrum

Nous permet d'appliquer le management agile scrum dans la réalisation de notre projet. Toute l'équipe peut collaborer sur les taches et avoir une vue globale de l'avancée du projet et du planning.

Clone this wiki locally