diff --git a/create_group_and_repos.sh b/create_group_and_repos.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9556f55c58a922638c8281ec592f6c793a5b5bb3
--- /dev/null
+++ b/create_group_and_repos.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+if [[ $# != 4 ]]; then
+    echo "Usage: $0 <token> <group_name> <import_url> <repos_students>"
+    exit 1
+fi
+
+token=$1
+group_name=$2
+import_url=$3
+repos_students=$4
+
+group=$(scripts/create_group.py $token $group_name)
+group_id=$(echo $group | cut -d';' -f2)
+printf "$group\n\n"
+
+for line in $(cat $repos_students); do
+    project_name=$(echo $line | cut -d';' -f1)
+    students=$(echo $line | cut -d';' -f2)
+    new_repo=$(scripts/create_repo_for_students.py $token $import_url $group_id $project_name $students)
+    printf "$new_repo\n\n"
+done
diff --git a/scripts/clone_all_repos_in_group.py b/scripts/clone_all_repos_in_group.py
index f30d4fc812cb5df7326beb58c10aa237da2b6319..a6bfb8d612f7806b9292d1040981e4a88eb62c13 100755
--- a/scripts/clone_all_repos_in_group.py
+++ b/scripts/clone_all_repos_in_group.py
@@ -41,7 +41,7 @@ for repo in repositories:
     members_names = ''
 
     for member in members:
-        members_names += member['username'] + ', '
+        members_names += "'" + member['name'] + "' (" + member['username'] + '), '
 
     print('Members: ' + members_names)
     print('Web url: ' + web_url)
diff --git a/scripts/create_group.py b/scripts/create_group.py
index 418e31c613db16873d688c30a3f5ea4cd5291533..60e5bab3a976d1bd0db485177e14e2141873892f 100755
--- a/scripts/create_group.py
+++ b/scripts/create_group.py
@@ -25,5 +25,4 @@ if 'message' in group:
     print('Error in creating group: %s' % group)
     exit(1)
 
-print("Group '" + group['name'] + "' with id '" + str(group['id']) + "' and visibility '" + group['visibility'] + "' available at '" + group['web_url'] + "'")
-print(str(group['id']))
\ No newline at end of file
+print("Group '" + group['name'] + "' with id '" + str(group['id']) + "' and visibility '" + group['visibility'] + "' available at '" + group['web_url'] + "';" + str(group['id']))
diff --git a/scripts/create_repo_for_students.py b/scripts/create_repo_for_students.py
index 76182964e2e3b9a0be4ff657eac5aca222214afa..23a0088ffbe0d011242355de07790cd0290e9d1f 100755
--- a/scripts/create_repo_for_students.py
+++ b/scripts/create_repo_for_students.py
@@ -35,10 +35,16 @@ project = requests.post(base_url + '/projects', params=params, headers=headers).
 if 'message' in project:
     print('Error in creating project: %s' % project)
     exit(1)
+print("Project '" + project['name'] + "' at '" + project['web_url'] + "' created")
 
 # Add each student as project's maintainer (level 40)
 for user_id in users_ids:
     params = {'user_id': user_id, 'access_level': 40}
     new_user = requests.post(base_url + '/projects/' + str(project['id']) + '/members', params=params, headers=headers).json()
 
+    if 'message' in new_user:
+        print('Error in adding user: %s' % new_user)
+    else:
+        print("Adding '" + new_user['name'] + "' (" + new_user['username'] + ") in '" + project['name'] + "'")
+
 # Do not forget : students have to add second remote in their local repositories for pulling last changes.