diff --git a/README.fr.md b/README.fr.md
index 059668996358323649976cc8bafba94475d9ba42..8290444596a7941432b8224981b5bb7860aea2c1 100644
--- a/README.fr.md
+++ b/README.fr.md
@@ -17,17 +17,18 @@ sur les produits disponibles tels que les prix de chaque article.
 
 [Accueil documentation](https://erp-sil.pages.unistra.fr/back/)
 
-L'API REST est documentée à travers un document OpenAPI qui peut être consulté 
+L'API REST est documentée à travers un fichier OpenAPI qui peut être consulté 
 [ici](https://erp-sil.pages.unistra.fr/back/openapi/index.html).
 
-La documentation Java (Javadoc) du projet est généré automatiquement par 
+La documentation Java (Javadoc) du projet est générée automatiquement par 
 le système d'intégration continue (CI) pour chaque révision de la branche `master` 
 et peut être consultée [ici](https://erp-sil.pages.unistra.fr/back/javadoc/index.html) (en anglais).
 
 ### Exécution
 
 BACK est une application Web [Java Spring](https://spring.io/) utilisant 
-le [système Gradle](https://gradle.org/).
+le [système Gradle](https://gradle.org/). elle utilise [Thymeleaf](https://www.thymeleaf.org) 
+pour les *templates* Web.
 
 Gradle permet d'essayer rapidement l'application en lançant un serveur 
 Web de test [Apache TomCat](https://tomcat.apache.org/) hébergeant 
@@ -48,7 +49,7 @@ Assurez-vous que votre machine possède un kit de développement Java (JDK) vers
 peut être déployé sur une machine ne possédant que la JRE.
 
 Afin que l'application fonctionne, vous devez configurer une clé d'authentification 
-pour l'API de l'application.
+pour l'API REST.
 
 Dans `src/main/resources`, créez un nouveau fichier `apikey.properties` contenant :
 
@@ -89,7 +90,7 @@ ou, sur Microsoft Windows,
 
 Vous pouvez trouver la documentation [ici](https://erp-sil.pages.unistra.fr/back/openapi/index.html).
 
-Utilisez [Postman](https://www.postman.com/) ou [Advanced REST Client](https://install.advancedrestclient.com/install) pour l'appeler l'API REST.
+Utilisez [Postman](https://www.postman.com/) ou [Advanced REST Client](https://install.advancedrestclient.com/install) pour appeler l'API REST.
 
 Tous les appels vers l'API doivent posséder la clé d'authentification configurée
 dans le fichier `apikey.properties` de l'application. Elle doit être spécifiée 
diff --git a/README.md b/README.md
index 6acb5dba7c688fdae9312faa3633bc9b9508486e..48253abd8b282ccf4dddc2fc964c5c3cdd711c1b 100644
--- a/README.md
+++ b/README.md
@@ -27,12 +27,14 @@ on the `master` branch and can be found [here](https://erp-sil.pages.unistra.fr/
 ### Running
 
 BACK is a [Java Spring](https://spring.io/) Web application built using 
-the [Gradle Build Tool](https://gradle.org/).
+the [Gradle Build Tool](https://gradle.org/). It uses [Thymeleaf](https://www.thymeleaf.org) 
+for Web templates.
 
 Gradle allows you to quickly test the application by running a local 
 test [Apache TomCat](https://tomcat.apache.org/) server that hosts 
 the application. It also allows you to quickly build a WAR archive 
-for deployment on a production Apache TomCat or [Oracle Glassfish](https://www.oracle.com/middleware/technologies/glassfish-server.html) server.
+for deployment on a production Apache TomCat or [Eclipse Glassfish](https://glassfish.org/) 
+server.
 
 It is recommended to use a Java IDE to run and deploy the application.
 
diff --git a/build.gradle b/build.gradle
index c670d26e7665f972648dab6b30a18a8d48b3a5ec..a85e4021a02c8461bda2203f29cd4d5fcef2160f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,9 +19,11 @@ dependencies {
 
     implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.8'
 
-	implementation 'org.springframework.boot:spring-boot-starter-web'
-	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
-	testImplementation 'org.springframework.boot:spring-boot-starter-test'
+    implementation 'org.springframework.boot:spring-boot-starter-web'
+    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
+    testImplementation 'org.springframework.boot:spring-boot-starter-test'
+
+    implementation 'org.thymeleaf:thymeleaf-spring5'
 }
 
 javadoc {
diff --git a/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java b/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java
index 2b7e9cc15681ffbba21a31629c1a3430a5317142..ac9009ffcf60bfddcbcece01e3f0161d44bda6ed 100644
--- a/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java
+++ b/src/main/java/fr/unistra/sil/erp/back/WebMvcConfig.java
@@ -71,6 +71,10 @@ public class WebMvcConfig implements WebMvcConfigurer {
     public static final String MAPPING_GETSTOCKS = API_FULL_PREFIX +
             "/retrieveStocks";
     
+    /**
+     * Web mapping for the login page.
+     */
+    public static final String MAPPING_LOGIN = "/login";
     
     /*
     // TODO: Define default servlet.
diff --git a/src/main/java/fr/unistra/sil/erp/back/controller/web/LoginController.java b/src/main/java/fr/unistra/sil/erp/back/controller/web/LoginController.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc1e5e7c63a3335853c98efd230b1839ae42b93a
--- /dev/null
+++ b/src/main/java/fr/unistra/sil/erp/back/controller/web/LoginController.java
@@ -0,0 +1,32 @@
+/*
+ * CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL-B
+ * https://cecill.info/licences/Licence_CeCILL-B_V1-fr.html
+ */
+package fr.unistra.sil.erp.back.controller.web;
+
+import static fr.unistra.sil.erp.back.WebMvcConfig.MAPPING_LOGIN;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+
+/**
+ * Controller for the Web login interface.
+ * 
+ * This controller handles the connection process of the user 
+ * upon his arrival.
+ * 
+ * @author BEAUVAIS ANTOINE
+ */
+@Controller
+public class LoginController {
+    
+    /**
+     * Logic for handling login.
+     * 
+     * TODO: Actual implementation.
+     */
+    @GetMapping(MAPPING_LOGIN)
+    public void login()
+    {
+    }
+    
+}
diff --git a/src/main/java/fr/unistra/sil/erp/back/controller/web/package-info.java b/src/main/java/fr/unistra/sil/erp/back/controller/web/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4467fd87f6da35017dc3f02d8a6cc80777587f1
--- /dev/null
+++ b/src/main/java/fr/unistra/sil/erp/back/controller/web/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Web implementations of the HTTP controllers.
+ */
+package fr.unistra.sil.erp.back.controller.web;
\ No newline at end of file
diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties
new file mode 100644
index 0000000000000000000000000000000000000000..3969e04c46cdf7b0149c7424531744b17233e07f
--- /dev/null
+++ b/src/main/resources/messages.properties
@@ -0,0 +1,10 @@
+#Application's name.
+application.name=SIL ERP
+#Login page's main title.
+web.ui.login.login=Login
+#Login page: Username label.
+web.ui.login.username=Username
+#Login page: Password label.
+web.ui.login.password=Password
+#Login page: Button's label.
+web.ui.login.submit=Log in
diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties
new file mode 100644
index 0000000000000000000000000000000000000000..3969e04c46cdf7b0149c7424531744b17233e07f
--- /dev/null
+++ b/src/main/resources/messages_en.properties
@@ -0,0 +1,10 @@
+#Application's name.
+application.name=SIL ERP
+#Login page's main title.
+web.ui.login.login=Login
+#Login page: Username label.
+web.ui.login.username=Username
+#Login page: Password label.
+web.ui.login.password=Password
+#Login page: Button's label.
+web.ui.login.submit=Log in
diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties
new file mode 100644
index 0000000000000000000000000000000000000000..362c0b6dfd6238c200b0799ca998a66fab3ae5f8
--- /dev/null
+++ b/src/main/resources/messages_fr.properties
@@ -0,0 +1,10 @@
+#Application's name.
+application.name=SIL ERP
+#Login page's main title.
+web.ui.login.login=Connexion
+#Login page: Username label.
+web.ui.login.username=Nom d'utilisateur
+#Login page: Password label.
+web.ui.login.password=Mot de passe
+#Login page: Button's label.
+web.ui.login.submit=Se connecter
diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html
new file mode 100644
index 0000000000000000000000000000000000000000..887851e61df9cfaa32c7b0b70a8f9b0b518ba840
--- /dev/null
+++ b/src/main/resources/templates/login.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="fr" xmlns:th="http://www.thymeleaf.org">
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+        <title th:text="#{web.ui.login.login} +  ' - ' + #{application.name}"></title>
+    </head>
+
+    <body>
+        <h1 th:text="#{web.ui.login.login}"></h1>
+        <p>TODO</p>
+    </body>
+</html>
\ No newline at end of file