diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java
index 4708281160f29938c3ff4c1ee19052d21b0f0dcf..6bdb547171c81097ae87bfebfa5a38e6b3a4254c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java
@@ -19,6 +19,8 @@ public interface IGroupFinding {
     void selectGroupfindingCriteria(
             GroupfindingCriteria groupfindingCriteria, Project project);
 
+    GroupFormationMechanism getGFM(Project project);
+
     /**
      * Persist the selected manual groups
      * @param groupComposition
@@ -47,5 +49,7 @@ public interface IGroupFinding {
 
     int getMinNumberOfStudentsNeeded(Project project);
 
+    void deleteGroups(Project project);
+
     List<Group> createRandomGroups(Project project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
index e6ae168f67c0e0bf262b3e39cfaaf57b2d621a44..f89aeac178348e4de980f7db8cede2dffff39047 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java
@@ -182,9 +182,11 @@ public class GroupDAO {
     }
 
     public void deleteGroups(Project project) {
-        String query = "DELETE from groups where projectName = ?";
+        String query ="DELETE gu FROM groupuser gu INNER JOIN groups g ON gu.groupId=g.id WHERE g.projectName = ?;";
+        String query2="DELETE FROM groups WHERE projectName=?;";
         connect.connect();
         connect.issueInsertOrDeleteStatement(query, project.getName());
+        connect.issueInsertOrDeleteStatement(query2, project.getName());
         connect.close();
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java
index deb9f85adc2d84ee420e0c8bd55107c19b14eee7..79922ea1e1ff1a0e79ab1269a3664bb861882f0d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.modules.group;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import unipotsdam.gf.modules.project.Management;
 import unipotsdam.gf.modules.project.Project;
 import unipotsdam.gf.modules.project.ProjectDAO;
@@ -14,6 +15,7 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 @Path("/group")
 public class GroupView {
@@ -34,7 +36,7 @@ public class GroupView {
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/all/projects/{projectName}")
-    public GroupData getGroups(@PathParam("projectName") String projectName) {
+    public GroupData getOrInitializeGroups(@PathParam("projectName") String projectName) {
         GroupData data = groupFormationProcess.getOrInitializeGroups(new Project(projectName));
         return  data;
     }
@@ -94,6 +96,16 @@ public class GroupView {
     }
 
 
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("/get/projects/{projectName}")
+    public List<Group> getGroups(@PathParam("projectName") String projectName) {
+        List<Group> result = groupfinding.getGroups(projectDAO.getProjectByName(projectName));
+        return result;
+    }
+
+
+
     /**
      * find out if this is used by learning goal
      * @param projectName
@@ -105,7 +117,7 @@ public class GroupView {
     @Path("/projects/{projectName}")
     public void saveGroups(@PathParam("projectName") String projectName, Group[] groups) {
         Project project = new Project(projectName);
-        groupfinding.persistGroups(Arrays.asList(groups), project);
+        groupFormationProcess.saveGroups(Arrays.asList(groups), project);
     }
 
     @PUT
@@ -113,8 +125,7 @@ public class GroupView {
     @Path("/projects/{projectName}/groups")
     public void persistGroups(@PathParam("projectName") String  projectName, GroupData data) {
         Project project = new Project(projectName);
-
-        groupfinding.persistGroups(data.getGroups(), project);
+        groupFormationProcess.saveGroups(data.getGroups(), project);
     }
 
     @POST
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java
index 04ea415eaa08f0cd170b35d8515acc37d400166f..53b0cb1590473e3b3aee3ca26d627479081e570e 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java
@@ -30,6 +30,11 @@ public class GroupfindingImpl implements IGroupFinding {
         //
     }
 
+    @Override
+    public GroupFormationMechanism getGFM(Project project){
+        return groupDAO.getGroupFormationMechanism(project);
+    }
+
     @Override
     public void persistGroups(List<Group> groupComposition, Project project) {
         for (Group group : groupComposition) {
@@ -67,6 +72,11 @@ public class GroupfindingImpl implements IGroupFinding {
         return participantsNeeded;
     }
 
+    @Override
+    public void deleteGroups(Project project){
+        groupDAO.deleteGroups(project);
+    }
+
     @Override
     public List<Group> createRandomGroups(Project project) {
         ArrayList<Group> result = new ArrayList<>();
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java
index cac8e7a0da8c5d9b83aa8a34b85bf59b9d969478..2a877f7d7e042e7f0465c1d0acde24daa7c80e9f 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.modules.user;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
 import java.util.Objects;
@@ -53,6 +54,7 @@ public class User {
         return name;
     }
 
+    @JsonIgnore
     public String getPassword() {
         return password;
     }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java
index 2cd418eaaded38648d2ed7086339a1bf27f7c9e4..d0dede28a2c255b9f3bb83cba3baeeb490bc91f3 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java
@@ -77,6 +77,10 @@ public class GroupFormationProcess {
             groups = groupfinding.createRandomGroups(project);
         }
         return new GroupData(groups);
+    }
 
+    public void saveGroups(List<Group> groups,Project project){
+        groupfinding.deleteGroups(project);
+        groupfinding.persistGroups(groups, project);
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java
index ed4bd984dcbaa7a211fb869306f5057a4fdbae0d..909b69d55a6c4b033eb77cc69450181f11f46b0a 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.process.tasks;
 
 import unipotsdam.gf.interfaces.IGroupFinding;
+import unipotsdam.gf.modules.group.GroupFormationMechanism;
 import unipotsdam.gf.modules.project.Project;
 import unipotsdam.gf.modules.project.ProjectDAO;
 import unipotsdam.gf.modules.submission.controller.SubmissionController;
@@ -14,6 +15,8 @@ import unipotsdam.gf.mysql.VereinfachtesResultSet;
 import javax.annotation.ManagedBean;
 import javax.inject.Inject;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
 
 import static unipotsdam.gf.process.tasks.TaskName.*;
 
@@ -88,7 +91,14 @@ public class TaskDAO {
         project.setName(vereinfachtesResultSet.getString("projectName"));
         ParticipantsCount participantsCount = projectDAO.getParticipantCount(project);
         participantsCount.setParticipantsNeeded(groupFinding.getMinNumberOfStudentsNeeded(project));
-        task.setTaskData(participantsCount);
+        Map<String, Object> taskData = new HashMap<>();
+        taskData.put("participantCount", participantsCount);
+        GroupFormationMechanism gfm =groupFinding.getGFM(project);
+        taskData.put("gfm", gfm);
+        task.setTaskData(taskData);
+        if (gfm.equals(GroupFormationMechanism.Manual)){
+            task.setTaskType(TaskType.LINKED);
+        }
         task.setHasRenderModel(true);
         return task;
     }
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp
index 081e7b3f1f8cff3dc18ef019c02d3958e0aaeac6..76acbd7864f487810002a995584e4ea2c5ed32f3 100644
--- a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp
@@ -1,7 +1,7 @@
-<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %>
-<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %>
 <!DOCTYPE html>
 <html>
 
@@ -25,62 +25,61 @@
 
 <body>
 <menu:menu hierarchy="1"/>
-<div id="wrapper">
-    <div class="page-content-wrapper">
-        <div class="container-fluid"><a class="btn btn-link" role="button" href="#menu-toggle" id="menu-toggle"></a>
-            <div class="row">
-                <div class="col-md-12">
+<div class="page-content-wrapper">
+    <div class="container-fluid"><a class="btn btn-link" role="button" href="#menu-toggle" id="menu-toggle"></a>
+        <div class="row">
+            <div class="col-md-12">
 
-                    <div class="page-header"></div>
-                </div>
+                <div class="page-header"></div>
             </div>
         </div>
     </div>
+</div>
 
-    <div>
-        <div class="container">
-            <div class="row">
-                <div class="col-md-offset-3 col-sm-8 col-xs-1">
-                    <h3>Projekt</h3>
-                    <div class="dropdown">
-                        <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"
-                                id="projectDropdown">Projekt auswählen
-                            <span class="caret"></span></button>
-                        <ul class="dropdown-menu" id="dropdownOptions">
-                        </ul>
-                    </div>
+<div>
+    <div class="container">
+        <div class="row">
+            <div class="col-md-offset-3 col-sm-8 col-xs-1">
+                <h3>Projekt</h3>
+                <div class="dropdown">
+                    <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"
+                            id="projectDropdown">Projekt auswählen
+                        <span class="caret"></span></button>
+                    <ul class="dropdown-menu" id="dropdownOptions">
+                    </ul>
                 </div>
             </div>
-            <div id="tablesHolder"></div>
-            <!-- <table class="table table-striped table-bordered table-list" style="width: 40%;margin-top: 10px;">
-                 <thead id="tableHead">
-                 <tr>
-                     <th class="hidden-xs">Student</th>
-                     <th>E-Mail</th>
-                 </tr>
-                 </thead>
-                 <tbody>
-                 <tr id="student2">
+        </div>
+        <div id="tablesHolder"></div>
+        <!-- <table class="table table-striped table-bordered table-list" style="width: 40%;margin-top: 10px;">
+             <thead id="tableHead">
+             <tr>
+                 <th class="hidden-xs">Student</th>
+                 <th>E-Mail</th>
+             </tr>
+             </thead>
+             <tbody>
+             <tr id="student2">
 
-                 </tr>
-                 <tr id="student3">
+             </tr>
+             <tr id="student3">
 
-                 </tr>
-                 <tr id="student4">
+             </tr>
+             <tr id="student4">
 
-                 </tr>
-                 <tr id="student5">
+             </tr>
+             <tr id="student5">
 
-                 </tr>
+             </tr>
 
-                 </tbody>
+             </tbody>
 
-             </table>-->
-            <!--<p>Hier können sie ihre Gruppen zu allen Projekten einsehen. Klicken sie dafür auf das Dropdownmenü
-                um ihren Kurs auszuwählen.</p>-->
-        </div>
+         </table>-->
+        <!--<p>Hier können sie ihre Gruppen zu allen Projekten einsehen. Klicken sie dafür auf das Dropdownmenü
+            um ihren Kurs auszuwählen.</p>-->
     </div>
 </div>
+<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..27262c879e889cd031d1260a6b89eb1d0357df96
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp
@@ -0,0 +1,59 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: dehne
+  Date: 18.09.2018
+  Time: 13:36
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %>
+<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %>
+
+<html>
+<head>
+    <omniDependencies:omniDependencies hierarchy="1"/>
+    <script src="js/create-groups-manual.js"></script>
+    <link rel="stylesheet" href="css/create-groups-manual.css">
+</head>
+
+<script id="groupTemplate" type="text/x-jQuery-tmpl">
+        <div style="display: block; margin-top: 5px; margin-left: 5px;" id="${groupName}">
+        <button type="button" class="group-button list-group-item list-group-item-action">${groupName}</button>
+        {{each groupMember}}
+            <button type="button" name="student" class="student-button list-group-item list-group-item-action">
+            <span>${name}</span>
+            <p name="userEmail" hidden>${email}</p></button>
+        {{/each}}
+        <p name="chatRoomId" hidden>${chatRoomId}</p>
+        </div>
+</script>
+
+<body>
+<menu:menu hierarchy="1"/>
+<div style="display: block">
+    <div style="display: flex">
+        <div style="display:block">
+            <div id="studentsWithoutGroup" class="alert alert-warning">
+                Es sind noch Studenten "gruppenlos".
+            </div>
+            Gruppen:
+            <div class="list-group" style="display: flex; flex-wrap: wrap;" id="groupsInProject">
+                <div style="display:block;" id="gruppenlos">
+                    <button type="button" class="group-button list-group-item list-group-item-action active">
+                        gruppenlos
+                    </button>
+                </div>
+            </div>
+            <button id="openNewGroup">neue Gruppe öffnen</button>
+        </div>
+
+    </div>
+    <div style="margin-top: 50px; margin-left: 5px;margin-right: 5px;">
+        <button id="btnRelocate">&lt&ltverschieben&gt&gt</button>
+    </div>
+</div>
+<button type="button" class="btn-success" id="btnSave"> speichern</button>
+<footer:footer/>
+</body>
+</html>
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp
deleted file mode 100644
index 8a9ec37cc4a1665acda91dd81a154c67d950e387..0000000000000000000000000000000000000000
--- a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp
+++ /dev/null
@@ -1,87 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>jQuery UI Sortable - Handle empty lists</title>
-    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
-    <link rel="stylesheet" href="/resources/demos/style.css">
-    <style>
-        #sortable1, #sortable2, #sortable3, #sortable4 {
-            list-style-type: none;
-            margin: 0;
-            float: left;
-            margin-right: 10px;
-            background: #eee;
-            padding: 5px;
-            width: 143px;
-        }
-
-        #sortable1 li, #sortable2 li, #sortable3 li, #sortable4 li {
-            margin: 5px;
-            padding: 5px;
-            font-size: 1.2em;
-            width: 120px;
-        }
-    </style>
-    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
-    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-    <script>
-        $(function () {
-            $("ul.droptrue").sortable({
-                connectWith: "ul"
-            });
-
-            $("#sortable1, #sortable2, #sortable3, #sortable4").disableSelection();
-        });
-    </script>
-</head>
-<body>
-
-
-<table>
-
-    <tr>
-        <td>
-            <h3>Gruppe 1</h3>
-            <ul id="sortable1" class="droptrue">
-                <li class="ui-state-default">Can be dropped..</li>
-                <li class="ui-state-default">..on an empty list</li>
-                <li class="ui-state-default">Item 3</li>
-                <li class="ui-state-default">Item 4</li>
-                <li class="ui-state-default">Item 5</li>
-            </ul>
-        </td>
-        <td>
-            <h3>Gruppe 2</h3>
-            <ul id="sortable2" class="droptrue">
-                <li class="ui-state-highlight">Cannot be dropped..</li>
-                <li class="ui-state-highlight">..on an empty list</li>
-                <li class="ui-state-highlight">Item 3</li>
-                <li class="ui-state-highlight">Item 4</li>
-                <li class="ui-state-highlight">Item 5</li>
-            </ul>
-        </td>
-    </tr>
-    <td>
-        <h3>Gruppe 3</h3>
-        <ul id="sortable3" class="droptrue">
-            <li class="ui-state-highlight">x..</li>
-            <li class="ui-state-highlight">.x2t</li>
-            <li class="ui-state-highlight">x 3</li>
-            <li class="ui-state-highlight">x 4</li>
-            <li class="ui-state-highlight">x 5</li>
-        </ul>
-    </td>
-    <td>
-        <h3>Gruppe 4</h3>
-        <ul id="sortable4" class="droptrue">
-            <li class="ui-state-highlight">x 6</li>
-        </ul>
-    </td>
-
-</table>
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css b/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css
new file mode 100644
index 0000000000000000000000000000000000000000..76ee71207ee525e8b52f04ab4b3c5ef5efd84e44
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css
@@ -0,0 +1,8 @@
+.group-button{
+    margin-left: 2px;
+    height: 35px;
+}
+
+.student-button{
+    margin-left: 2px;
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d599c21446b0abaf7e8c999bd72bc945856c8c5
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js
@@ -0,0 +1,155 @@
+$(document).ready(function () {
+    $('#studentsWithoutGroup').hide();
+    getAllGroups(function (allGroups) {
+        groupsToTemplate(allGroups, function (done) {
+            selectableButtons(done);
+        });
+    });
+    $('#btnRelocate').click(function () {
+        relocateMember(function (done) {
+            selectableButtons(done);
+        });
+        relocateMember(function (done) {
+            selectableButtons(done);    //i have no clue why this needs to be called twice, but it seems necessary
+        });
+    });
+    $('#btnSave').click(function () {
+        viewToGroup(function (groups) {
+            saveNewGroups(groups);
+        })
+    });
+    $('#openNewGroup').click(function () {
+        openNewGroup(function(done){
+            selectableButtons(done);
+        });
+        selectableButtons(true);  //i have no clue why this needs to be called twice, but it seems necessary
+    });
+});
+
+function getAllGroups(callback) {
+    $.ajax({
+        url: "../rest/group/all/projects/" + $('#projectName').html().trim(),
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'GET',
+        success: function (response) {
+            callback(response.groups);
+        },
+        error: function (a) {
+        }
+    });
+}
+
+function groupsToTemplate(allGroups, callback) {
+    let groupTmplObject = [];
+    for (let group = 0; group < allGroups.length; group++) {
+        groupTmplObject.push({
+            groupName: "group" + group,
+            groupMember: allGroups[group].members,
+            chatRoomId: allGroups[group].chatRoomId,
+        });
+    }
+    $('#groupTemplate').tmpl(groupTmplObject).appendTo('#groupsInProject');
+    let done = true;
+    callback(done);
+}
+
+function selectableButtons(done) {
+    if (done) {
+        $(".student-button").click(function () {
+            $(this).toggleClass('active');
+        });
+        $(".group-button").click(function () {
+            $(".group-button.active").toggleClass('active');
+            $(this).toggleClass('active');
+        });
+    }
+}
+
+function relocateMember(callback) {
+    let memberBtns = $('.student-button.active');
+    let newGroupBtn = $('.group-button.active');
+    newGroupBtn.each(function () {
+        let newGroup = $('#' + $(this).html().trim());
+        memberBtns.each(function () {
+            $(this).toggleClass('active');
+            $(newGroup).append($(this));
+        });
+    });
+    let done = true;
+    callback(done);
+}
+
+function viewToGroup(callback) {
+    if ($('#gruppenlos').children().length > 1) {
+        $('#studentsWithoutGroup').show();
+        return null;
+    }
+    let groups = [];
+    $('#groupsInProject').children().each(function () {
+        if ($(this).attr("id").trim() !== "gruppenlos") {
+            let members = [];
+            let chatRoomId = 0;
+            $(this).children().each(function () {
+                if ($(this).attr("name") === "student") {
+                    let entries = $(this).children();
+                    let email = entries[1].innerText;
+                    let name = entries[0].innerText;
+                    members.push({
+                        email: email,
+                        name: name,
+                        rocketChatPersonalAccessToken: "",
+                        rocketChatUserId: "",
+                        rocketChatUsername: "",
+                        student: true
+                    });
+                }
+                if ($(this).attr("name") === "chatRoomId") {
+                    chatRoomId = $(this).html().trim();
+                }
+            });
+            if (members.length !== 0){
+                groups.push({
+                    chatRoomId: chatRoomId,
+                    id: "",
+                    members: members,
+                })
+            }
+        }
+    });
+    callback(groups);
+}
+
+function saveNewGroups(groups) {
+    let data = JSON.stringify(groups);
+    $.ajax({
+        url: "../rest/group/projects/" + $('#projectName').html().trim(),
+        data: data,
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'POST',
+        success: function (response) {
+            alert("done");
+        },
+        error: function (a) {
+            alert(a);
+        }
+    });
+}
+
+function openNewGroup(callback) {
+    let groupTmplObject = [];
+    let nextGroup = $('#groupsInProject').children().length;
+    groupTmplObject.push({
+        groupName: "group" + nextGroup,
+        groupMember: [],
+        chatRoomId: "",
+    });
+    $('#groupTemplate').tmpl(groupTmplObject).appendTo('#groupsInProject');
+    let done = true;
+    callback(done);
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/project/js/tasks.js b/gemeinsamforschen/src/main/webapp/project/js/tasks.js
index 1dd834e6640f3779256210de5c0bca9bc0cd11b0..3f42037bdefb00cdc2f767cb7fc3f410328a4a51 100644
--- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js
+++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js
@@ -94,7 +94,8 @@ function fitObjectInTmpl(object){
     }else {result.timeFrame="";}
     switch (object.taskName){
         case "WAIT_FOR_PARTICPANTS":
-            result.infoText = "Warten Sie auf die Anmeldungen der Studenten.";
+            result.infoText = "Warten Sie auf die Anmeldungen der Studenten.\n" +
+                "Es sind bereits "+object.taskData.participantCount.participants+" Studenten eingetragen.";
             break;
         case "BUILD_GROUPS":
             result.infoText="Erstellen Sie die Gruppen.";
@@ -119,6 +120,12 @@ function fitObjectInTmpl(object){
     }
     if (object.taskType.includes("LINKED")){
         switch (object.taskName) {
+            case "WAIT_FOR_PARTICPANTS":
+                if (object.taskData.gfm==="Manual"){
+                    result.solveTaskWith="Gruppen erstellen";
+                    result.solveTaskWithLink="redirect(\'../groupfinding/create-groups-manual.jsp?projectName="+object.projectName+"\')";
+                }
+                break;
             case "CLOSE_GROUP_FINDING_PHASE":
                 result.solveTaskWith="Entwurfsphase starten";
                 result.solveTaskWithLink="closePhase(\'"+object.phase+"\', \'"+object.projectName+"\');";