diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b8bac5661d5c3fe118281a684854cf403007b430
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="demo" />
+      </profile>
+    </annotationProcessing>
+    <bytecodeTargetLevel>
+      <module name="back-skeleton" target="17" />
+    </bytecodeTargetLevel>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="back-skeleton" options="-parameters" />
+      <module name="demo" options="-parameters" />
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..011943d6a313eef335c129d862398a1bbcc1b701
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/back-skeleton/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/webapp-hello-world/src/main/java" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/java-angular.iml b/.idea/java-angular.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824
--- /dev/null
+++ b/.idea/java-angular.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b110ad93a7c9448d99b7211aac7d850ae1931a62
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/webapp-hello-world/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7b809a66b325a9b1b554764f677e816084a77157
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/java-angular.iml" filepath="$PROJECT_DIR$/.idea/java-angular.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/HELP/GIT-CHEATSHEET.md b/HELP/GIT-CHEATSHEET.md
new file mode 100644
index 0000000000000000000000000000000000000000..225327c27b9440ad58b6120bbf4d48388a006508
--- /dev/null
+++ b/HELP/GIT-CHEATSHEET.md
@@ -0,0 +1,86 @@
+# GIT CHEAT SHEET
+Quelques informations pratiques pour la mise en place d'un projet de petite envergure avec git.
+
+## Démarrer un projet
+Initialiser votre git en ouvrant une console à la racine de votre projet:
+```
+> git init
+```
+Si ce n'est pas déjà le cas, configurer votre clé ssh avec votre compte en ligne : [Clé SSH sur Gitlab](https://gitlab.com/-/profile/keys).
+
+Établir le lien entre votre dossier local et le repository que vous avez créé en ligne (récupérer l'**url** en cliquant sur "clone" sur GitLab):
+```
+> git remote add origin <url>
+```
+Créer votre première branche (qui sera la branche principale pour la suite du projet):
+```
+> git checkout -b master
+```
+Ajouter dans *.gitignore* les fichiers/dossiers qu'on ne veut pas pousser avec le projet.
+Une fois fait, créer un premier commit qui englobe l'ensemble des sources sur la branche principale :
+```
+> git commit -am "[CHORE] First commit"
+```
+Pousser le commit tout juste créé tout en liant la branche locale à son équivalent sur le repository.
+```
+> git push --set-upstream origin master
+```
+Vérifier l'état du repository sur Gitlab. Les autres contributeurs pourront cloner le projet :
+```
+> git clone <url>
+```
+
+
+## Au quotidien
+Toujours *pull* la dernière version de la branche principale avant d'en créer une nouvelle:
+```
+> git checkout master
+> git pull origin master
+> git checkout -b ma-super-branche
+```
+Toujours sauvegarder mes modifications dans un *commit* quand je finis une étape importante de mon développement ou que je dois fermer mon ordinateur:
+```
+> git add .
+> git commit -m "Une description de mon avancement"
+> git push origin ma-super-branche
+```
+Toujours *rebaser* ma branche sur la branche principale si des changements y ont été ajoutés depuis la dernière fois:
+```
+> git checkout master
+> git pull
+> git checkout ma-super-branche
+> git rebase master
+```
+Et résoudre les conflits dans IntelliJ si besoin.
+
+## Pratique
+Pour voir l'historique des derniers commits de la branche sur laquelle je suis:
+```
+> git log
+```
+Pour voir tous les fichiers modifiés depuis le dernier commit, ou carrément toutes les modifications:
+```
+> git status
+> git diff
+```
+Pour récupérer les informations des nouvelles branches créées sur le repository:
+```
+> git fetch origin
+```
+Lorsque j'ai des modifications en attente que je ne veux pas commiter, je peux les ajouter à la pile des brouillons:
+```
+> git stash
+```
+Pour ajouter mes modifications au sein du dernier commit, plutôt que dans un nouveau:
+```
+> git commit --amend
+```
+Pour pousser ma branche après avoir modifié son historique (après un *rebase* ou un *amend* par exemple):
+```
+> git push --force
+```
+Lorsque je suis au bout de ma vie:
+```
+> git --help
+```
+N'oubliez pas de jeter un coup d'oeil à l'arbre git de votre repository, il contient toutes les informations dont vous avez besoin pour comprendre ce qu'il se passe !
diff --git a/HELP/Raccourcis-Intellij.md b/HELP/Raccourcis-Intellij.md
new file mode 100644
index 0000000000000000000000000000000000000000..8e70ad15f2f1a0d9d38d570fcdb93563951afa63
--- /dev/null
+++ b/HELP/Raccourcis-Intellij.md
@@ -0,0 +1,34 @@
+Raccourcis IntelliJ par défaut Windows/Linux
+====
+
+
+note : c'est globablement les mêmes sur Mac, remplacer juste `Ctrl` par `command` et `alt` par `control`.
+
+
+Vous pouvez retrouver l'ensemble des raccourcis Intellij dans Preferences -> Keymap --> Editor Actions
+C'est aussi ici que vous pouvez les modifier à votre sauce. 
+
+
++ Selection multiple : `Ctrl + shift + MAJ + clique`
+
++ Duplique la sélection : `Ctrl + D`
+
++ Elargie la selection : `Ctrl + W`
+
++ Selectionne les autres occurrences : `Ctrl + J ou Alt + J`
+
++ Fast access (le graal) : `shift + shift`  
+—> Permet de chercher n’importe quel fichier ou fonctionnalité présente dans IntelliJ
+(IntelliJ est en anglais donc il faut chercher en anglais les fonctionnalités)
+
++ Recherche classique : `Ctrl + F`
+
++ Recherche dans tout le projet :  `Ctrl + MAJ + F`
+
++ Equivalent du Alt + Tab pour les fichiers IntelliJ : `Ctrl + Tab`
+
++ Reformater le code (clean tout tes espaces et indentation) : `Ctrl + Alt + L`
+
++ Supprime les imports pas utiliser : `Ctrl + Alt + O`
+
++ Commenter les lignes selectionnées : `Ctrl + /`
diff --git a/HELP/TROUBLESHOOTING.md b/HELP/TROUBLESHOOTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..eaf736a9468958be862e8307debfb00a4d3149f9
--- /dev/null
+++ b/HELP/TROUBLESHOOTING.md
@@ -0,0 +1,45 @@
+# Troubleshooting
+
+Ici, nous avons consigné la plupart des choses que vous pouvez rencontrer sur votre chemin avant d'avoir un projet qui **run**.
+
+## VT-x/AMD-V hardware acceleration is not available on your system
+Lancer dans un powershell admin: `docker-machine create default --virtualbox-no-vtx-check`.
+
+Si ça ne marche toujours pas, installer la **dernière version** (6.X) de VirtualBox.
+
+Si cela ne fonctionne toujours pas, vérifier :
+ * Qu'il soit activé dans le BIOS (c'est généralement le cas)
+ * Que Hyper-V est désactivé dans Windows (dans un invite de commande admin : `dism.exe /Online /Disable-Feature:Microsoft-Hyper-V`
+
+## Docker
+
+`Looks like something went wrong in step 'Looking for vboxmanage.exe' ... Press any key to continue...`  
+Désinstaller Docker et Virtual Box. Dans l'explorateur de fichier, à la racine de votre utilisateur (C:/utilisateurs/%user%/), supprimer les dossiers .docker et .virtualBox.
+Réinstaller Docker
+
+`Unable to locate bash.exe `  
+Pointer vers le répertoire d'installation de Git (C:\Program Files (x86)\Git\bin\bash.exe par défaut)
+
+
+## IP Hote Docker pour Windows 
+
+Si vous êtes sur Windows Home ou Family, Docker utilisera une VM Virtualbox pour faire fonctionner vos containers.
+Du coup, l'adresse de tous les services (càd la DB) ne sera pas `localhost` mais `192.168.99.100`
+
+## Application qui ne démarre pas
+
+Si quand vous lancez votre application Spring Boot, vous avez des messages d'erreur qui ressemblent à cela (quand vous fouillez dans la Stacktrace) :  
+`Caused by: java.net.ConnectException: Connection refused (Connection refused)`
+
+ou
+
+`Caused by: java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:localhost, port:3306. Connection refused (Connection refused)`
+
+C'est que vous avez un soucis de connexion entre votre application et votre DB.
+
+1. Vérifiez que votre DB est bien lancée et que vous pouvez y accéder via votre client SQL (Intellij IDEA, PhpMyAdmin, Adminer, MySQLWorkbench, etc...)
+2. Vérifiez que le host, le login / password, et le port sont bien indiqués et sont les bons (si vous êtes sur windows ou pas, cela peut changer !!!) dans `src/main/resources/application.properties`
+
+## Dépendances externes qui ne compilent pas (Spring, ou autre)
+
+Vous pouvez réimporter le projet maven, en cliquant sur l'onglet "Maven" tout à droite de votre écran.
diff --git a/README.md b/README.md
index c34169590b9b7ed6e876ba1ea78c09044f606162..f0411caedaf1fe6ac349a201f52c2c2901b62a10 100644
--- a/README.md
+++ b/README.md
@@ -1,92 +1,183 @@
-# java-angular
+# Set up cours Java Spring Boot
+
+## I. Installation
+**2 méthodes d'installation sont possibles : par téléchargements Internet ou par Clé USB**
+### Windows
+#### Par téléchargements Internet :
+- Docker : https://docs.docker.com/desktop/install/windows-install/
+- Intellij : https://www.jetbrains.com/fr-fr/idea/download/#section=windows
+
+#### Par clé :
+- Récupère le fichier **Windows** et exécute les .exe
+
+### Mac
+Pour les puces M1 ou M2 choisis *Apple Chip* & *(Apple Silicone)*
+Pour les puces Intel choisis *Intel Chip* & *(Intel)*
+
+#### Par téléchargements Internet :
+- Docker  : https://docs.docker.com/desktop/install/mac-install/
+- Intellij : https://www.jetbrains.com/fr-fr/idea/download/#section=mac
+
+#### Par clé :
+- Récupère le fichier **Mac** correspondant à la bonne puce et exécute les .exe
+
+### Linux
+#### Commandes pour les installations :
+- Docker : <br>
+    - `curl -fsSL https://get.docker.com -o get-docker.sh` <br>
+    - `sudo sh get-docker.sh`
+    - `sudo usermod -aG docker $USER`
+- Intellij : <br>
+    - `sudo snap install intellij-idea-ultimate --classic`
+
+#### Par clé :
+- Récupère les lignes de commandes dans le fichier du dossier Linux
+
+## II. Set up Intellij
+### 1. Création compte
+Intellij est un IDE super complet et est devenu un indispensable pour le développement de projet Java. <br>
+
+Avec ses recherches de fichiers optimisées, ses auto-complétions et ses raccourcis à gogo, Intellij améliore grandement l'expérience de développement.
+Le Graal étant que Maven y est de base intégré et que tu puisses
+télécharger n'importe quelle version de Java directement depuis ton IDE (non ce n'est pas un rêve !)<br>
+
+Cerise sur le gateau grâce à ton compte EPF, tu peux gratuitement obtenir une licence de la version payante (ultimate).
+Elle est essentielle au bon déroulement du TP car, avec cette dernière, tu pourras notamment visualiser ta base de données et interagir avec elle directement depuis IntelliJ. <br>
+Pour te créer un compte, suis ce lien et effectue les actions détaillées ci-dessous : https://www.jetbrains.com/fr-fr/idea/
+
+<p align="center">
+<img src="img-readme/main-readme/img.png" width="500"/>
+<img src="img-readme/main-readme/img2.png" width="500"/>
+</p>
+
+### 2. Licence Intellij
+Pour récupérer une licence gratuite utilise ce lien : https://jetbrains.com/shop/eform/students
+
+### 3. Lancer Intellij
+Une fois ta licence récupérée, lance l'IDE et relie ton compte
+<p align="center">
+<img src="img-readme/main-readme/img3.png" width="600"/>
+<img src="img-readme/main-readme/img4.png" width="600"/>
+</p>
+
+### 4. Clonage du projet
+Pour récupérer le repository GitHub du TP, lance `git clone https://github.com/resourcepool/training-spring-boot.git`
+
+Tu y trouveras toutes les ressources nécessaires à la suite du TP.
+
+Dans Intellij, effectue ensuite les actions suivantes :
+<p align="center">
+<img src="img-readme/main-readme/img5.png" width="400"/>
+<img src="img-readme/main-readme/img6.png" width="400"/>
+</p>
+
+### 5. Téléchargement de Java 17
+Depuis Intellij, tu peux directement télécharger Java 17 : <br>
+<p align="center">
+<img src="img-readme/main-readme/img7.png"/>
+<img src="img-readme/main-readme/img8.png" width="600"/>
+<img src="img-readme/main-readme/img9.png" width="600"/>
+<img src="img-readme/main-readme/img10.png" width="600"/>
+</p>
+
+### 6. Ouvrir un terminal dans Intellij
+<p align="center">
+<img src="img-readme/main-readme/img11.png" width="600"/>
+</p>
+<br>
+Tu peux également changer de Shell (Surtout utile pour les Windows)<br>
+<br>
+<p align="center">
+<img src="img-readme/main-readme/img12.png" width="500"/>
+</p>
+<br>
+
+Sélectionne *Git Bash*
+<p align="center">
+<img src="img-readme/main-readme/img13.png" width="500"/>
+</p>
+
+## III. Set up
+de la BDD via Docker
+### 1. Docker
+Lance le Docker Desktop en cliquant sur l'icône, tu dois obtenir l'écran suivant :
+<p align="center">
+<img src="img-readme/main-readme/img14.png" width="800"/>
+</p>
+Ferme et ré-ouvre ton application IntelliJ pour que les changements effectués par l'installation de Docker soit pris en compte.<br>
+Pour s'assurer que ton install Docker a bien fonctionné, lance la commande suivante dans ton terminal :  <br>
+`docker run hello-world` <br>
+Tu dois obtenir ce résultat : <br>
+<br>
+<p align="center">
+<img src="img-readme/main-readme/img15.png" width="600"/>
+</p>
+
+Tu peux alors lancer la base de données MariaDB qui sera utilisée tout au long du TP :<br>
+`docker run --name mariadb --rm -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=defaultdb -p 3306:3306 mariadb`
+
+### 2. Afficher la BDD dans Intellij
+Effectue les étapes suivantes :
+<p align="center">
+<img src="img-readme/main-readme/img16.png" width="700"/>
+<img src="img-readme/main-readme/img17.png" width="700"/>
+</p>
+
+Installe les drivers si besoin :
+<p align="center">
+<img src="img-readme/main-readme/img18.png" width="500"/>
+</p>
+
+Saisie les infos (1-3), puis test la connexion à la bdd (4)
+<p align="center">
+<img src="img-readme/main-readme/img19.png" width="500"/>
+<img src="img-readme/main-readme/img20.png"/>
+</p><br> 
+
+Si c'est valide, clique sur *OK* (5)
+
+### 3. Initialisation de la BDD
+C'est cool d'avoir une BDD qui fonctionne mais c'est encore plus cool quand on peut lui insérer des données en 2 clics :
+<p align="center">
+<img src="img-readme/main-readme/img21.png" width="500"/>
+</p>
+Clic droit + run : 
+<p align="center">
+<img src="img-readme/main-readme/img22.png" width="400"/>
+<img src="img-readme/main-readme/img23.png" width="500"/>
+</p>
+
+Tadaaaam (j'avoue un peu plus que 2 clics)
+<p align="center">
+<img src="img-readme/main-readme/img24.png" width="500"/>
+</p>
+
+## IV. Run du projet (c'est bientôt fini promis !)
+**Deux** façons de faire :
+<p align="center">
+<img src="img-readme/main-readme/img25.png" width="600"/>
+</p>
+
+**OU**
+<p align="center">
+<img src="img-readme/main-readme/img26.png" width="600"/>
+</p>
+
+Ça ouvre :
+<p align="center">
+<img src="img-readme/main-readme/img27.png" width="600"/>
+</p>
+Sélectionne le Java 17 préalablement téléchargé et ajoute l'option `-Xms256m -Xmx256m` (c'est pour éviter que Intellij mange toute ta RAM)<br>
+<br>
+<p align="center">
+<img src="img-readme/main-readme/img28.png" width="600"/>
+<img src="img-readme/main-readme/img29.png" />
+<img src="img-readme/main-readme/img30.png" width="500"/>
+</p>
+Enfin :<br>
+<br>
+<p align="center"><img src="img-readme/main-readme/img31.png" width="800"/></p>
+
+Alors ça marche ?
+<p align="center"><img src="img-readme/main-readme/img32.png" width="900"/></p>
 
-
-
-## Getting started
-
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
-
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
-
-## Add your files
-
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-
-```
-cd existing_repo
-git remote add origin https://gitlab.com/llenet/java-angular.git
-git branch -M main
-git push -uf origin main
-```
-
-## Integrate with your tools
-
-- [ ] [Set up project integrations](https://gitlab.com/llenet/java-angular/-/settings/integrations)
-
-## Collaborate with your team
-
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## Test and Deploy
-
-Use the built-in continuous integration in GitLab.
-
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
-
-***
-
-# Editing this README
-
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
-
-## Suggestions for a good README
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
-
-## Name
-Choose a self-explaining name for your project.
-
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
-
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
-
-## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
diff --git a/back-skeleton/.env b/back-skeleton/.env
new file mode 100644
index 0000000000000000000000000000000000000000..135377450651ff438239031c446e52187f8e665e
--- /dev/null
+++ b/back-skeleton/.env
@@ -0,0 +1,3 @@
+DATABASE_USER=user
+DATABASE_PASSWORD=password
+DATABASE_NAME=db
diff --git a/back-skeleton/.idea/.gitignore b/back-skeleton/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/back-skeleton/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/back-skeleton/.idea/compiler.xml b/back-skeleton/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..007e21c7dac0f3cc8f12b590eebf8f338dc7ab45
--- /dev/null
+++ b/back-skeleton/.idea/compiler.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="back-skeleton" />
+      </profile>
+    </annotationProcessing>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="back-skeleton" options="-parameters" />
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/back-skeleton/.idea/encodings.xml b/back-skeleton/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63e900193296f8ed911a1b9f5b051cf908099431
--- /dev/null
+++ b/back-skeleton/.idea/encodings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/back-skeleton/.idea/jarRepositories.xml b/back-skeleton/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5
--- /dev/null
+++ b/back-skeleton/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/back-skeleton/.idea/misc.xml b/back-skeleton/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0abcc97ca28726fcb85e5bc75fb8313b39afb9fd
--- /dev/null
+++ b/back-skeleton/.idea/misc.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
+</project>
\ No newline at end of file
diff --git a/back-skeleton/.idea/vcs.xml b/back-skeleton/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc
--- /dev/null
+++ b/back-skeleton/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/back-skeleton/target/classes/application.properties b/back-skeleton/target/classes/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/back-skeleton/target/classes/application.properties
@@ -0,0 +1 @@
+
diff --git a/back-skeleton/target/classes/com/takima/backskeleton/BackSkeletonApplication.class b/back-skeleton/target/classes/com/takima/backskeleton/BackSkeletonApplication.class
new file mode 100644
index 0000000000000000000000000000000000000000..deea4b72b2a3d867c54a190601259fcc338d58d2
Binary files /dev/null and b/back-skeleton/target/classes/com/takima/backskeleton/BackSkeletonApplication.class differ
diff --git a/epf-front-skeleton-main/.idea/.gitignore b/epf-front-skeleton-main/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/epf-front-skeleton-main/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/epf-front-skeleton-main/.idea/epf-front-skeleton-main.iml b/epf-front-skeleton-main/.idea/epf-front-skeleton-main.iml
new file mode 100644
index 0000000000000000000000000000000000000000..a6e45c7be05c6d2d385c288df54b419b0bce2c17
--- /dev/null
+++ b/epf-front-skeleton-main/.idea/epf-front-skeleton-main.iml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <excludeFolder url="file://$MODULE_DIR$/dist" />
+      <excludeFolder url="file://$MODULE_DIR$/tmp" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/epf-front-skeleton-main/.idea/misc.xml b/epf-front-skeleton-main/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..639900d13c6182e452e33a3bd638e70a0146c785
--- /dev/null
+++ b/epf-front-skeleton-main/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/epf-front-skeleton-main/.idea/modules.xml b/epf-front-skeleton-main/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f674e5f6858efac5dd9f470556a40f9b5b7e78e9
--- /dev/null
+++ b/epf-front-skeleton-main/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/epf-front-skeleton-main.iml" filepath="$PROJECT_DIR$/.idea/epf-front-skeleton-main.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/epf-front-skeleton-main/.idea/vcs.xml b/epf-front-skeleton-main/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc
--- /dev/null
+++ b/epf-front-skeleton-main/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/img-readme/main-readme/img.png b/img-readme/main-readme/img.png
new file mode 100644
index 0000000000000000000000000000000000000000..0025f9656534a3f0d436a777809a017b87db1025
Binary files /dev/null and b/img-readme/main-readme/img.png differ
diff --git a/img-readme/main-readme/img10.png b/img-readme/main-readme/img10.png
new file mode 100644
index 0000000000000000000000000000000000000000..e633ba441bf9676ee878170072b391c20ed1b438
Binary files /dev/null and b/img-readme/main-readme/img10.png differ
diff --git a/img-readme/main-readme/img11.png b/img-readme/main-readme/img11.png
new file mode 100644
index 0000000000000000000000000000000000000000..7eb33d49e7a20d7a3d3055cf5f9411e88807a68d
Binary files /dev/null and b/img-readme/main-readme/img11.png differ
diff --git a/img-readme/main-readme/img12.png b/img-readme/main-readme/img12.png
new file mode 100644
index 0000000000000000000000000000000000000000..816d05c845f59a8201233a139ec6ef1add1db677
Binary files /dev/null and b/img-readme/main-readme/img12.png differ
diff --git a/img-readme/main-readme/img13.png b/img-readme/main-readme/img13.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2553a8ef30ae034c750e5c9b49c65fd47415b32
Binary files /dev/null and b/img-readme/main-readme/img13.png differ
diff --git a/img-readme/main-readme/img14.png b/img-readme/main-readme/img14.png
new file mode 100644
index 0000000000000000000000000000000000000000..911db141840b88cc14559d41a85a775dbe9effcf
Binary files /dev/null and b/img-readme/main-readme/img14.png differ
diff --git a/img-readme/main-readme/img15.png b/img-readme/main-readme/img15.png
new file mode 100644
index 0000000000000000000000000000000000000000..ecc174241ee5222b8682b6925ceab23859880466
Binary files /dev/null and b/img-readme/main-readme/img15.png differ
diff --git a/img-readme/main-readme/img16.png b/img-readme/main-readme/img16.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b3a48243e426bf0ca7c2c7454568ce19412474b
Binary files /dev/null and b/img-readme/main-readme/img16.png differ
diff --git a/img-readme/main-readme/img17.png b/img-readme/main-readme/img17.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fe66e2681b2df2480478e0d205e7a99e86d89fb
Binary files /dev/null and b/img-readme/main-readme/img17.png differ
diff --git a/img-readme/main-readme/img18.png b/img-readme/main-readme/img18.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a5ded61c9ee8be76b12f8f32b97e675af028c44
Binary files /dev/null and b/img-readme/main-readme/img18.png differ
diff --git a/img-readme/main-readme/img19.png b/img-readme/main-readme/img19.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad42f107f0a8b5f2fad5e89bbd8c1268d8cafba5
Binary files /dev/null and b/img-readme/main-readme/img19.png differ
diff --git a/img-readme/main-readme/img2.png b/img-readme/main-readme/img2.png
new file mode 100644
index 0000000000000000000000000000000000000000..5922858611267e771292829ac5b35baf13499b4f
Binary files /dev/null and b/img-readme/main-readme/img2.png differ
diff --git a/img-readme/main-readme/img20.png b/img-readme/main-readme/img20.png
new file mode 100644
index 0000000000000000000000000000000000000000..a69653405f68a617c35b9ca2cb66620c89a3907e
Binary files /dev/null and b/img-readme/main-readme/img20.png differ
diff --git a/img-readme/main-readme/img21.png b/img-readme/main-readme/img21.png
new file mode 100644
index 0000000000000000000000000000000000000000..cdd10e39bed67ae538c8b9a6c1187146c0d5f9c1
Binary files /dev/null and b/img-readme/main-readme/img21.png differ
diff --git a/img-readme/main-readme/img22.png b/img-readme/main-readme/img22.png
new file mode 100644
index 0000000000000000000000000000000000000000..f08802fa557e95499c96c448fcb8957fd5cba3a5
Binary files /dev/null and b/img-readme/main-readme/img22.png differ
diff --git a/img-readme/main-readme/img23.png b/img-readme/main-readme/img23.png
new file mode 100644
index 0000000000000000000000000000000000000000..2776521cddc4c1abad679e3ef1a6cf5d608b4ea1
Binary files /dev/null and b/img-readme/main-readme/img23.png differ
diff --git a/img-readme/main-readme/img24.png b/img-readme/main-readme/img24.png
new file mode 100644
index 0000000000000000000000000000000000000000..32d27f4ccb38e28ec0c3774d001fb71de8212197
Binary files /dev/null and b/img-readme/main-readme/img24.png differ
diff --git a/img-readme/main-readme/img25.png b/img-readme/main-readme/img25.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a9f72470d9a82359ec2a9c9a55fcc512349b97e
Binary files /dev/null and b/img-readme/main-readme/img25.png differ
diff --git a/img-readme/main-readme/img26.png b/img-readme/main-readme/img26.png
new file mode 100644
index 0000000000000000000000000000000000000000..d686eb6eeeeff1ad663569c4c5654074e8480810
Binary files /dev/null and b/img-readme/main-readme/img26.png differ
diff --git a/img-readme/main-readme/img27.png b/img-readme/main-readme/img27.png
new file mode 100644
index 0000000000000000000000000000000000000000..0925ce1db2a0f431edcdc5fc3109f85919d0b565
Binary files /dev/null and b/img-readme/main-readme/img27.png differ
diff --git a/img-readme/main-readme/img28.png b/img-readme/main-readme/img28.png
new file mode 100644
index 0000000000000000000000000000000000000000..3817f48c8ef6319b6ac1a252db7f22892175c16a
Binary files /dev/null and b/img-readme/main-readme/img28.png differ
diff --git a/img-readme/main-readme/img29.png b/img-readme/main-readme/img29.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e78c1b73530cacb44e9748f9f0ae2ee36e534cf
Binary files /dev/null and b/img-readme/main-readme/img29.png differ
diff --git a/img-readme/main-readme/img3.png b/img-readme/main-readme/img3.png
new file mode 100644
index 0000000000000000000000000000000000000000..a23e1bb4dbbd95ae0c3cf467e2adc0115ec1623d
Binary files /dev/null and b/img-readme/main-readme/img3.png differ
diff --git a/img-readme/main-readme/img30.png b/img-readme/main-readme/img30.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae5cf50894d46f55ffa3660c25ab41aeffdef233
Binary files /dev/null and b/img-readme/main-readme/img30.png differ
diff --git a/img-readme/main-readme/img31.png b/img-readme/main-readme/img31.png
new file mode 100644
index 0000000000000000000000000000000000000000..d61510f74a252a25f3e47fd0bb6eeac4e5fdf530
Binary files /dev/null and b/img-readme/main-readme/img31.png differ
diff --git a/img-readme/main-readme/img32.png b/img-readme/main-readme/img32.png
new file mode 100644
index 0000000000000000000000000000000000000000..8967d79fe936ba19cfd34930004ed271bc796340
Binary files /dev/null and b/img-readme/main-readme/img32.png differ
diff --git a/img-readme/main-readme/img5.png b/img-readme/main-readme/img5.png
new file mode 100644
index 0000000000000000000000000000000000000000..607b4778b89ba94d3c00cac4c744a2bfa9994aea
Binary files /dev/null and b/img-readme/main-readme/img5.png differ
diff --git a/img-readme/main-readme/img6.png b/img-readme/main-readme/img6.png
new file mode 100644
index 0000000000000000000000000000000000000000..d26a6bd516ef1c928c9389a7510216ecb8271ce8
Binary files /dev/null and b/img-readme/main-readme/img6.png differ
diff --git a/img-readme/main-readme/img7.png b/img-readme/main-readme/img7.png
new file mode 100644
index 0000000000000000000000000000000000000000..15adaeb6e7cdbef9d8850edb26d1a4a7c42aedcf
Binary files /dev/null and b/img-readme/main-readme/img7.png differ
diff --git a/img-readme/main-readme/img9.png b/img-readme/main-readme/img9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3484e8fa2442f00d2698b95676bba7d883fd1c01
Binary files /dev/null and b/img-readme/main-readme/img9.png differ
diff --git a/projects-ideas/1-OnlineCV.md b/projects-ideas/1-OnlineCV.md
new file mode 100644
index 0000000000000000000000000000000000000000..db182ca2713753a8535bfee66661e431bb34a8d4
--- /dev/null
+++ b/projects-ideas/1-OnlineCV.md
@@ -0,0 +1,32 @@
+# Projet CV en ligne
+
+Vous donner de la visibilité sur le web via la création de votre CV en ligne
+
+# Le projet
+Votre but est de créer à la fois une section `publique` et une section `administration` pour votre propre site web.
+Votre CV en ligne a pour objectif de mettre en avant votre savoir-faire technologique et aussi de présenter de manière élégante vos expériences passées pour vous différencier un peu des autres et ainsi augmenter votre présence sur le web.
+
+En particulier, les fonctionnalités suivantes seront **requises** :
+
+**Panneau d'Administration**
+* Créer / éditer / supprimer toutes les sections de votre profil : experience, education, skills, hobbies, etc...
+* Éditer la meta-data de chaque élément de votre profil : nom, email, photo de profil, bannière, etc...
+* Ajouter des liens vers réseaux sociaux professionnels : LinkedIn, Github, Twitter, Instagram etc...
+
+**Partie publique**
+* Afficher votre CV en une ou plusieurs pages (navigation)
+* Autoriser à être contacté à travers un formulaire de contact, qui vous enverra un email directement
+
+Vous n'avez pas à implémenter de quelconque sécurité pour le moment (login / password pour l'administration par exemple).
+
+> Vous êtes libre de créer vos modèles comme vous le souhaitez, mais ils devront au moins contenir : experience, education, skills, projects / hobbies.
+
+# Bonus
+Vous avez **déjà tout terminé ?**  
+Voici quelques features qui rendront votre plateforme encore plus attrayante :
+* Autoriser l'import / export des données de votre CV vers un fichier JSON externe
+* Importer la donnée depuis votre compte LinkedIn
+* Proposer une customisation des couleurs / de la bannière
+* Implémenter la sécurité (utiliser Firebase Auth)
+* Ajouter un moyen de s'inscrire à une newsletter et implémenter la gestion de la newsletter dans la section admin
+* Faire en sorte que toutes vos sections utilisent du Markdown et utiliser un éditeur Markdown pour formater votre contenu
\ No newline at end of file
diff --git a/projects-ideas/2-Quiz.md b/projects-ideas/2-Quiz.md
new file mode 100644
index 0000000000000000000000000000000000000000..a90d9e2a458b213c93e18e9387b1f05b16c1b4c6
--- /dev/null
+++ b/projects-ideas/2-Quiz.md
@@ -0,0 +1,29 @@
+# Projet quiz
+
+Développer des quiz pour tester vos connaissances et vous hisser à la première place du classement
+
+# Le projet
+Votre but est de créer à la fois une section `publique` et une section `administration` pour votre propre site web.
+Créer un site web permettant de répondre à des quiz. Vous avez carte blanche pour le sujet de ces quiz. Vous pouvez faire des quiz classiques avec des énoncés sous la forme de questions, ou alors montrer des photos d'acteurs ou d'affiches de films, et faire deviner leur nom... Faites-vous plaisir !
+
+En particulier, les fonctionnalités suivantes seront **requises** :
+
+**Panneau d'Administration**
+* Créer / éditer / supprimer des quiz, composés de multiples questions. Chaque question possède un enoncé, éventuellement des réponses pré-définies, et surtout des réponses valides.
+* Pouvoir créer / modifier / supprimer des utilisateurs. Supprimer un utilisateur doit également supprimer ses résultats dans les différents quiz.
+
+**Partie publique**
+* Afficher la liste des quiz disponibles
+* Pouvoir lancer une partie, c'est à dire répondre à toutes les questions d'un quiz
+* Voir le classement des joueurs sur chaque quiz
+* Afficher le profil de chaque joueur, montrant la liste des quiz auquel il/elle a participé, ainsi que ses scores
+
+Vous n'avez pas à implémenter de quelconque sécurité pour le moment (login / password pour l'administration par exemple).
+
+> TODO Vous êtes libre de créer vos modèles comme vous le souhaitez, mais ils devront au moins contenir : experience, education, skills, projects / hobbies.
+
+# Bonus
+Vous avez **déjà tout terminé ?**  
+Voici quelques features qui rendront votre plateforme encore plus attrayante :
+* Pouvoir inviter un ami à répondre à un quiz
+* TODO
\ No newline at end of file
diff --git a/projects-ideas/3-Rating.md b/projects-ideas/3-Rating.md
new file mode 100644
index 0000000000000000000000000000000000000000..4dbdd8bcfdba66418b347c6d46519ee44148474d
--- /dev/null
+++ b/projects-ideas/3-Rating.md
@@ -0,0 +1,30 @@
+# Projet site d'avis
+
+Faire un site web recensant les avis des utilisateurs sur des films/bars/restaurants
+
+# Le projet
+Votre but est de créer à la fois une section `publique` et une section `administration` pour votre propre site web.
+Créer un site web où les utilisateurs vont noter des films, des lieux publics. Vous êtes libres de choisir ce que les utilisateurs vont pouvoir noter sur votre site. 
+
+En particulier, les fonctionnalités suivantes seront **requises** :
+
+**Panneau d'Administration**
+* Créer / éditer / supprimer des films ou lieux.
+    * Pour des films, pouvoir ajouter l'affiche, le nom, le réalisateur, le synopsis ainsi que la date de sortie
+    * Pour des lieux, pouvoir ajouter le titre, l'adresse, les horaires d'ouverture
+* Pouvoir créer / modifier / supprimer des utilisateurs. Supprimer un utilisateur doit également supprimer ses avis.
+
+**Partie publique**
+* Afficher la liste des lieux/films
+* Pouvoir donner un avis sur un lieu/film, avec une note, un résumé et optionnellement un avis détaillé
+* Afficher un graphique TODO voir cette partie avec Laurine
+* Afficher le classement du meilleur lieu/film via une moyenne des notes des différents avis
+
+Vous n'avez pas à implémenter de quelconque sécurité pour le moment (login / password pour l'administration par exemple).
+
+> Vous êtes libre de créer vos modèles comme vous le souhaitez, mais ils devront au moins contenir : experience, education, skills, projects / hobbies.
+
+# Bonus
+Vous avez **déjà tout terminé ?**  
+Voici quelques features qui rendront votre plateforme encore plus attrayante :
+* TODO
\ No newline at end of file
diff --git a/webapp-hello-world/.gitignore b/webapp-hello-world/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..df62e6acd4eb5f7a3cbed50e15773ac39c66e566
--- /dev/null
+++ b/webapp-hello-world/.gitignore
@@ -0,0 +1,48 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+target
+dist
+tmp
+out-tsc
+# Only exists if Bazel was run
+bazel-out
+
+# dependencies
+node_modules
+
+# profiling files
+chrome-profiler-events*.json
+speed-measure-plugin*.json
+
+# IDEs and editors
+.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history/*
+
+# misc
+.sass-cache
+connect.lock
+coverage
+libpeerconnection.log
+npm-debug.log
+yarn-error.log
+testem.log
+typings
+
+# System Files
+.DS_Store
+Thumbs.db
+
diff --git a/webapp-hello-world/HELP.md b/webapp-hello-world/HELP.md
new file mode 100644
index 0000000000000000000000000000000000000000..6460549545514ee6235d430bca4c7b66605e19c7
--- /dev/null
+++ b/webapp-hello-world/HELP.md
@@ -0,0 +1,21 @@
+# Getting Started
+
+### Reference Documentation
+For further reference, please consider the following sections:
+
+* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
+* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/)
+* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/maven-plugin/reference/html/#build-image)
+* [Spring Web](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications)
+* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-jpa-and-spring-data)
+* [Thymeleaf](https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-template-engines)
+
+### Guides
+The following guides illustrate how to use some features concretely:
+
+* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
+* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
+* [Building REST services with Spring](https://spring.io/guides/tutorials/bookmarks/)
+* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
+* [Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/)
+
diff --git a/webapp-hello-world/README.md b/webapp-hello-world/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2c9e8f738af04825f3be216b00740e498f46e83b
--- /dev/null
+++ b/webapp-hello-world/README.md
@@ -0,0 +1,22 @@
+# Training Spring Boot
+
+1. Importe le projet dans IntelliJ IDEA en important le fichier "pom.xml" à la racine de ce répertoire
+
+
+2. Lance et init la bdd avant de run le projet<br>
+   (besoin du coup de pouce ?  [III. SetUp de la BDD via Docker](https://github.com/resourcepool/training-spring-boot/tree/readme-setup#iii-setup-de-la-bdd-via-docker))
+
+```
+docker run --name mariadb --rm -e MYSQL_ROOT_PASSWORD=toor -e MYSQL_DATABASE=defaultdb -p 3306:3306 mariadb
+```
+
+3. Connecte la bdd à IntelliJ via l'onglet Database épinglé à droite.<br>
+   (besoin du coup de pouce ?  [III.2. Afficher la BDD dans Intellij](https://github.com/resourcepool/training-spring-boot/tree/readme-setup#2-afficher-la-bdd-dans-intellij))
+
+
+4. Lance les scripts sql contenus dans le dossier `/initdb` : Sélectionne les fichiers .sql, clique droit puis 'Run'.<br>
+   (besoin du coup de pouce ?  [III.3. Initialisation de la BDD](https://github.com/resourcepool/training-spring-boot/tree/readme-setup#3-initialisation-de-la-bdd))
+
+
+5. Lance l'application via IntelliJ, et vérifie qu'elle fonctionne ! (sur http://localhost:8080 par défaut).<br>
+   (besoin du coup de pouce ?  [IV. Run du projet (c'est bientôt fini promis !)](https://github.com/resourcepool/training-spring-boot/tree/readme-setup#iv-run-du-projet-cest-bientôt-fini-promis-))
diff --git a/webapp-hello-world/docker-compose.yml b/webapp-hello-world/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..943a454402c207e0b5a5803c7665c87b8bc1459e
--- /dev/null
+++ b/webapp-hello-world/docker-compose.yml
@@ -0,0 +1,11 @@
+version: '3.1'
+services:
+  database:
+    container_name: webapp-hello-word-database
+    image: postgres
+    environment:
+      POSTGRES_USER : root
+      POSTGRES_PASSWORD: toor
+      POSTGRES_DB: default-database
+    ports:
+      - "5432:5432"
diff --git a/webapp-hello-world/initdb/1_TABLES.sql b/webapp-hello-world/initdb/1_TABLES.sql
new file mode 100644
index 0000000000000000000000000000000000000000..25b198c111d2334d87004a6517de77da9e9c8a51
--- /dev/null
+++ b/webapp-hello-world/initdb/1_TABLES.sql
@@ -0,0 +1,8 @@
+create table users
+(
+    id SERIAL PRIMARY KEY,
+    first_name TEXT not null,
+    last_name TEXT not null,
+    age int null
+);
+
diff --git a/webapp-hello-world/initdb/2_DEFAULT_ENTRIES.sql b/webapp-hello-world/initdb/2_DEFAULT_ENTRIES.sql
new file mode 100644
index 0000000000000000000000000000000000000000..0ea9464fec605d6d6ab99960c727fa57985b59bc
--- /dev/null
+++ b/webapp-hello-world/initdb/2_DEFAULT_ENTRIES.sql
@@ -0,0 +1,12 @@
+INSERT INTO users (id, first_name, last_name, age) VALUES (1, 'Paul', 'Harrohide', 20);
+INSERT INTO users (id, first_name, last_name, age) VALUES (2, 'Harry', 'Covert', 25);
+INSERT INTO users (id, first_name, last_name, age) VALUES (3, 'Alain', 'Posteur', null);
+INSERT INTO users (id, first_name, last_name, age) VALUES (4, 'Elvire', 'Debord', null);
+INSERT INTO users (id, first_name, last_name, age) VALUES (5, 'Laurent', 'Barre', 41);
+INSERT INTO users (id, first_name, last_name, age) VALUES (6, 'Homer', 'Cipourtoux', 28);
+INSERT INTO users (id, first_name, last_name, age) VALUES (7, 'Gaston', 'Laplouz', null);
+INSERT INTO users (id, first_name, last_name, age) VALUES (8, 'Gisèle', 'Detable', null);
+INSERT INTO users (id, first_name, last_name, age) VALUES (9, 'Thomas', 'Ouaque', null);
+INSERT INTO users (id, first_name, last_name, age) VALUES (10, 'Sacha', 'Telfrize', 23);
+
+
diff --git a/webapp-hello-world/pom.xml b/webapp-hello-world/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b4358e2b36850870820b46469ec96d42818b4061
--- /dev/null
+++ b/webapp-hello-world/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>2.7.3</version>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+	<groupId>fr.epf</groupId>
+	<artifactId>demo</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<name>demo</name>
+	<description>Demo project for Spring Boot</description>
+	<properties>
+		<java.version>17</java.version>
+	</properties>
+	<dependencies>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.postgresql</groupId>
+			<artifactId>postgresql</artifactId>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/webapp-hello-world/src/main/java/io/takima/demo/HelloWorldApplication.java b/webapp-hello-world/src/main/java/io/takima/demo/HelloWorldApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..30bcaea0e27e3e34039ead6f73f7b95450af90fa
--- /dev/null
+++ b/webapp-hello-world/src/main/java/io/takima/demo/HelloWorldApplication.java
@@ -0,0 +1,28 @@
+package io.takima.demo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+import javax.annotation.PostConstruct;
+
+@SpringBootApplication
+public class HelloWorldApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(HelloWorldApplication.class, args);
+
+	}
+
+	@PostConstruct
+	public void init() {
+		System.out.println("---------------------------------------");
+		System.out.println("---------------------------------------");
+		System.out.println("Hello World!");
+		System.out.println("Félicitations, votre setup fonctionne parfaitement.");
+		System.out.println("Vous pouvez maintenant supprimer ce projet.");
+		System.out.println("---------------------------------------");
+		System.out.println("---------------------------------------");
+	}
+
+}
diff --git a/webapp-hello-world/src/main/resources/application.properties b/webapp-hello-world/src/main/resources/application.properties
new file mode 100644
index 0000000000000000000000000000000000000000..eb93778cb0779555e90d21199c4949516591b8d9
--- /dev/null
+++ b/webapp-hello-world/src/main/resources/application.properties
@@ -0,0 +1,3 @@
+spring.datasource.url=jdbc:postgresql://localhost:5432/default-database
+spring.datasource.username=root
+spring.datasource.password=toor