diff --git a/ExpressAPI/.env.vault b/ExpressAPI/.env.vault
index 9f103c04a75e8c2a356b73484c6ab774a7c024ec..0726112735c363e4ce411d6dfc3cd512c39e2d99 100644
--- a/ExpressAPI/.env.vault
+++ b/ExpressAPI/.env.vault
@@ -4,8 +4,8 @@
 #/--------------------------------------------------/
 
 # development
-DOTENV_VAULT_DEVELOPMENT="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"
+DOTENV_VAULT_DEVELOPMENT="RQqJi8Dgb3p7BJo/6MtpFcRCsGpIrmVAU/TAGiD7Szuz5MW//mvyxf062bmZfzt0vKrzEBM9H4OJdFLRf1HMD3MQFPe6BNXd/kqO8jKwTQKAfZ3hqavmJNM6H/a2fvZTfvhTP1o9VQ1eoTjMzUfn1DmrY4qgxLceLxoxhew/Q61N/jMaCVtIWf+i7W+TKP3iVg8cHxgdSiMOyUOSZBtqUTcLUfOiQGqMuDmFUgGG5uM4jrA/+bzsNkU+ztMFPW8BSMSfw4X9u0ct7yBw+yyZTRQ/QyJjmqTk2Djdp2l5wzFqlh/fIexRFW0wLk+TOnXOtbe2z+L3arZIEi74T9lYLy9AzwvSuiHY5+MdPP6JdwzO1AuV+Cs8bKkaVaF6TcAOKbBVx2KD3qIlx16EsZbhRKCMCIhZ2g/ohKi80jOZMckQl1bouLBKMjsM4WRqbW5dz1WPy5uYIjUqmAVs7Or8iQ+KynOV2rhfCi9QVh4uA5ODNYtP6TItRiDUXXCR2r7emKYuy23h6SzzAhqUKmTfM0jwjOGu9meAleU2wh2mc1mu9p9lIEaJJSRfmcFV4ghpCGVzAsBe1xSa9wUffU0NSBwe0whRyeganRUDg8p1oRj4wxYj2LcgmHidt/rt+qUQ95lC+6zJML1lmtR/zBlJFJOqT6s9KA72RS4o7VxLo7yueIglAMfTW8JG9uGKwq6c3Xj8AGHUXFrX+N/Owt8UndFBxqC7gVj2FbAZ0tA+966DVa6LKv5O7mI86d+yVw7TVByZH2DxNWkp7Ki0ULAhdvqh1YDCl9n6bFDT6nHcp0R6ohdTQa/Z3sfo0tci8vLAllhgD76VxvHMU548t/e0mqRBakjDJbWGb49k57aLXLjiutHcfzjU29nsQqg0MhkekW24U/ymTQtkeZtvElxi4/zYeTuyNLYl+WyfMMjs0R2vkrl+RZS56FOdQo+4b7uOmKBk1rTmhvRlrM+Rdtv5A8S4xV5fiFSsPcXvpwzx4X7cIETGMNtbvAq8dbtrx6tHnIvBucfqhPwgqHV6z77oZalO1G8FowytilR8MssPFj3W8g4IeGrPigcmXleX6yNEeWhPkqP/TS6JlKpmR8w0cHXsiNZr+73bFKQFv7lPCMC9rKQ1tyxeKavvfvcsr2eOxyrixTtNAsHtSyEpF08srpTc6GUv3aTckj2MsdtNPngh2lcyaHkiXQDJmFJjQpyd18eKzVaFeVhK4SjvderkfzfYyCpQELP/kF8RDoFyIIoaPGEVgRJK9lJGwuIep2kSI0fI/FNbIU73JjohAJlLIfwudOBNma8UnjawcBZw1jN+ZNie1676IOWthGyvbS51/eV7lEcEh4LGIjqlaffFkz+ygFcE26yzm3s/qk2VasLOBAMwFbMf3rpgzY2+J5fUQCvjl+HQWMl50cDVJBeO8884X9jdRsFZOyJEcqSmyWSvPPz890rFni3Kd6WVfr+ZJK2YoFbmSk6cQNYsrWPejC/J0THB1oc6KGLcmjjPm4hYBnBJQylLFM9Sp6rL6WqlgnvGCf/YacKXmWujA+EpHbZKcnQedm+hR1LZsoHMIcx8NQTFFtcvgaYeiKpnmuw/p8/J5JMF6dXMoS9JEAliof4DtEnr0uzWMY5vGaVRqdDHpX8yuzrEnYIsnd9096x9ZlXb7+vrhK/5aID48ZtN8bAnAZzHk4mi8yEbnPigVt9yu2g0UCqAAzbILuz1f7rex4HOdqKOu4UKHZGF+bBvaaT5rXb1fBe+MTLR8cfXP1IWlTyq1W/YGe3TelJceH4LflvypqG5RegQzPUVEL77l6+oiuCmd0rLhxP5IK3o6J/fX89KLfmGnMvthJE3uOT69Cb1MDSHxjDfynSO4mic7kCb+VbqG9ZbOrPcGn3iN8TUFGMPcmC7qf3/VS+py4homTLn3ivTWxaDRuhJnB6DKhBkWAKecNfSwiRlD/HymcxeeqIORdwWDnY1l7CU14i2SZ3JyfccD5HY0j33xG+bP/v6/YcjnsUMBH69l0pzOD8BsvlOekNFLzcp5QjsLjj9ayqDo2SApEf4VjzsdrEZkc2imhFrKiWQg9QQk0vQ1D7JmV1oZ8huhWXiaIexLjjHKz9Z6caC5Fs2iOl5xe6EN8rvNxYEIYcWBPvQG3BLx0WasAg8XeImx9lO4upZe2vuX+cS6AeuenqniyTctpzCfb/a+6NLYFOmoMLmkRw/Cd5Sca3UjcqwOWN3Hk3ctH4DqMmuWMX9zfXyOEbx/uP/2MX4CPd/w2QXx0ts52Vt+q/ikm28n7r5pBdGd1wC1wUQ/3gYd8oXOdW+CUlm41MrFHA0ada+pmZ9YP4imf5WKp7zpedWAxe/a0H8EEtnge7sThAkXXl9BYHp0s3bhMZZ/aE2b2GjJ3A/JQmQT7zcbtMyRvqz0Vhw0R28HKqpyUX7f2Cgy//N6j8kf2Ac05cHngqkobVZUVcc9WxG2w7T9BoHOY+Z+0/6jx2+/WunoLtt4VfZYpYgfPQ13ZghWC0wjrSup28aOGK0WwtHFRJJuHthJt1Y/zp7fOGuGjEYjCnyfJXWZYUTG3G81DIpFR3zCgmr9kTCByNqkF6d5AB9KObwj0c/8h/DpjqREqTt88B7KQ7eK6eUl5EHGgAjMXICR83XFaBVm2zV/QZec9QeZepxjVggJgDWuw+y0hOGxN3n5bE/XqbXaoc5yViz3mVs9NHL1gyfJBJKMtXyTJrLdWIEHK2JANmCRZRCF/fY1rA+Sbwb"
 
 # production
-DOTENV_VAULT_PRODUCTION="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"
+DOTENV_VAULT_PRODUCTION="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"
 
diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts
index a88b015f2497e28edbacfc5f054c325c77c5bb1c..4097324791e961ef4c38172662eebc2b166e362d 100644
--- a/ExpressAPI/src/config/Config.ts
+++ b/ExpressAPI/src/config/Config.ts
@@ -4,6 +4,9 @@ import fs               from 'fs';
 import { Exercise }     from '../types/DatabaseTypes';
 
 
+type ConfigGitlabBadge = { link: string, imageUrl: string }
+
+
 class Config {
     public readonly api: {
         port: number
@@ -18,7 +21,7 @@ class Config {
     };
 
     public gitlab: {
-        apiURL: string; urls: Array<string>; account: { id: number; username: string; token: string; }; group: { root: number; templates: number; assignments: number; exercises: number; };
+        apiURL: string; urls: Array<string>; account: { id: number; username: string; token: string; }; group: { root: number; templates: number; assignments: number; exercises: number; }, badges: { pipeline: ConfigGitlabBadge }
     };
 
     public assignment: {
@@ -46,10 +49,14 @@ class Config {
         };
 
         this.gitlab = {
-            apiURL  : process.env.GITLAB_API_URL || '', urls: JSON.parse(process.env.GITLAB_URLS || '[]'), account: {
+            apiURL   : process.env.GITLAB_API_URL || '', urls: JSON.parse(process.env.GITLAB_URLS || '[]'), account: {
                 id: Number(process.env.GITLAB_DOJO_ACCOUNT_ID || 0), username: process.env.GITLAB_DOJO_ACCOUNT_USERNAME || '', token: process.env.GITLAB_DOJO_ACCOUNT_TOKEN || ''
-            }, group: {
+            }, group : {
                 root: Number(process.env.GITLAB_GROUP_ROOT_ID || 0), templates: Number(process.env.GITLAB_GROUP_TEMPLATES_ID || 0), assignments: Number(process.env.GITLAB_GROUP_ASSIGNMENTS_ID || 0), exercises: Number(process.env.GITLAB_GROUP_EXERCISES_ID || 0)
+            }, badges: {
+                pipeline: {
+                    link: process.env.GITLAB_BADGE_PIPELINE_LINK || '', imageUrl: process.env.GITLAB_BADGE_PIPELINE_IMAGE_URL || ''
+                }
             }
         };
 
diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts
index d5db3a56b7dc3896f046bc65a401a866766d80be..fc80949e8f8a4878cf3d891a3467c907ecd09c2a 100644
--- a/ExpressAPI/src/managers/GitlabManager.ts
+++ b/ExpressAPI/src/managers/GitlabManager.ts
@@ -111,6 +111,16 @@ class GitlabManager {
         return response.data;
     }
 
+    async addRepositoryBadge(repoId: number, linkUrl: string, imageUrl: string, name: string): Promise<GitlabMember> {
+        const response = await axios.post<GitlabMember>(this.getApiUrl(GitlabRoute.REPOSITORY_BADGES_ADD).replace('{{id}}', String(repoId)), {
+            link_url : linkUrl,
+            image_url: imageUrl,
+            name     : name
+        });
+
+        return response.data;
+    }
+
     async checkTemplateAccess(idOrNamespace: string, req: express.Request): Promise<StatusCodes> {
         // Get the Gitlab project and check if it have public or internal visibility
         try {
diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts
index e6f60a5663bee5bff7e4c367b09621eff23bf8b7..0abd3d1dfcc80cf07e44d447743a431fe3b78b70 100644
--- a/ExpressAPI/src/routes/ExerciseRoutes.ts
+++ b/ExpressAPI/src/routes/ExerciseRoutes.ts
@@ -87,6 +87,8 @@ class ExerciseRoutes implements RoutesManager {
                 await GitlabManager.addRepositoryVariable(repository.id, 'DOJO_SECRET', secret, false, true);
                 await GitlabManager.addRepositoryVariable(repository.id, 'DOJO_RESULTS_FOLDER', Config.exercise.pipelineResultsFolder, false, false);
 
+                await GitlabManager.addRepositoryBadge(repository.id, Config.gitlab.badges.pipeline.link, Config.gitlab.badges.pipeline.imageUrl, 'Pipeline Status');
+
                 break;
             } catch ( error ) {
                 if ( error instanceof AxiosError ) {
diff --git a/ExpressAPI/src/shared b/ExpressAPI/src/shared
index 8d7e3ca0cca10e874ac48e19e47da8a1491ccba7..6cff19278f7fa9664793e1d7826d2596597ac080 160000
--- a/ExpressAPI/src/shared
+++ b/ExpressAPI/src/shared
@@ -1 +1 @@
-Subproject commit 8d7e3ca0cca10e874ac48e19e47da8a1491ccba7
+Subproject commit 6cff19278f7fa9664793e1d7826d2596597ac080