diff --git a/ExpressAPI/src/helpers/GlobalHelper.ts b/ExpressAPI/src/helpers/GlobalHelper.ts
index 9d5e5e87a7cebbe00c2c70d4a5f47aed1a754144..c34aac42d85b26401f08a0cf3445e365349c6ae4 100644
--- a/ExpressAPI/src/helpers/GlobalHelper.ts
+++ b/ExpressAPI/src/helpers/GlobalHelper.ts
@@ -5,7 +5,7 @@ import DojoStatusCode            from '../shared/types/Dojo/DojoStatusCode.js';
 import { StatusCodes }           from 'http-status-codes';
 import { GitbeakerRequestError } from '@gitbeaker/requester-utils';
 import * as Gitlab               from '@gitbeaker/rest';
-
+import { AxiosError } from 'axios';
 
 class GlobalHelper {
     repoCreationFnExecCreator(req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: Gitlab.ProjectSchema) {
diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts
index 8f73c0eeb12d884b253106ac0b4bba8d04e126e7..6c7d139a8c57819b7a7dadef0a64b36b0b0de29f 100644
--- a/ExpressAPI/src/routes/ExerciseRoutes.ts
+++ b/ExpressAPI/src/routes/ExerciseRoutes.ts
@@ -27,6 +27,8 @@ import * as Gitlab                 from '@gitbeaker/rest';
 import { ProjectSchema }           from '@gitbeaker/rest';
 import GitlabTreeFileType          from '../shared/types/Gitlab/GitlabTreeFileType.js';
 import { GitbeakerRequestError }   from '@gitbeaker/requester-utils';
+import SonarProjectCreation        from '../shared/types/Sonar/SonarProjectCreation';
+import SonarManager                from '../managers/SonarManager';
 
 
 class ExerciseRoutes implements RoutesManager {
@@ -266,6 +268,13 @@ class ExerciseRoutes implements RoutesManager {
 
             await repoCreationFnExec(async () => Promise.all([ ...new Set([ ...assignment.staff, ...params.members ].map(member => member.id)) ].map(GlobalHelper.addRepoMember(repository.id))), 'Add repository members error');
 
+            // Create Sonar project
+            let sonarProject: SonarProjectCreation | undefined = undefined;
+            if ( assignment.useSonar ) {
+                sonarProject = await GlobalHelper.repoCreationFnExecCreator(req, res, DojoStatusCode.EXERCISE_CREATION_SONAR_ERROR, DojoStatusCode.EXERCISE_CREATION_INTERNAL_ERROR, repository)(() => SonarManager.createProjectFromGitlab(repository.id), 'Sonar project creation error') as SonarProjectCreation;
+            }
+
+
             let exercise: Exercise = await repoCreationFnExec(() => db.exercise.create({
                                                                                            data: {
                                                                                                id                : exerciseId,
@@ -278,6 +287,8 @@ class ExerciseRoutes implements RoutesManager {
                                                                                                gitlabCreationDate: new Date(),
                                                                                                gitlabLastInfo    : repository as unknown as Prisma.JsonObject,
                                                                                                gitlabLastInfoDate: new Date(),
+                                                                                               sonarKey          : sonarProject?.project.key,
+                                                                                               sonarCreationInfo : sonarProject?.project,
                                                                                                members           : {
                                                                                                    connectOrCreate: [ ...params.members.map(gitlabUser => {
                                                                                                        return {