diff --git a/helpers/Dojo/AssignmentValidator.ts b/helpers/Dojo/AssignmentValidator.ts
index a45d61d23f7f60ac7502523ae87994df47b23789..818a748eb1fd4d8f6feb053557177e9d42dd230d 100644
--- a/helpers/Dojo/AssignmentValidator.ts
+++ b/helpers/Dojo/AssignmentValidator.ts
@@ -1,15 +1,15 @@
 import { TypedEmitter }          from 'tiny-typed-emitter';
-import AssignmentValidatorEvents from '../../types/Dojo/AssignmentValidatorEvents';
-import SharedAssignmentHelper    from '../../../shared/helpers/Dojo/SharedAssignmentHelper';
+import AssignmentValidatorEvents from '../../types/Dojo/AssignmentValidatorEvents.js';
+import SharedAssignmentHelper    from '../../../shared/helpers/Dojo/SharedAssignmentHelper.js';
 import path                      from 'node:path';
-import AssignmentCheckerError    from '../../../shared/types/Dojo/AssignmentCheckerError';
+import AssignmentCheckerError    from '../../../shared/types/Dojo/AssignmentCheckerError.js';
 import fs                        from 'fs-extra';
-import ClientsSharedConfig       from '../../config/ClientsSharedConfig';
+import ClientsSharedConfig       from '../../config/ClientsSharedConfig.js';
 import YAML                      from 'yaml';
-import DojoDockerCompose         from '../../types/Dojo/DojoDockerCompose';
+import DojoDockerCompose         from '../../types/Dojo/DojoDockerCompose.js';
 import { exec, spawn }           from 'child_process';
-import AssignmentFile            from '../../../shared/types/Dojo/AssignmentFile';
-import ExerciseDockerCompose     from './ExerciseDockerCompose';
+import AssignmentFile            from '../../../shared/types/Dojo/AssignmentFile.js';
+import ExerciseDockerCompose     from './ExerciseDockerCompose.js';
 import util                      from 'util';
 
 
@@ -288,7 +288,7 @@ class AssignmentValidator {
     }
 
     run() {
-        (async () => {
+        void (async () => {
             try {
                 await this.checkRequirements();
 
diff --git a/helpers/Dojo/ClientsSharedAssignmentHelper.ts b/helpers/Dojo/ClientsSharedAssignmentHelper.ts
index 9c0eb460ac75a392c00af9c515b691979479eb2a..5071429ce060887b68a405b35e4ef1da056d8f7f 100644
--- a/helpers/Dojo/ClientsSharedAssignmentHelper.ts
+++ b/helpers/Dojo/ClientsSharedAssignmentHelper.ts
@@ -1,11 +1,11 @@
-import chalk               from 'chalk';
+import { ChalkInstance }   from 'chalk';
 import boxen               from 'boxen';
-import Icon                from '../../../shared/types/Icon';
-import AssignmentValidator from './AssignmentValidator';
+import Icon                from '../../../shared/types/Icon.js';
+import AssignmentValidator from './AssignmentValidator.js';
 
 
 class ClientsSharedAssignmentHelper {
-    displayExecutionResults(validator: AssignmentValidator, successMessage: string, Style: { INFO: chalk.Chalk, SUCCESS: chalk.Chalk, FAILURE: chalk.Chalk }) {
+    displayExecutionResults(validator: AssignmentValidator, successMessage: string, Style: { INFO: ChalkInstance, SUCCESS: ChalkInstance, FAILURE: ChalkInstance }) {
         const globalResult = validator.success ? Style.SUCCESS(`${ Icon.SUCCESS } Success`) : Style.FAILURE(`${ Icon.FAILURE } Failure`);
         const finalLogGlobalResult = `${ Style.INFO('Global result') } : ${ globalResult }`;
 
diff --git a/helpers/Dojo/ClientsSharedExerciseHelper.ts b/helpers/Dojo/ClientsSharedExerciseHelper.ts
index 740b7695bf484dbb9e0c54bfa0f21bd902926c6a..e9a2c72a5bbaaf04a59500b9161e0ea1c5fe3dd3 100644
--- a/helpers/Dojo/ClientsSharedExerciseHelper.ts
+++ b/helpers/Dojo/ClientsSharedExerciseHelper.ts
@@ -1,12 +1,12 @@
-import ExerciseResultsFile from '../../../shared/types/Dojo/ExerciseResultsFile';
-import chalk               from 'chalk';
+import ExerciseResultsFile from '../../../shared/types/Dojo/ExerciseResultsFile.js';
+import { ChalkInstance }   from 'chalk';
 import boxen               from 'boxen';
-import Icon                from '../../../shared/types/Icon';
+import Icon                from '../../../shared/types/Icon.js';
 
 
 class ClientsSharedExerciseHelper {
 
-    private getOtherInformations(exerciseResults: ExerciseResultsFile, Style: { INFO: chalk.Chalk, SUCCESS: chalk.Chalk, FAILURE: chalk.Chalk }) {
+    private getOtherInformations(exerciseResults: ExerciseResultsFile, Style: { INFO: ChalkInstance, SUCCESS: ChalkInstance, FAILURE: ChalkInstance }) {
         return exerciseResults.otherInformations ? [ '', ...exerciseResults.otherInformations.map(information => {
             const informationTitle = Style.INFO(`${ information.icon && information.icon !== '' ? Icon[information.icon] + ' ' : '' }${ information.name }: `);
             const informationItems = typeof information.itemsOrInformations == 'string' ? information.itemsOrInformations : information.itemsOrInformations.map(item => `- ${ item }`).join('\n');
@@ -15,7 +15,7 @@ class ClientsSharedExerciseHelper {
         }) ].join('\n\n') : '';
     }
 
-    displayExecutionResults(exerciseResults: ExerciseResultsFile, containerExitCode: number, Style: { INFO: chalk.Chalk, SUCCESS: chalk.Chalk, FAILURE: chalk.Chalk }, additionalText: string = '') {
+    displayExecutionResults(exerciseResults: ExerciseResultsFile, containerExitCode: number, Style: { INFO: ChalkInstance, SUCCESS: ChalkInstance, FAILURE: ChalkInstance }, additionalText: string = '') {
         const globalResult = exerciseResults.success ? Style.SUCCESS(`${ Icon.SUCCESS } Success`) : Style.FAILURE(`${ Icon.FAILURE } Failure`);
         const finalLogGlobalResult = `${ Style.INFO('Global result: ') }${ globalResult }`;
 
diff --git a/helpers/Dojo/DojoBackendHelper.ts b/helpers/Dojo/DojoBackendHelper.ts
index c682bfb71fdd895a6d3761fea6694754542074ee..b201276faef6eae814dcbff93f7c0325eea20d32 100644
--- a/helpers/Dojo/DojoBackendHelper.ts
+++ b/helpers/Dojo/DojoBackendHelper.ts
@@ -1,5 +1,5 @@
-import ApiRoute            from '../../types/Dojo/ApiRoute';
-import ClientsSharedConfig from '../../config/ClientsSharedConfig';
+import ApiRoute            from '../../types/Dojo/ApiRoute.js';
+import ClientsSharedConfig from '../../config/ClientsSharedConfig.js';
 
 
 class DojoBackendHelper {
diff --git a/helpers/Dojo/ExerciseDockerCompose.ts b/helpers/Dojo/ExerciseDockerCompose.ts
index 64d60c38346bee7ed44cc242e3ca6d79ed6c093e..c76a95e5018aff4bbc4949c97d7560ce9b670ca1 100644
--- a/helpers/Dojo/ExerciseDockerCompose.ts
+++ b/helpers/Dojo/ExerciseDockerCompose.ts
@@ -1,8 +1,8 @@
-import AssignmentFile                     from '../../../shared/types/Dojo/AssignmentFile';
+import AssignmentFile                     from '../../../shared/types/Dojo/AssignmentFile.js';
 import { TypedEmitter }                   from 'tiny-typed-emitter';
-import ExerciseRunningEvents              from '../../types/Dojo/ExerciseRunningEvents';
+import ExerciseRunningEvents              from '../../types/Dojo/ExerciseRunningEvents.js';
 import { spawn }                          from 'child_process';
-import ExerciseCheckerError               from '../../../shared/types/Dojo/ExerciseCheckerError';
+import ExerciseCheckerError               from '../../../shared/types/Dojo/ExerciseCheckerError.js';
 import { ChildProcessWithoutNullStreams } from 'node:child_process';
 
 
@@ -60,10 +60,12 @@ class ExerciseDockerCompose {
 
     private registerChildProcess(childProcess: ChildProcessWithoutNullStreams, resolve: (value: (number | PromiseLike<number>)) => void, reject: (reason?: unknown) => void, displayable: boolean, rejectIfCodeIsNotZero: boolean) {
         childProcess.stdout.on('data', data => {
+            // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call
             this.log(data.toString(), false, displayable);
         });
 
         childProcess.stderr.on('data', data => {
+            // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-call
             this.log(data.toString(), true, displayable);
         });
 
@@ -73,7 +75,7 @@ class ExerciseDockerCompose {
     }
 
     run(doDown: boolean = false) {
-        (async () => {
+        void (async () => {
             let containerExitCode: number = -1;
 
             const filesOverrideArguments = this.composeFileOverride.map(file => `--file "${ file }"`).join(' ');
diff --git a/helpers/Dojo/ExerciseResultsSanitizerAndValidator.ts b/helpers/Dojo/ExerciseResultsSanitizerAndValidator.ts
index 38ffa923fd74d191787e20ebf832adc9e6325bec..c27722f4ac0129f0a88009d48e594cacd10dba1e 100644
--- a/helpers/Dojo/ExerciseResultsSanitizerAndValidator.ts
+++ b/helpers/Dojo/ExerciseResultsSanitizerAndValidator.ts
@@ -1,13 +1,13 @@
 import { TypedEmitter }      from 'tiny-typed-emitter';
-import ExerciseRunningEvents from '../../types/Dojo/ExerciseRunningEvents';
-import ExerciseCheckerError  from '../../../shared/types/Dojo/ExerciseCheckerError';
+import ExerciseRunningEvents from '../../types/Dojo/ExerciseRunningEvents.js';
+import ExerciseCheckerError  from '../../../shared/types/Dojo/ExerciseCheckerError.js';
 import path                  from 'node:path';
-import ClientsSharedConfig   from '../../config/ClientsSharedConfig';
-import Toolbox               from '../../../shared/helpers/Toolbox';
+import ClientsSharedConfig   from '../../config/ClientsSharedConfig.js';
+import Toolbox               from '../../../shared/helpers/Toolbox.js';
 import * as fs               from 'fs-extra';
-import ExerciseResultsFile   from '../../../shared/types/Dojo/ExerciseResultsFile';
+import ExerciseResultsFile   from '../../../shared/types/Dojo/ExerciseResultsFile.js';
 import JSON5                 from 'json5';
-import Json5FileValidator    from '../../../shared/helpers/Json5FileValidator';
+import Json5FileValidator    from '../../../shared/helpers/Json5FileValidator.js';
 
 
 class ExerciseResultsSanitizerAndValidator {
@@ -27,7 +27,7 @@ class ExerciseResultsSanitizerAndValidator {
         this.containerExitCode = containerExitCode;
     }
 
-    private async resultsFileSanitization() {
+    private resultsFileSanitization() {
         this.events.emit('step', 'RESULTS_FILE_SANITIZATION', 'Sanitizing results file');
 
         if ( this.exerciseResults.success === undefined ) {
@@ -57,7 +57,7 @@ class ExerciseResultsSanitizerAndValidator {
 
 
         // Results file content sanitization
-        await this.resultsFileSanitization();
+        this.resultsFileSanitization();
 
 
         // Results folder size
@@ -76,19 +76,14 @@ class ExerciseResultsSanitizerAndValidator {
         return true;
     }
 
-    private async resultsFileNotProvided(): Promise<boolean> {
-        await this.resultsFileSanitization();
-        return true;
-    }
-
     run() {
-        (async () => {
+        void (async () => {
             // Results file existence
             this.events.emit('step', 'CHECK_RESULTS_FILE_EXIST', 'Checking if results file exists');
             const resultsFileOriginPath = path.join(this.folderResultsExercise, ClientsSharedConfig.filenames.results);
             this.resultsFilePath = path.join(this.folderResultsDojo, ClientsSharedConfig.filenames.results);
 
-            let result: boolean;
+            let result: boolean = true;
             if ( fs.existsSync(resultsFileOriginPath) ) {
                 this.events.emit('endStep', 'CHECK_RESULTS_FILE_EXIST', 'Results file found', false);
 
@@ -102,7 +97,7 @@ class ExerciseResultsSanitizerAndValidator {
             } else {
                 this.events.emit('endStep', 'CHECK_RESULTS_FILE_EXIST', 'Results file not found', false);
 
-                result = await this.resultsFileNotProvided();
+                this.resultsFileSanitization();
             }
 
             if ( result ) {
diff --git a/models/Assignment.ts b/models/Assignment.ts
index 554d4a5cbc6f9641b90a113361bb472943a2394e..5d8f03e445bfd5cfcb4f35c4761bad196e6a2465 100644
--- a/models/Assignment.ts
+++ b/models/Assignment.ts
@@ -1,5 +1,5 @@
-import User        from './User';
-import Exercise    from './Exercise';
+import User        from './User.js';
+import Exercise    from './Exercise.js';
 import * as Gitlab from '@gitbeaker/rest';
 
 
diff --git a/models/Exercise.ts b/models/Exercise.ts
index 0ec86f6e291dc74fe249e702772e347f93faca53..1cc6df278985b8bee554a0b78d96d5d558af0e4d 100644
--- a/models/Exercise.ts
+++ b/models/Exercise.ts
@@ -1,5 +1,5 @@
-import User        from './User';
-import Assignment  from './Assignment';
+import User        from './User.js';
+import Assignment  from './Assignment.js';
 import * as Gitlab from '@gitbeaker/rest';
 
 
diff --git a/models/ExerciseAssignment.ts b/models/ExerciseAssignment.ts
index ec75edaa84d2f0c464f6a50c901126f8c14298fd..7e0ff7ef88b9a451b9d6b32d12af2cc706c7115e 100644
--- a/models/ExerciseAssignment.ts
+++ b/models/ExerciseAssignment.ts
@@ -1,5 +1,5 @@
-import AssignmentFile from '../../shared/types/Dojo/AssignmentFile';
-import Assignment     from './Assignment';
+import AssignmentFile from '../../shared/types/Dojo/AssignmentFile.js';
+import Assignment     from './Assignment.js';
 import * as Gitlab    from '@gitbeaker/rest';
 
 
diff --git a/models/User.ts b/models/User.ts
index df757d182bab02ccb20caa11601aba34b1527372..1ac9fa2c0fd3f3376da03de0349b4920cd2c1114 100644
--- a/models/User.ts
+++ b/models/User.ts
@@ -1,6 +1,6 @@
-import UserRole    from './UserRole';
-import Exercise    from './Exercise';
-import Assignment  from './Assignment';
+import UserRole    from './UserRole.js';
+import Exercise    from './Exercise.js';
+import Assignment  from './Assignment.js';
 import * as Gitlab from '@gitbeaker/rest';