diff --git a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
index 44f9e7a687f862594bf008f2ef5f151ba1f613c3..f62056ace8e6f2777d799abbc7ab1225541b15c5 100644
--- a/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
+++ b/NodeApp/src/commander/assignment/subcommands/AssignmentCreateCommand.ts
@@ -12,7 +12,7 @@ import SharedSonarManager from '../../../shared/managers/SharedSonarManager';
 import { Option }         from 'commander';
 
 
-type CommandOptions = { name: string, language: string, template?: string, members_id?: Array<number>, members_username?: Array<string>, clone?: string | boolean, sonar?: boolean, gate?: string, profile?: string[] }
+type CommandOptions = { name: string, language: string, template?: string, members_id?: Array<number>, members_username?: Array<string>, clone?: string | boolean, sonar?: boolean, sonarStrict: boolean, gate?: string, profile?: string[] }
 
 
 class AssignmentCreateCommand extends CommanderCommand {
@@ -39,6 +39,7 @@ class AssignmentCreateCommand extends CommanderCommand {
         if ( SharedConfig.sonar.enabled ) {
             this.command.requiredOption('-s, --sonar', 'add sonar to the code checking process for assignment and exercises')
                 .requiredOption('-d, --no-sonar', 'disable sonar for the code checking process for assignment and exercises')
+                .addOption(new Option('--sonar-strict', 'force the sonar gate to pass to validate the exercise results').default(false).implies({ sonar: true }))
                 .addOption(new Option('-g, --gate <gate>', 'quality gate for sonar').implies({ sonar: true }))
                 .addOption(new Option('-p, --profile <profile...>', 'quality profiles for sonar').default([]).implies({ sonar: true }));
         }
@@ -126,7 +127,7 @@ class AssignmentCreateCommand extends CommanderCommand {
     private async createAssignment(options: CommandOptions) {
         console.log(TextStyle.BLOCK('Please wait while we are creating the assignment (approximately 10 seconds)...'));
 
-        this.assignment = await DojoBackendManager.createAssignment(options.name, options.language, this.members!, this.templateIdOrNamespace, this.sonar, this.sonarGate, this.sonarProfiles);
+        this.assignment = await DojoBackendManager.createAssignment(options.name, options.language, this.members!, this.templateIdOrNamespace, this.sonar, !options.sonarStrict, this.sonarGate, this.sonarProfiles);
 
         const oraInfo = (message: string) => {
             ora({
diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 4250f67e900ca8f70337c3f322bf4555eb4b7ca3..87713aebdebc00a6d88caab425edf339e712cb68 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -250,7 +250,7 @@ class DojoBackendManager {
         }
     }
 
-    public async createAssignment(name: string, language: string, members: Array<Gitlab.UserSchema>, templateIdOrNamespace: string | null, sonar: boolean = false, sonarGate: string | undefined = undefined, sonarProfiles: string[] = [], verbose: boolean = true): Promise<Assignment> {
+    public async createAssignment(name: string, language: string, members: Array<Gitlab.UserSchema>, templateIdOrNamespace: string | null, sonar: boolean = false, allowSonarFailure: boolean = false, sonarGate: string | undefined = undefined, sonarProfiles: string[] = [], verbose: boolean = true): Promise<Assignment> {
         const spinner: ora.Ora = ora('Creating assignment...');
 
         if ( verbose ) {
@@ -259,12 +259,13 @@ class DojoBackendManager {
 
         try {
             const response = await axios.post<DojoBackendResponse<Assignment>>(DojoBackendHelper.getApiUrl(ApiRoute.ASSIGNMENT_CREATE), Object.assign({
-                                                                                                                                                          name         : name,
-                                                                                                                                                          language     : language,
-                                                                                                                                                          members      : JSON.stringify(members),
-                                                                                                                                                          useSonar     : String(sonar),
-                                                                                                                                                          sonarGate    : sonarGate ?? '',
-                                                                                                                                                          sonarProfiles: JSON.stringify(sonarProfiles)
+                                                                                                                                                          name             : name,
+                                                                                                                                                          language         : language,
+                                                                                                                                                          members          : JSON.stringify(members),
+                                                                                                                                                          useSonar         : String(sonar),
+                                                                                                                                                          allowSonarFailure: String(allowSonarFailure),
+                                                                                                                                                          sonarGate        : sonarGate ?? '',
+                                                                                                                                                          sonarProfiles    : JSON.stringify(sonarProfiles),
                                                                                                                                                       }, templateIdOrNamespace ? { template: templateIdOrNamespace } : {}));
 
             if ( verbose ) {