diff --git a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
index b4591ee1a5d01d9cbe85e81bcc7b2ac15aea74e2..ec43c65fcb2278a5a415759e1d299feab863d780 100644
--- a/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
+++ b/NodeApp/src/commander/enonce/EnonceCreateCommand.ts
@@ -28,8 +28,8 @@ class EnonceCreateCommand extends CommanderCommand {
         this.command
         .description('create a new repository for an enonce')
         .requiredOption('-n, --name <name>', 'name of the enonce')
-        .option('-i, --members_id <ids...>', 'list of members ids (teaching staff) to add to the repository')
-        .option('-u, --members_username <usernames...>', 'list of members username (teaching staff) to add to the repository')
+        .option('-i, --members_id <ids...>', 'list of gitlab members ids (teaching staff) to add to the repository')
+        .option('-u, --members_username <usernames...>', 'list of gitlab members username (teaching staff) to add to the repository')
         .option('-t, --template <string>', 'id or url of the template (http(s) and ssh urls are possible)')
         .action(this.commandAction.bind(this));
     }
@@ -44,53 +44,6 @@ class EnonceCreateCommand extends CommanderCommand {
         return (await GitlabManager.testToken(true)).every(result => result);
     }
 
-    private async fetchMembers(options: any): Promise<Array<GitlabUser> | false> {
-        if ( options.members_id || options.members_username ) {
-            ora('Checking Gitlab members:').start().info();
-        }
-
-        let members: Array<GitlabUser> = [];
-
-        async function getMembers<T>(context: any, functionName: string, paramsToSearch: Array<T>): Promise<boolean> {
-            const result = await (context[functionName] as (arg: Array<T>, verbose: boolean, verboseIndent: number) => Promise<Array<GitlabUser | undefined>>)(paramsToSearch, true, 8);
-
-            if ( result.every(user => user) ) {
-                members = members.concat(result as Array<GitlabUser>);
-                return true;
-            } else {
-                return false;
-            }
-        }
-
-        let result = true;
-
-        if ( options.members_id ) {
-            ora({
-                    text  : 'Fetching members by id:',
-                    indent: 4
-                }).start().info();
-
-            result = await getMembers(GitlabManager, 'getUsersById', options.members_id);
-        }
-
-        if ( options.members_username ) {
-            ora({
-                    text  : 'Fetching members by username:',
-                    indent: 4
-                }).start().info();
-
-            result = result && await getMembers(GitlabManager, 'getUsersByUsername', options.members_username);
-        }
-
-        if ( !result ) {
-            return false;
-        }
-
-        members = members.reduce((unique, user) => (unique.findIndex(uniqueUser => uniqueUser.id === user.id) !== -1 ? unique : [ ...unique, user ]), Array<GitlabUser>());
-
-        return members;
-    }
-
     protected async commandAction(options: any): Promise<void> {
         let members!: Array<GitlabUser> | false;
         let templateIdOrNamespace: string | null = null;
@@ -103,11 +56,18 @@ class EnonceCreateCommand extends CommanderCommand {
                 return;
             }
 
-            members = await this.fetchMembers(options);
+            members = await GitlabManager.fetchMembers(options);
             if ( !members ) {
                 return;
             }
 
+            const enonceGetSpinner: ora.Ora = ora('Checking enonce name availability').start();
+            if ( await DojoBackendManager.getEnonce(options.name) ) {
+                enonceGetSpinner.fail(`Enonce name "${ options.name }" is already taken. Please choose another one.`);
+                return;
+            }
+            enonceGetSpinner.succeed(`Enonce name "${ options.name }" is available`);
+
             if ( options.template ) {
                 templateIdOrNamespace = options.template;
 
@@ -135,7 +95,6 @@ class EnonceCreateCommand extends CommanderCommand {
                         }).start().info();
                 };
 
-                oraInfo(`Dojo ID: ${ enonce.id }`);
                 oraInfo(`Name: ${ enonce.name }`);
                 oraInfo(`Web URL: ${ enonce.gitlabCreationInfo.web_url }`);
                 oraInfo(`HTTP Repo: ${ enonce.gitlabCreationInfo.http_url_to_repo }`);
diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts
index 48746d2969a637b2d48d2de56fc3348ad3b2ee63..f5fcb4f8d1bdd15cbe1283eb7dec8a961f3dd090 100644
--- a/NodeApp/src/managers/DojoBackendManager.ts
+++ b/NodeApp/src/managers/DojoBackendManager.ts
@@ -25,6 +25,15 @@ class DojoBackendManager {
         return `${ Config.apiURL }${ route }`;
     }
 
+    public async getEnonce(nameOrUrl: string): Promise<Enonce | undefined> {
+        try {
+            return await axios.get(this.getApiUrl(ApiRoutes.ENONCE_GET).replace('{{nameOrUrl}}', decodeURIComponent(nameOrUrl)));
+        } catch ( error ) {
+            return undefined;
+        }
+    }
+
+
     public async checkTemplateAccess(idOrNamespace: string, verbose: boolean = true): Promise<boolean> {
         const spinner: ora.Ora = ora('Checking template access');
 
@@ -84,13 +93,13 @@ class DojoBackendManager {
                 if ( error instanceof AxiosError ) {
                     if ( error.response ) {
                         if ( error.response.status === StatusCodes.CONFLICT ) {
-                            spinner.fail(`The template name is already used. Please choose another name.`);
+                            spinner.fail(`The enonce name is already used. Please choose another one.`);
                         } else {
-                            spinner.fail(`Template creation error: ${ error.response.statusText }`);
+                            spinner.fail(`Enonce creation error: ${ error.response.statusText }`);
                         }
                     }
                 } else {
-                    spinner.fail(`Template creation error: unknown error`);
+                    spinner.fail(`Enonce creation error: unknown error`);
                 }
             }
 
diff --git a/NodeApp/src/managers/GitlabManager.ts b/NodeApp/src/managers/GitlabManager.ts
index b0d17ba3a90a986bd5cef3da0ccd922e293fba1e..bb12aeb4875d958f18b010afbf70e8e463e2819a 100644
--- a/NodeApp/src/managers/GitlabManager.ts
+++ b/NodeApp/src/managers/GitlabManager.ts
@@ -164,6 +164,53 @@ class GitlabManager {
     public async getRepository(repoId: number): Promise<any> {
         return await axios.get(`${ Config.gitlab.apiURL }/projects/${ repoId }`);
     }
+
+    public async fetchMembers(options: any): Promise<Array<GitlabUser> | false> {
+        if ( options.members_id || options.members_username ) {
+            ora('Checking Gitlab members:').start().info();
+        }
+
+        let members: Array<GitlabUser> = [];
+
+        async function getMembers<T>(context: any, functionName: string, paramsToSearch: Array<T>): Promise<boolean> {
+            const result = await (context[functionName] as (arg: Array<T>, verbose: boolean, verboseIndent: number) => Promise<Array<GitlabUser | undefined>>)(paramsToSearch, true, 8);
+
+            if ( result.every(user => user) ) {
+                members = members.concat(result as Array<GitlabUser>);
+                return true;
+            } else {
+                return false;
+            }
+        }
+
+        let result = true;
+
+        if ( options.members_id ) {
+            ora({
+                    text  : 'Fetching members by id:',
+                    indent: 4
+                }).start().info();
+
+            result = await getMembers(this, 'getUsersById', options.members_id);
+        }
+
+        if ( options.members_username ) {
+            ora({
+                    text  : 'Fetching members by username:',
+                    indent: 4
+                }).start().info();
+
+            result = result && await getMembers(this, 'getUsersByUsername', options.members_username);
+        }
+
+        if ( !result ) {
+            return false;
+        }
+
+        members = members.reduce((unique, user) => (unique.findIndex(uniqueUser => uniqueUser.id === user.id) !== -1 ? unique : [ ...unique, user ]), Array<GitlabUser>());
+
+        return members;
+    }
 }
 
 
diff --git a/NodeApp/src/types/ApiRoutes.ts b/NodeApp/src/types/ApiRoutes.ts
index 74237bd60bfb579af96f87169b209e54f5139b05..cc62f3f7fe264915d2a6ac92fe5ac5f0b2895791 100644
--- a/NodeApp/src/types/ApiRoutes.ts
+++ b/NodeApp/src/types/ApiRoutes.ts
@@ -2,6 +2,7 @@ enum ApiRoutes {
     LOGIN                        = '/login',
     TEST_SESSION                 = '/test_session',
     GITLAB_CHECK_TEMPLATE_ACCESS = '/gitlab/project/{{id}}/checkTemplateAccess',
+    ENONCE_GET                   = '/enonces/{{nameOrUrl}}',
     ENONCE_CREATE                = '/enonces',
 }