diff --git a/ExpressAPI/prisma/migrations/20250225160246_exercises_and_assignments_add_creation_date/migration.sql b/ExpressAPI/prisma/migrations/20250225160246_exercises_and_assignments_add_creation_date/migration.sql
new file mode 100644
index 0000000000000000000000000000000000000000..4e6ff03358a41424fccaf2e8cc7afd19addce37f
--- /dev/null
+++ b/ExpressAPI/prisma/migrations/20250225160246_exercises_and_assignments_add_creation_date/migration.sql
@@ -0,0 +1,16 @@
+/*
+  Warnings:
+
+  - Added the required column `gitlabCreationDate` to the `Assignment` table without a default value. This is not possible if the table is not empty.
+  - Added the required column `gitlabCreationDate` to the `Exercise` table without a default value. This is not possible if the table is not empty.
+
+*/
+-- AlterTable
+ALTER TABLE `Assignment` ADD COLUMN `gitlabCreationDate` DATETIME(3) NULL AFTER `gitlabCreationInfo`;
+UPDATE `Assignment` SET `gitlabCreationDate` = `gitlabLastInfoDate`;
+ALTER TABLE `Assignment` MODIFY COLUMN `gitlabCreationDate` DATETIME(3) NOT NULL AFTER `gitlabCreationInfo`;
+
+-- AlterTable
+ALTER TABLE `Exercise` ADD COLUMN `gitlabCreationDate` DATETIME(3) NULL DEFAULT NULL AFTER `gitlabCreationInfo`;
+UPDATE `Exercise` SET `gitlabCreationDate` = `gitlabLastInfoDate`;
+ALTER TABLE `Exercise` MODIFY COLUMN `gitlabCreationDate` DATETIME(3) NOT NULL AFTER `gitlabCreationInfo`;
diff --git a/ExpressAPI/prisma/schema.prisma b/ExpressAPI/prisma/schema.prisma
index b9fc889ad8b8374cc56d80d43e4e775a8f776e77..ed1cd3624c308b3c702d8b7202e8329b087622de 100644
--- a/ExpressAPI/prisma/schema.prisma
+++ b/ExpressAPI/prisma/schema.prisma
@@ -38,6 +38,7 @@ model Assignment {
     gitlabId           Int
     gitlabLink         String
     gitlabCreationInfo Json     @db.Json
+    gitlabCreationDate DateTime
     gitlabLastInfo     Json     @db.Json
     gitlabLastInfoDate DateTime
     published          Boolean  @default(false)
@@ -55,6 +56,7 @@ model Exercise {
     gitlabId           Int
     gitlabLink         String
     gitlabCreationInfo Json     @db.Json
+    gitlabCreationDate DateTime
     gitlabLastInfo     Json     @db.Json
     gitlabLastInfoDate DateTime
     deleted            Boolean  @default(false)
diff --git a/ExpressAPI/prisma/seed.ts b/ExpressAPI/prisma/seed.ts
index 6ac1a5d060fb2009293ea630763ec747a2790beb..9154ef54dc9e7bf7491d330f724d09129e261b00 100644
--- a/ExpressAPI/prisma/seed.ts
+++ b/ExpressAPI/prisma/seed.ts
@@ -1,13 +1,12 @@
 // ATTENTION : This line MUST be the first of this file
 import '../src/init.js';
 
-import * as process from 'process';
-import SharedConfig from '../src/shared/config/SharedConfig.js';
-import { UserRole } from '@prisma/client';
-import logger       from '../src/shared/logging/WinstonLogger.js';
-import db           from '../src/helpers/DatabaseHelper.js';
-import TagManager  from '../src/managers/TagManager';
-import { TagType }  from '@prisma/client';
+import * as process          from 'process';
+import SharedConfig          from '../src/shared/config/SharedConfig.js';
+import { TagType, UserRole } from '@prisma/client';
+import logger                from '../src/shared/logging/WinstonLogger.js';
+import db                    from '../src/helpers/DatabaseHelper.js';
+
 
 async function main() {
     await users();
@@ -218,6 +217,7 @@ async function assignments() {
                                                'issue_branch_template'                           : null,
                                                'autoclose_referenced_issues'                     : true
                                            },
+                                           gitlabCreationDate: new Date('2021-10-14T14:20:15.239Z'),
                                            gitlabLastInfo    : {
                                                'id'                                              : 13862,
                                                'description'                                     : 'Dojo assignment repository.\n\nName of the assignment: c_hello_world',
@@ -473,6 +473,7 @@ async function assignments() {
                                                'issue_branch_template'                           : null,
                                                'autoclose_referenced_issues'                     : true
                                            },
+                                           gitlabCreationDate: new Date('2023-11-07T20:35:54.692Z'),
                                            gitlabLastInfo    : {
                                                'id'                                              : 13893,
                                                'description'                                     : 'Dojo assignment repository.\n\nName of the assignment: Technique de compilation - TP',
@@ -766,6 +767,7 @@ async function exercises() {
                                              'issue_branch_template'                           : null,
                                              'autoclose_referenced_issues'                     : true
                                          },
+                                         gitlabCreationDate: new Date('2023-12-14T14:54:35.692Z'),
                                          gitlabLastInfo    : {
                                              'id'                                              : 14232,
                                              'description'                                     : 'Dojo exercise repository based on the the assignment: Technique de compilation - TP',
@@ -1586,379 +1588,379 @@ async function results() {
 
 async function tag() {
     await db.tag.upsert({
-        where : { name: 'C' },
-        update: {},
-        create: {
-            name          : 'C',
-            type          : TagType.LANGUAGE
-        }
-    });
+                            where : { name: 'C' },
+                            update: {},
+                            create: {
+                                name: 'C',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Java' },
-        update: {},
-        create: {
-            name          : 'Java',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Java' },
+                            update: {},
+                            create: {
+                                name: 'Java',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Scala' },
-        update: {},
-        create: {
-            name            : 'Scala',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Scala' },
+                            update: {},
+                            create: {
+                                name: 'Scala',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Kotlin' },
-        update: {},
-        create: {
-            name            : 'Kotlin',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Kotlin' },
+                            update: {},
+                            create: {
+                                name: 'Kotlin',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Rust' },
-        update: {},
-        create: {
-            name            : 'Rust',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Rust' },
+                            update: {},
+                            create: {
+                                name: 'Rust',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'JavaScript' },
-        update: {},
-        create: {
-            name            : 'JavaScript',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'JavaScript' },
+                            update: {},
+                            create: {
+                                name: 'JavaScript',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'TypeScript' },
-        update: {},
-        create: {
-            name            : 'TypeScript',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'TypeScript' },
+                            update: {},
+                            create: {
+                                name: 'TypeScript',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Python' },
-        update: {},
-        create: {
-            name            : 'Python',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Python' },
+                            update: {},
+                            create: {
+                                name: 'Python',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'HTML' },
-        update: {},
-        create: {
-            name            : 'HTML',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'HTML' },
+                            update: {},
+                            create: {
+                                name: 'HTML',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'CSS' },
-        update: {},
-        create: {
-            name            : 'CSS',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'CSS' },
+                            update: {},
+                            create: {
+                                name: 'CSS',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'C++' },
-        update: {},
-        create: {
-            name            : 'C++',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'C++' },
+                            update: {},
+                            create: {
+                                name: 'C++',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Go' },
-        update: {},
-        create: {
-            name            : 'Go',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Go' },
+                            update: {},
+                            create: {
+                                name: 'Go',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'PHP' },
-        update: {},
-        create: {
-            name            : 'PHP',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'PHP' },
+                            update: {},
+                            create: {
+                                name: 'PHP',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'C#' },
-        update: {},
-        create: {
-            name            : 'C#',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'C#' },
+                            update: {},
+                            create: {
+                                name: 'C#',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Swift' },
-        update: {},
-        create: {
-            name            : 'Swift',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Swift' },
+                            update: {},
+                            create: {
+                                name: 'Swift',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Matlab' },
-        update: {},
-        create: {
-            name            : 'Matlab',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Matlab' },
+                            update: {},
+                            create: {
+                                name: 'Matlab',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'SQL' },
-        update: {},
-        create: {
-            name            : 'SQL',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'SQL' },
+                            update: {},
+                            create: {
+                                name: 'SQL',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Assembly' },
-        update: {},
-        create: {
-            name            : 'Assembly',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Assembly' },
+                            update: {},
+                            create: {
+                                name: 'Assembly',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Ruby' },
-        update: {},
-        create: {
-            name            : 'Ruby',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Ruby' },
+                            update: {},
+                            create: {
+                                name: 'Ruby',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Fortran' },
-        update: {},
-        create: {
-            name            : 'Fortran',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Fortran' },
+                            update: {},
+                            create: {
+                                name: 'Fortran',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Pascal' },
-        update: {},
-        create: {
-            name            : 'Pascal',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Pascal' },
+                            update: {},
+                            create: {
+                                name: 'Pascal',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Visual Basic' },
-        update: {},
-        create: {
-            name            : 'Visual Basic',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Visual Basic' },
+                            update: {},
+                            create: {
+                                name: 'Visual Basic',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'R' },
-        update: {},
-        create: {
-            name            : 'R',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'R' },
+                            update: {},
+                            create: {
+                                name: 'R',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Objective-C' },
-        update: {},
-        create: {
-            name            : 'Objective-C',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Objective-C' },
+                            update: {},
+                            create: {
+                                name: 'Objective-C',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Lua' },
-        update: {},
-        create: {
-            name            : 'Lua',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Lua' },
+                            update: {},
+                            create: {
+                                name: 'Lua',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Ada' },
-        update: {},
-        create: {
-            name            : 'Ada',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Ada' },
+                            update: {},
+                            create: {
+                                name: 'Ada',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Haskell' },
-        update: {},
-        create: {
-            name            : 'Haskell',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Haskell' },
+                            update: {},
+                            create: {
+                                name: 'Haskell',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Shell/PowerShell' },
-        update: {},
-        create: {
-            name            : 'Shell/PowerShell',
-            type          : TagType.LANGUAGE,
-        }
-    });
+                            where : { name: 'Shell/PowerShell' },
+                            update: {},
+                            create: {
+                                name: 'Shell/PowerShell',
+                                type: TagType.LANGUAGE
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Express' },
-        update: {},
-        create: {
-            name            : 'Express',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Express' },
+                            update: {},
+                            create: {
+                                name: 'Express',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Django' },
-        update: {},
-        create: {
-            name            : 'Django',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Django' },
+                            update: {},
+                            create: {
+                                name: 'Django',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Ruby on Rails' },
-        update: {},
-        create: {
-            name            : 'Ruby on Rails',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Ruby on Rails' },
+                            update: {},
+                            create: {
+                                name: 'Ruby on Rails',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Angular' },
-        update: {},
-        create: {
-            name            : 'Angular',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Angular' },
+                            update: {},
+                            create: {
+                                name: 'Angular',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'React' },
-        update: {},
-        create: {
-            name            : 'React',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'React' },
+                            update: {},
+                            create: {
+                                name: 'React',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Flutter' },
-        update: {},
-        create: {
-            name            : 'Flutter',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Flutter' },
+                            update: {},
+                            create: {
+                                name: 'Flutter',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Ionic' },
-        update: {},
-        create: {
-            name            : 'Ionic',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Ionic' },
+                            update: {},
+                            create: {
+                                name: 'Ionic',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Flask' },
-        update: {},
-        create: {
-            name            : 'Flask',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Flask' },
+                            update: {},
+                            create: {
+                                name: 'Flask',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'React Native' },
-        update: {},
-        create: {
-            name            : 'React Native',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'React Native' },
+                            update: {},
+                            create: {
+                                name: 'React Native',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Xamarin' },
-        update: {},
-        create: {
-            name            : 'Xamarin',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Xamarin' },
+                            update: {},
+                            create: {
+                                name: 'Xamarin',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Laravel' },
-        update: {},
-        create: {
-            name            : 'Laravel',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Laravel' },
+                            update: {},
+                            create: {
+                                name: 'Laravel',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Spring' },
-        update: {},
-        create: {
-            name            : 'Spring',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Spring' },
+                            update: {},
+                            create: {
+                                name: 'Spring',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Play' },
-        update: {},
-        create: {
-            name            : 'Play',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Play' },
+                            update: {},
+                            create: {
+                                name: 'Play',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Symfony' },
-        update: {},
-        create: {
-            name            : 'Symfony',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Symfony' },
+                            update: {},
+                            create: {
+                                name: 'Symfony',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'ASP.NET' },
-        update: {},
-        create: {
-            name            : 'ASP.NET',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'ASP.NET' },
+                            update: {},
+                            create: {
+                                name: 'ASP.NET',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Meteor' },
-        update: {},
-        create: {
-            name            : 'Meteor',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Meteor' },
+                            update: {},
+                            create: {
+                                name: 'Meteor',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Vue.js' },
-        update: {},
-        create: {
-            name            : 'Vue.js',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Vue.js' },
+                            update: {},
+                            create: {
+                                name: 'Vue.js',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Svelte' },
-        update: {},
-        create: {
-            name            : 'Svelte',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Svelte' },
+                            update: {},
+                            create: {
+                                name: 'Svelte',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
     await db.tag.upsert({
-        where : { name: 'Express.js' },
-        update: {},
-        create: {
-            name            : 'Express.js',
-            type          : TagType.FRAMEWORK
-        }
-    });
+                            where : { name: 'Express.js' },
+                            update: {},
+                            create: {
+                                name: 'Express.js',
+                                type: TagType.FRAMEWORK
+                            }
+                        });
 }
diff --git a/ExpressAPI/src/routes/AssignmentRoutes.ts b/ExpressAPI/src/routes/AssignmentRoutes.ts
index 1a536f85224af3e2fd0b382cdb8eff54ad157aea..8cb5f4134f152002acf5f1c9c06b2986dbaebbac 100644
--- a/ExpressAPI/src/routes/AssignmentRoutes.ts
+++ b/ExpressAPI/src/routes/AssignmentRoutes.ts
@@ -175,6 +175,7 @@ class AssignmentRoutes implements RoutesManager {
                                                                                                        gitlabId          : repository.id,
                                                                                                        gitlabLink        : repository.web_url,
                                                                                                        gitlabCreationInfo: repository as unknown as Prisma.JsonObject,
+                                                                                                       gitlabCreationDate: new Date(),
                                                                                                        gitlabLastInfo    : repository as unknown as Prisma.JsonObject,
                                                                                                        gitlabLastInfoDate: new Date(),
                                                                                                        staff             : {
diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts
index eced4af70c7dd166ee55634d08500c2e146ec393..ae3d4b9efc6e775f5a5887c16de6165d33bd5d28 100644
--- a/ExpressAPI/src/routes/ExerciseRoutes.ts
+++ b/ExpressAPI/src/routes/ExerciseRoutes.ts
@@ -234,6 +234,7 @@ class ExerciseRoutes implements RoutesManager {
                                                                                                  gitlabId          : repository.id,
                                                                                                  gitlabLink        : repository.web_url,
                                                                                                  gitlabCreationInfo: repository as unknown as Prisma.JsonObject,
+                                                                                                 gitlabCreationDate: new Date(),
                                                                                                  gitlabLastInfo    : repository as unknown as Prisma.JsonObject,
                                                                                                  gitlabLastInfoDate: new Date(),
                                                                                                  members           : {