diff --git a/ExerciceChecker/src/config/Config.ts b/ExerciceChecker/src/config/Config.ts
index 73fd82950389c4457a11399577fb183a104ba27d..3c17a1f44213f88a57e2b4987b9d2fc53dc6a99e 100644
--- a/ExerciceChecker/src/config/Config.ts
+++ b/ExerciceChecker/src/config/Config.ts
@@ -1,6 +1,11 @@
+import fs   from 'fs';
+import path from 'path';
+
+
 class Config {
-    public readonly filesFolder: string;
-    public readonly resultsFolder: string;
+    public readonly folders: {
+        project: string; resultsVolume: string; resultsDojo: string; resultsExercice: string
+    };
 
     public readonly exercice: {
         id: string; secret: string;
@@ -11,8 +16,13 @@ class Config {
     };
 
     constructor() {
-        this.filesFolder = process.env.FILES_FOLDER || './';
-        this.resultsFolder = process.env.RESULTS_FOLDER || '';
+        this.folders = {
+            project        : process.env.FILES_FOLDER || './',
+            resultsVolume  : process.env.RESULTS_VOLUME || '',
+            resultsDojo    : path.join(process.env.RESULTS_VOLUME || './', 'Dojo/'),
+            resultsExercice: path.join(process.env.RESULTS_VOLUME || './', 'Exercice/')
+        };
+        this.resetResultsVolume();
 
         this.exercice = {
             id    : process.env.DOJO_EXERCICE_ID || '',
@@ -23,6 +33,18 @@ class Config {
             projectName: process.env.DOCKER_COMPOSE_PROJECT_NAME || ''
         };
     }
+
+    private resetResultsVolume(): void {
+        if ( this.folders.resultsVolume !== '' && fs.existsSync(this.folders.resultsVolume) ) {
+            fs.rmSync(this.folders.resultsVolume, {
+                recursive: true,
+                force    : true
+            });
+        }
+        fs.mkdirSync(this.folders.resultsVolume, { recursive: true });
+        fs.mkdirSync(this.folders.resultsDojo, { recursive: true });
+        fs.mkdirSync(this.folders.resultsExercice, { recursive: true });
+    }
 }