\chapter{Outils}

\section{Introduction}
Dans ce chapitre, je vais donc décrire sommairement les différents outils utilisés lors de la réalisation de ce travail de Bachelor. Ceci est important afin de comprendre comment j'ai pu mettre en place les méthodologies de travail que j'explique plus tard.

On ne peut pas construire quelque de solide sans de bons composants, et il en va de même pour n'importe quel projet. Pour réaliser un travail de qualité et avoir une productivité optimale, il faut de bons outils et savoir s'en servir. Travailler dans un milieu dans lequel je suis à l'aise et dans un environnement que je maîtrise me permet d'être efficace et de ne pas perdre de temps à chercher comme faire ce que je veux.

Un des avantages à travailler dans le développement informatique est qu'il existe une très grande quantité d'outils pour résoudre presque toutes les problématiques. Le désavantage de cela, c'est qu'il faut ensuite choisir parmi tous ceux existants, celui qui sera le plus adéquat. Au final, cela sera souvent un choix personnel, car il y a souvent plusieurs possibilités valables. Le fait que l'on ait déjà travaillé avec, que l'on préfère l'ergonomie ou plein d'autres arguments encore. Au final, c'est souvent la communauté autour d'un outil qui le fera évoluer (de façon direct ou indirect).

Dans mon cas, je travaille sur plusieurs systèmes d'exploitation différents, avoir donc une solution multi-plateforme est important, mais aussi rester simple. J'essaie toujours d'éviter de devoir utiliser une solution différentes pour chaque technologie que je dois utiliser, si je peux développer et rédiger mon rapport en utilisant les mêmes outils, c'est bien plus agréable. Et c'est ce que j'ai fait ici.

\section{GitLab}

Déjà présenté dans le cadre de la pré-étude, GitLab\cite{gitlabsite} est une solution de forge logiciel OpenSource mais propose également des fonctionnalités pour la gestion de projets, ainsi pour pour le CI/CD. C'est un outil central dans le cadre de la réalisation de ce projet, car à lui seul, il a permit de gérer les dépôts de tous les codes sources du projet (y compris ce présent rapport), de mettre en place un système de tests automatisés et de déploiement continu. Il m'a également servis pour découper les différentes user stories en taches, que j'ai utilisée pour mettre en pratique le git flow.

\section{GitKraken}

GitKraken\cite{gitkrakensite} est un client graphique qui permet de gérer les projets Git. Il permet de gérer les branches, les merges, rebase facilement. Il fournit un affichage en arbre de l'évolution du projet. 

\section{Visual Studio Code}

\section{Postman}
