diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
index 48542ab66ef24c39f3b5c20121e1096b0fcd8842..9e601b1e2a22d94f5137fb519e75c91e37ed3bd6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFApplicationBinder.java
@@ -7,6 +7,7 @@ import unipotsdam.gf.healthchecks.HealthChecks;
 import unipotsdam.gf.interfaces.*;
 import unipotsdam.gf.modules.annotation.controller.AnnotationController;
 import unipotsdam.gf.modules.annotation.controller.FeedbackImpl;
+import unipotsdam.gf.modules.assessment.AssessmentDAO;
 import unipotsdam.gf.modules.assessment.controller.service.AssessmentDBCommunication;
 import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 import unipotsdam.gf.modules.communication.DummyCommunicationService;
@@ -98,6 +99,7 @@ public class GFApplicationBinder extends AbstractBinder {
         bind(SurveyProcess.class).to(SurveyProcess.class);
         bind(FileManagementService.class).to(FileManagementService.class);
         bind(FileManagementDAO.class).to(FileManagementDAO.class);
+        bind(AssessmentDAO.class).to(AssessmentDAO.class);
 
         /**
          * @Martin comment in for your development
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java
index 5c60ede6fbc0369c2721ca35752eaa0b6bdc8308..f9c54a71c9d211abd1bbde739819b4c347690061 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentDAO.java
@@ -1,16 +1,25 @@
 package unipotsdam.gf.modules.assessment;
 
+import uk.co.jemos.podam.api.PodamFactory;
+import uk.co.jemos.podam.api.PodamFactoryImpl;
 import unipotsdam.gf.modules.user.UserDAO;
 import unipotsdam.gf.mysql.MysqlConnect;
 
 import javax.inject.Inject;
 
 public class AssessmentDAO {
+
+    PodamFactoryImpl podamFactory = new PodamFactoryImpl();
+
     @Inject
     private MysqlConnect connect;
 
     @Inject
     private UserDAO userDAO;
 
-    
+    public AssessmentProgress getProgress() {
+       AssessmentProgress assessmentProgress =  podamFactory.manufacturePojo(AssessmentProgress.class);
+       //assessmentProgress.setNumberOfGroupsWithoutPresentation(3);
+       return assessmentProgress;
+    }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentProgress.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentProgress.java
new file mode 100644
index 0000000000000000000000000000000000000000..564ee3ffc7acf1165beb8ff46f76a3bf3db9f448
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/AssessmentProgress.java
@@ -0,0 +1,80 @@
+package unipotsdam.gf.modules.assessment;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class AssessmentProgress {
+
+    private int numberOfGroups;
+    private int numberOfGroupPresentions;
+    private int numberOfGroupReports;
+    private int numberOfGroupsWithoutExternalAssessment;
+    private int numberOfStudentsWithoutInternalAsssessment;
+    private int numberOfGroupsWithoutPresentation;
+
+
+    public AssessmentProgress(
+            int numberOfGroups, int numberOfGroupPresentions, int numberOfGroupReports,
+            int numberOfGroupsWithoutExternalAssessment, int numberOfStudentsWithoutInternalAsssessment) {
+        this.numberOfGroups = numberOfGroups;
+        this.numberOfGroupPresentions = numberOfGroupPresentions;
+        this.numberOfGroupReports = numberOfGroupReports;
+        this.numberOfGroupsWithoutExternalAssessment = numberOfGroupsWithoutExternalAssessment;
+        this.numberOfStudentsWithoutInternalAsssessment = numberOfStudentsWithoutInternalAsssessment;
+    }
+
+    public int getNumberOfGroups() {
+        return numberOfGroups;
+    }
+
+    public void setNumberOfGroups(int numberOfGroups) {
+        this.numberOfGroups = numberOfGroups;
+    }
+
+    public int getNumberOfGroupPresentions() {
+        return numberOfGroupPresentions;
+    }
+
+    public void setNumberOfGroupPresentions(int numberOfGroupPresentions) {
+        this.numberOfGroupPresentions = numberOfGroupPresentions;
+    }
+
+    public int getNumberOfGroupReports() {
+        return numberOfGroupReports;
+    }
+
+    public void setNumberOfGroupReports(int numberOfGroupReports) {
+        this.numberOfGroupReports = numberOfGroupReports;
+    }
+
+    public int getNumberOfGroupsWithoutExternalAssessment() {
+        return numberOfGroupsWithoutExternalAssessment;
+    }
+
+    public void setNumberOfGroupsWithoutExternalAssessment(int numberOfGroupsWithoutExternalAssessment) {
+        this.numberOfGroupsWithoutExternalAssessment = numberOfGroupsWithoutExternalAssessment;
+    }
+
+    public int getNumberOfStudentsWithoutInternalAsssessment() {
+        return numberOfStudentsWithoutInternalAsssessment;
+    }
+
+    public void setNumberOfStudentsWithoutInternalAsssessment(int numberOfStudentsWithoutInternalAsssessment) {
+        this.numberOfStudentsWithoutInternalAsssessment = numberOfStudentsWithoutInternalAsssessment;
+    }
+
+
+
+    public int getNumberOfGroupsWithoutPresentation() {
+        return numberOfGroupsWithoutPresentation;
+    }
+
+    public void setNumberOfGroupsWithoutPresentation(int numberOfGroupsWithoutPresentation) {
+        this.numberOfGroupsWithoutPresentation = numberOfGroupsWithoutPresentation;
+    }
+
+    public AssessmentProgress() {
+    }
+
+
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/fileManagement/FileManagementDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/fileManagement/FileManagementDAO.java
index 21d13edadf8cf9aa07c1b8368c1c90bf706507ef..2a8b06fe928834a68d47d86d0f05c5b264a5a086 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/fileManagement/FileManagementDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/fileManagement/FileManagementDAO.java
@@ -1,5 +1,6 @@
 package unipotsdam.gf.modules.fileManagement;
 
+import unipotsdam.gf.modules.group.GroupDAO;
 import unipotsdam.gf.modules.project.Project;
 import unipotsdam.gf.modules.user.User;
 import unipotsdam.gf.mysql.MysqlConnect;
@@ -20,40 +21,56 @@ public class FileManagementDAO {
     @Inject
     private MysqlConnect connect;
 
+    @Inject
+    private GroupDAO groupDAO;
+
     void writeFileMetaToDB(User user, Project project, String fileLocation, FileRole fileRole, String fileName) {
+
+        Integer groupId = null;
+
+        switch (fileRole) {
+            case FINAL_REPORT:
+            case PRESENTATION:
+            case DOSSIER:
+                groupId = groupDAO.getGroupByStudent(project, user);
+                break;
+        }
+
         connect.connect();
-        String mysqlRequest =
-                "INSERT INTO `largefilestorage`(`userEmail`, `projectName`, `filelocation`, `filerole`, `filename`) VALUES (?,?,?,?,?)";
-        connect.issueInsertOrDeleteStatement(mysqlRequest, user.getEmail(), project.getName(),
-                fileLocation, fileRole.toString(), fileName);
+        if (groupId != null) {
+            String mysqlRequest =
+                    "INSERT INTO `largefilestorage`(`userEmail`, `projectName`, `filelocation`, `filerole`, " +
+                            "`filename`, `groupId`) VALUES (?,?,?,?,?,?)";
+            connect.issueInsertOrDeleteStatement(
+                    mysqlRequest, user.getEmail(), project.getName(), fileLocation, fileRole.toString(), fileName);
+        } else {
+            String mysqlRequest =
+                    "INSERT INTO `largefilestorage`(`userEmail`, `projectName`, `filelocation`, `filerole`, `filename`) VALUES (?,?,?,?,?)";
+            connect.issueInsertOrDeleteStatement(
+                    mysqlRequest, user.getEmail(), project.getName(), fileLocation, fileRole.toString(), fileName);
+        }
         connect.close();
     }
 
     Map<String, String> getListOfFiles(User user, Project project) {
         connect.connect();
-        String mysqlRequest = "SELECT * FROM `largefilestorage` lfs JOIN `groupuser` gu " +
-                "ON gu.userEmail=lfs.userEmail JOIN groups g on g.id=gu.groupId WHERE g.id " +
-                "IN (SELECT gu2.groupId FROM `groupuser` gu2 WHERE gu2.userEmail=?) AND g.projectName=? " +
-                "AND g.projectName=lfs.projectName";
+        String mysqlRequest =
+                "SELECT * FROM `largefilestorage` lfs JOIN `groupuser` gu " + "ON gu.userEmail=lfs.userEmail JOIN groups g on g.id=gu.groupId WHERE g.id " + "IN (SELECT gu2.groupId FROM `groupuser` gu2 WHERE gu2.userEmail=?) AND g.projectName=? " + "AND g.projectName=lfs.projectName";
         VereinfachtesResultSet vereinfachtesResultSet =
                 connect.issueSelectStatement(mysqlRequest, user.getEmail(), project.getName());
         boolean next = vereinfachtesResultSet.next();
         Map<String, String> result = new HashMap<>();
         while (next) {
-            result.put(
-                    vereinfachtesResultSet.getString("filelocation"),
-                    vereinfachtesResultSet.getString("fileName")
-            );
+            result.put(vereinfachtesResultSet.getString("filelocation"), vereinfachtesResultSet.getString("fileName"));
             next = vereinfachtesResultSet.next();
         }
         connect.close();
         return result;
     }
 
-    void deleteMetaOfFile(String fileLocation){
+    void deleteMetaOfFile(String fileLocation) {
         connect.connect();
-        String mysqlRequest =
-                "DELETE FROM `largefilestorage` WHERE filelocation=?";
+        String mysqlRequest = "DELETE FROM `largefilestorage` WHERE filelocation=?";
         connect.issueInsertOrDeleteStatement(mysqlRequest, fileLocation);
         connect.close();
     }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/PeerAssessmentProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/PeerAssessmentProcess.java
index 5026b17213321585c16a6b6fffb183e1d077da02..63309a2640484dca937aff5cc7b50f1ea6b9ee59 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/PeerAssessmentProcess.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/PeerAssessmentProcess.java
@@ -32,7 +32,7 @@ public class PeerAssessmentProcess {
         // distribute upload tasks
         taskDAO.persistTaskForAllGroups(project, UPLOAD_PRESENTATION, Phase.Assessment);
         // distribute teacher tasks
-        taskDAO.persistTeacherTask(project, TaskName.WAIT_FOR_UPLOADS_OR_FF, Phase.Assessment);
+        taskDAO.persistTeacherTask(project, TaskName.WAIT_FOR_UPLOAD, Phase.Assessment);
 
     }
 
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 6dda7bec2d7ae512ca47639ed7420b3e51ec7d94..a139d3a46a520cab6c2bda9ad6bae358704968f4 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java
@@ -1,7 +1,9 @@
 package unipotsdam.gf.process.tasks;
 
 import unipotsdam.gf.interfaces.IGroupFinding;
+import unipotsdam.gf.modules.assessment.AssessmentDAO;
 import unipotsdam.gf.modules.assessment.controller.model.ContributionCategory;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 import unipotsdam.gf.modules.group.Group;
 import unipotsdam.gf.modules.group.GroupDAO;
 import unipotsdam.gf.modules.group.GroupFormationMechanism;
@@ -49,6 +51,9 @@ public class TaskDAO {
     @Inject
     private SubmissionController submissionController;
 
+    @Inject
+    private AssessmentDAO assessmentDAO;
+
     @Inject
     private ConstraintsImpl constraints;
 
@@ -316,11 +321,11 @@ public class TaskDAO {
                 updateForUser(waitingForDossiers);
                 break;
             }
-            case WAIT_FOR_PRESENTATION_AND_FINAL_REPORT_UPLOAD: {
+            case WAIT_FOR_UPLOAD: {
                 Task task = getGeneralTask(vereinfachtesResultSet);
                 task.setHasRenderModel(true);
                 // get Progress from peer assessment
-                //task.setTaskData();
+                task.setTaskData(assessmentDAO.getProgress());
                 result = task;
                 break;
             }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskName.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskName.java
index a184764ad72c9dbd45642353c92f51028c1f1e34..c88e7c07f35c9a44318285c977b5959424745c1a 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskName.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskName.java
@@ -16,9 +16,8 @@ public enum TaskName {
     OPTIONAL_PORTFOLIO_ENTRY, REFLECT_DOSSIER_CREATION, ANSWER_REFLECTION_QUESTIONS, COLLECT_RESULTS_FOR_ASSESSMENT,
 
     // assessment tasks
-    UPLOAD_PRESENTATION, UPLOAD_FINAL_REPORT, WAIT_FOR_PRESENTATION_AND_FINAL_REPORT_UPLOAD,
+    UPLOAD_PRESENTATION, UPLOAD_FINAL_REPORT,
+    WAIT_FOR_UPLOAD,
     GIVE_ASSESSMENT, SEE_ASSESSMENT,
-    END,;
-
-
+    END
 }
diff --git a/gemeinsamforschen/src/main/webapp/assessment/js/assessmentService.js b/gemeinsamforschen/src/main/webapp/assessment/js/assessmentService.js
new file mode 100644
index 0000000000000000000000000000000000000000..7c03e3dc5c8fd8d7e798900cb76370feedb1ae4b
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assessment/js/assessmentService.js
@@ -0,0 +1,5 @@
+function startGrading(project) {
+    window.console.log("starting assessment for project: "+ project);
+    // TODO: send request to backend to start grading
+    alert("helloo");
+}
\ 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 bca01f21ddaa1bc87e91ce680107dd675abdb7e0..c33f527e98e2664cae365679e08695ef72e92512 100644
--- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js
+++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js
@@ -1,14 +1,21 @@
 let object;
 let groupViewLink;
+let projectName;
+let userEmail;
 $(document).ready(function () {
-    let userEmail = $('#userEmail').html().trim();
-    let projectName = $('#projectName').html().trim();
+    userEmail = $('#userEmail').html().trim();
+    projectName = $('#projectName').html().trim();
     groupViewLink = $('#groupView');
     groupViewLink.hide();
     fillTasks(projectName, userEmail);
     groupViewLink.on('click', function () {
         location.href = "../groupfinding/view-groups.jsp?projectName=" + projectName;
     });
+    /**
+     * TODO refactor remove all the inline js and group it like this leading
+     *
+     */
+
 });
 
 function fillTasks(projectName, userEmail) {
@@ -43,31 +50,6 @@ function fillTasks(projectName, userEmail) {
     });
 }
 
-function fitObjectInTmpl(object) {
-    let result = {
-        taskType: "",
-        infoText: "",
-        phase: "",
-        headLine: "",
-        solveTaskWith: "",
-        helpLink: "",
-        timeFrame: "",
-        taskData: object.taskData,
-        taskProgress: object.progress,
-        inCardSolver: "",
-    };
-
-    if (object.taskType !== "INFO") {
-        if (object.groupTask !== 0) {
-            result.taskType = "grouptask"
-        } else {
-            result.taskType = "usertask"
-        }
-    } else {
-        result.taskType = "infotask"
-    }
-}
-
 function handlePhases(object, result) {
     switch (object.phase) {
         case "CourseCreation":
@@ -128,6 +110,10 @@ function handleTaskType(object, result) {
 }
 
 function handleInfoTasks(object, result) {
+
+   /* if (object.hasRenderModel) {
+        result.inCardSolver = object.taskName;
+    }*/
     switch (object.taskName) {
         case "WAIT_FOR_PARTICPANTS":
             result.infoText = waitForParticipantsInfoText(object);
@@ -139,6 +125,9 @@ function handleInfoTasks(object, result) {
                     break;
             }
             break;
+        case "UPLOAD_FINAL_REPORT":
+            result.infoText = "Bitte laden Sie den Abschlussbericht (stellvertretend für ihre Gruppe) hoch!";
+            break;
         case "BUILD_GROUPS":
             result.infoText = "Erstellen Sie die Gruppen.";
             break;
@@ -209,9 +198,6 @@ function handleInfoTasks(object, result) {
         case "UPLOAD_PRESENTATION":
             result.infoText = "Bitte laden Sie die Präsentation (stellvertretend für ihre Gruppe) hoch!";
             break;
-        case "UPLOAD_FINAL_REPORT":
-            result.infoText = "Bitte laden Sie den Abschlussbericht (stellvertretend für ihre Gruppe) hoch!";
-            break;
         default:
             result.infoText = "";
     }
@@ -338,7 +324,7 @@ function handleLinkedTasks(object, result) {
     }
 }
 
-function handleProgress(object, result) {
+function handleFinishedTasks(object, result) {
     if (object.progress === "FINISHED") {
         if (object.taskName === "WAIT_FOR_PARTICPANTS") {
             result.infoText = "Gruppen sind final gespeichert. \n" +
@@ -360,6 +346,10 @@ function handleProgress(object, result) {
         if (object.taskName === "ANNOTATE_DOSSIER" || object.taskName === "UPLOAD_DOSSIER") {
             result.solveTaskWith = "";
             result.solveTaskWithLink = "";
+        }
+        // ev. noch implementieren
+        if (object.taskName === "WAIT_FOR_UPLOAD"){
+
         }
         if (object.taskName.includes("CLOSE")) {
             result.infoText = object.phase;
@@ -385,14 +375,14 @@ function fitObjectInTmpl(object) {
         timeFrame: "",
         taskData: object.taskData,
         taskProgress: object.progress,
-        inCardSolver: "",
+        inCardSolver: object.taskName,
     };
     handleTaskType(object, result);
     handlePhases(object, result);
     handleDeadlines(object, result);
     handleInfoTasks(object, result);
     handleLinkedTasks(object, result);
-    handleProgress(object, result);
+    handleFinishedTasks(object, result);
 
     return result;
 }
diff --git a/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp b/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp
index 19a9a3c7bb537726f2ce36eece6edf68100326ee..ce3a8e73f47121cc6a81d90da1391f74a0ae024c 100644
--- a/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp
@@ -8,6 +8,7 @@
         <jsp:param name="hierarchy" value="1"/>
     </jsp:include>
     <script src="js/inCardSolverHTML.js"></script>
+    <script src="../assessment/js/assessmentService.js"></script>
     <script src="js/tasks.js"></script>
 </head>
 <body>
@@ -24,9 +25,8 @@
             <div id="listOfTasks">
 
             </div>
-
+             <!-- -->
              <script id="taskTemplate" type="text/x-jQuery-tmpl">
-
                   <h3 class="phase-heading ${phase} ">${phase}</h3>
                    <div class="card ${phase}">
                        <div class="col span_s_of_2 icon ${taskType}"> </div>
@@ -56,6 +56,20 @@
                                     <button onClick='resizeGroup();'>speichern</button>
                                 </div>
                                 {{/if}}
+                                {{if inCardSolver=="WAIT_FOR_UPLOAD"}}
+                                    <div class="inCardSolver">
+                                       {{if taskData.numberOfGroupsWithoutPresentation > 0 }}
+                                        Es haben noch ${taskData.numberOfGroupsWithoutPresentation} Gruppen keine Präsentation hochgeladen.
+                                       {{/if}}
+                                        {{if taskData.numberOfGroupsWithoutExternalAssessment > 0 }}
+                                        ${taskData.numberOfGroupsWithoutExternalAssessment} Gruppen haben keine Bewertung durch Peers bekommen.
+                                        {{/if}}
+                                        {{if taskData.numberOfStudentsWithoutInternalAsssessment > 0 }}
+                                        ${taskData.numberOfStudentsWithoutInternalAsssessment} Studierende haben noch keine Bewertung der Gruppe bekommen.
+                                        {{/if}}
+                                        <button id='startGradingButton' onClick="startGrading(getProjectName());">Bewertung abschließen</button>
+                                    </div>
+                                {{/if}}
                            {{/if}}
                            {{if helpLink}}
                                <div style="width:100%"><a href='${helpLink}'>Hier</a> bekommst du Hilfe.</div>
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
index 71f82f4f520b1bea1216eb9517cc54e72ec5c000..0cdbb30925880329b543917ba0fe6e0aa6b4d274 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
@@ -182,7 +182,7 @@ public class TestAddAssessment {
     public void quickstartAssessmentPhase() {
 
 
-        Project project = new Project("assessmenttest");
+        Project project = new Project("assessmenttest2");
         List<Group> groups = groupFinding.getGroups(project);
         assertFalse(groups.isEmpty());
 
diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql
index 3e27d1bbb4d68a5f0b0568bdb89555a5bfb54523..7bdc82b2501c09e532806342219eb22707ae1246 100644
--- a/gemeinsamforschen/src/test/resources/database/fltrail.sql
+++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql
@@ -219,8 +219,9 @@ CREATE TABLE `journals`
 
 CREATE TABLE `largefilestorage`
 (
-    `id`           int(11)      NOT NULL,
-    `userEmail`    varchar(255) NOT NULL,
+    `id`           int(11) NOT NULL,
+    `groupId`      int(11),
+    `userEmail`    varchar(255),
     `projectName`  varchar(100) NOT NULL,
     `filelocation` varchar(100) NOT NULL,
     `filerole`     varchar(100) NOT NULL,