Pour démarrer ce projet, il a fallu commencer par choisir soigneusement les différents composants que je pensais utiliser.

J’ai essayé d’utiliser au maximum des composants libres et Open-Source ou alors présentant une alternative simple à mettre en oeuvre.

Il y a donc :

L’IDE

La base de données

Le framework pour le Front End

Le framework pour le Back End

L’hébergement des sources

Le choix de l’IDE

Travaillant depuis des années avec l’excellent IntelliJ IDEA édité par Jetbrains, c’est tout logiquement que j’ai décidé de l’utiliser.

Logo IntelliJ

Il y a quelques années, suite à une présentation faite au JUG de Lyon, j’ai eu droit à une licence Ultimate offerte.

Une fois expirée, j’ai souhaité la poursuivre pour pouvoir bénéficier des avantages qu’elle procure (intégration des outils de base de données, outillage liée à Spring, etc.).

Après, la version Community suffit amplement pour débuter gratuitement avec cet IDE.

Le choix de la base de données

Pour la base de données, mon choix s’est tourné vers PostgreSQL.

Logo PostgreSQL

Un SGBD robuste mais pour autant simple à mettre en place.

Pour faciliter son installation et mettre ne pas avoir à l’installer de manière trop invasive sur mon poste, j’a opté pour un container Docker, mais on y reviendra.

Le framework pour le Front End

Pour le Front, le choix a été plus difficile à faire : On en trouve de partout, de tous les types.

Comme cette application devait être accessible depuis Internet (c’est idiot à dire, mais c’est le genre de détail qui vaut le coup d’être précisé : à qui s’adresse notre application et pour quel usage ?), il fallait donc un framework web.

Lors de la création d’un projet Spring, l’assistant IntelliJ propose plusieurs solutions pour le Front dont une qui a éveillé quelques souvenirs dans ma mémoire : Vaadin.

Logo Vaadin

L’avantage de cette solution, c’est que le développement du Front se fait au même endroit que le Back : dans le code Java du projet.

Le framework pour le Back End

Enfin, pour le Back, j’ai décidé de partir avec un des frameworks les plus populaires du moment : Spring.

Logo Spring

Et plus précisément, Spring Boot, pour la facilité de déploiement qui va avec.

Et bien entendu, les différentes briques qui composent Spring : la sécurité, l’accès aux données, les tests unitaires.

Hébergement des sources

Utilisateur de longue date de Gitlab, j’ai décidé de continuer à utiliser cette plate-forme, surtout pour sa solution d’intégration et de déploiement continus via des runners, complètement intégrée au projet.

Logo Gitlab