diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java index 3c238f6be74199530d2e17a37d65ce7244858bab..17049249f83b82a452f31e805723a65bf11f7678 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/Management.java @@ -37,6 +37,13 @@ public interface Management { */ void create(Project project); + /** + * create a Group in the database + * + * @param group + */ + void create(Group group); + /** * Delete a Project in the database * @@ -114,8 +121,6 @@ public interface Management { */ Project getProjectById(String id); - void createGroup(Group group, String projectId); - void addGroupMember(User groupMember, int groupId); void deleteGroupMember(User groupMember, int groupId); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java index e644878dcdff5f89c64804e3974f9b3d2e91d477..7c092f2dc99544124568e49e2d27ec205cb27131 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -21,6 +21,8 @@ import java.io.FileInputStream; import java.sql.Blob; import java.sql.Timestamp; import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.UUID; @@ -56,7 +58,6 @@ public class ManagementImpl implements Management { // TODO implmement UserProfile @Mar } - // TODO: naming convention discussion? all is named create, but group is named createGroup @Override public void create(Project project) { UUID uuid = UUID.randomUUID(); @@ -80,6 +81,9 @@ public class ManagementImpl implements Management { connect.connect(); String mysqlRequest = "DELETE FROM projects where id = (?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId()); + + // TODO: delete all groups of project? + connect.close(); } @@ -96,8 +100,11 @@ public class ManagementImpl implements Management { public void update(User user) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?, `rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; + String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," + + "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; //TODO: maybe add handling if a line is actually updated + //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user + connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail()); connect.close(); @@ -160,10 +167,11 @@ public class ManagementImpl implements Management { String name = vereinfachtesResultSet.getString("name"); String password = vereinfachtesResultSet.getString("password"); String email = vereinfachtesResultSet.getString("email"); + String token = vereinfachtesResultSet.getString("token"); String rocketChatId = vereinfachtesResultSet.getString("rocketChatId"); String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken"); Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent"); - return new User(name, password, email, rocketChatId, rocketChatAuthToken, isStudent); + return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent); } private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { @@ -181,12 +189,18 @@ public class ManagementImpl implements Management { return project; } - private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { int id = vereinfachtesResultSet.getInt("id"); - String projectId = vereinfachtesResultSet.getString("projectId"); - String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); - // TODO: determine how to get all User - return new Group(id, new ArrayList<>(), projectId, chatRoomId); + if (existingGroups.containsKey(id)) { + existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet)); + } else { + String projectId = vereinfachtesResultSet.getString("projectId"); + User user = getUserFromResultSet(vereinfachtesResultSet); + String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); + ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); + Group group = new Group(userList, projectId, chatRoomId); + existingGroups.put(id, group); + } } @Override @@ -219,7 +233,7 @@ public class ManagementImpl implements Management { /** * - * @param field + * * @param value * @return */ @@ -261,56 +275,57 @@ public class ManagementImpl implements Management { } } - @Override - public void createGroup(Group group, String projectId) { + public void create(Group group) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - Project project = getProjectById(projectId); + String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId()); for (User groupMember : group.getMembers()) { String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)"; - connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), project.getId()); + connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId()); } connect.close(); } @Override public void addGroupMember(User groupMember, int groupId) { - + // TODO: implement } @Override public void deleteGroupMember(User groupMember, int groupId) { - + // TODO: implement } @Override public List<Group> getGroupsByProjectId(String projectId) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - // TODO: implement correct join and finish implementation String mysqlRequest = "SELECT * FROM groups g " + - "JOIN groupuser gu u ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + + "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + "where g.projectId = ?"; VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(mysqlRequest, projectId); - ArrayList<Group> groups = new ArrayList<>(); + HashMap<Integer, Group> groupHashMap = new HashMap<>(); while (vereinfachtesResultSet.next()) { - //groups.add() + fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap); } + ArrayList<Group> groups = new ArrayList<>(); + groupHashMap.forEach((key, group) -> groups.add(group)); if (groups.isEmpty()) { return null; - } else { - return groups; } + + return groups; } @Override public void create(ProjectConfiguration projectConfiguration, Project project) { ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); - projectConfigurationDAO.persistProjectConfiguration(projectConfiguration,project); + projectConfigurationDAO.persistProjectConfiguration(projectConfiguration, project); } @Override diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..5f22f04d171fd5ea57e82985d5517760beb1cd48 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java.orig @@ -0,0 +1,389 @@ +package unipotsdam.gf.core.management; + +import sun.misc.IOUtils; +import unipotsdam.gf.core.database.mysql.MysqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; +import unipotsdam.gf.core.management.group.Group; +import unipotsdam.gf.core.management.project.Project; +import unipotsdam.gf.core.management.project.ProjectConfiguration; +import unipotsdam.gf.core.management.project.ProjectConfigurationDAO; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.core.management.user.UserInterests; +import unipotsdam.gf.core.management.user.UserProfile; +import unipotsdam.gf.core.states.ProjectPhase; +import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; + +import javax.annotation.ManagedBean; +import javax.annotation.Resource; +import javax.inject.Singleton; +import java.io.File; +import java.io.FileInputStream; +import java.sql.Blob; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +/** + * Created by dehne on 31.05.2018. + */ +@ManagedBean +@Resource +@Singleton +public class ManagementImpl implements Management { + @Override + public void delete(StudentIdentifier identifier) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "DELETE FROM users where email = (?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, identifier.getStudentId()); + connect.close(); + } + + @Override + public void create(User user, UserProfile profile) { + UUID uuid = UUID.randomUUID(); + String token = uuid.toString(); + + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "INSERT INTO users (`name`, `password`, `email`, `token`,`isStudent`," + + "`rocketChatId`,`rocketChatAuthToken`) values (?,?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), + token, user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken()); + connect.close(); + + // TODO implmement UserProfile @Mar + } + + @Override + public void create(Project project) { + UUID uuid = UUID.randomUUID(); + String token = uuid.toString(); + + + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = + "INSERT INTO projects (`id`, `password`, `active`, `timecreated`, `author`, " + + "`adminPassword`, `token`, `phase`) values (?,?,?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), project.getPassword(), project.isActive(), + project.getTimecreated(), project.getAuthor(), project.getAdminPassword(), token, project.getPhase() + == null ? ProjectPhase.CourseCreation : project.getPhase()); + connect.close(); + } + + @Override + public void delete(Project project) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "DELETE FROM projects where id = (?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId()); + + // TODO: delete all groups of project? + + connect.close(); + } + + @Override + public void register(User user, Project project, UserInterests interests) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "INSERT INTO projectuser (`projectId`, `userId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, project.getId(), user.getId()); + connect.close(); + } + + @Override + public void update(User user) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "UPDATE `users` SET `name`=?,`password`=?,`email`=?,`token`=?,`isStudent`=?," + + "`rocketChatId`=?,`rocketChatAuthToken`=? WHERE email=? LIMIT 1"; + //TODO: maybe add handling if a line is actually updated + //TODO: if user is updated, it also must update all other tables which includes some information about the user, for example project user + + connect.issueUpdateStatement(mysqlRequest, user.getName(), user.getPassword(), user.getEmail(), + user.getToken(), user.getStudent(), user.getRocketChatId(), user.getRocketChatAuthToken(), user.getEmail()); + connect.close(); + } + + @Override + public Boolean exists(User user) { + Boolean result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where email = ? and password = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); + result = vereinfachtesResultSet.next(); + connect.close(); + return result; + } + + @Override + public Boolean exists(Project project) { + Boolean result; + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword()); + result = vereinfachtesResultSet.next(); + connect.close(); + return result; + } + + @Override + public List<User> getUsers(Project project) { + String query = + "SELECT * FROM users u " + + " JOIN projectuser pu ON u.email=pu.userId" + + " JOIN projects p ON pu.projectId = p.id" + + " WHERE pu.projectId = ?"; + + ArrayList<User> result = new ArrayList<>(); + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + VereinfachtesResultSet vereinfachtesResultSet = connect.issueSelectStatement(query, project.getId()); + while (!vereinfachtesResultSet.isLast()) { + Boolean next = vereinfachtesResultSet.next(); + if (next) { + User user = getUserFromResultSet(vereinfachtesResultSet); + String token = vereinfachtesResultSet.getString("token"); + user.setToken(token); + result.add(user); + } else { + break; + } + } + connect.close(); + return result; + } + + private User getUserFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + String name = vereinfachtesResultSet.getString("name"); + String password = vereinfachtesResultSet.getString("password"); + String email = vereinfachtesResultSet.getString("email"); + String token = vereinfachtesResultSet.getString("token"); + String rocketChatId = vereinfachtesResultSet.getString("rocketChatId"); + String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken"); + Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent"); + return new User(name, password, email, token, rocketChatId, rocketChatAuthToken, isStudent); + } + + private Project getProjectFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) { + String id = vereinfachtesResultSet.getString("id"); + String password = vereinfachtesResultSet.getString("password"); + boolean active = vereinfachtesResultSet.getBoolean("active"); + Timestamp timestamp = vereinfachtesResultSet.getTimestamp("timecreated"); + String author = vereinfachtesResultSet.getString("author"); + String adminPassword = vereinfachtesResultSet.getString("adminpassword"); + String token = vereinfachtesResultSet.getString("token"); + String phase = vereinfachtesResultSet.getString("phase"); +<<<<<<< HEAD + Project project = new Project(id, password, active, timestamp, author, adminPassword, token); + ProjectPhase projectPhase = ProjectPhase.valueOf(phase); + project.setPhase(projectPhase); + return project; +======= + + return new Project(id, password, active, timestamp, author, adminPassword, token, phase); +>>>>>>> origin/#40_dummyProjectCreation + } + + private void fillGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet, HashMap<Integer, Group> existingGroups) { + int id = vereinfachtesResultSet.getInt("id"); + if (existingGroups.containsKey(id)) { + existingGroups.get(id).addMember(getUserFromResultSet(vereinfachtesResultSet)); + } else { + String projectId = vereinfachtesResultSet.getString("projectId"); + User user = getUserFromResultSet(vereinfachtesResultSet); + String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); + ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); + Group group = new Group(userList, projectId, chatRoomId); + existingGroups.put(id, group); + } + } + + @Override + public String getUserToken(User user) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where email = ? and password = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); + boolean next = vereinfachtesResultSet.next(); + if (!next) { + connect.close(); + return null; + } + String token = vereinfachtesResultSet.getString("token"); + connect.close(); + return token; + } + + @Override + public User getUserByToken(String token) { + return getUserByField("token", token); + } + + @Override + public User getUserByEmail(String email) { + return getUserByField("email", email); + } + + + /** +<<<<<<< HEAD + * + * @param field + * @param value + * @return + */ +======= + * TODO @Axel bitte in modules/asessment verschieben + * + * @param projectId + * @param quizId + * @return + */ + public Quiz getQuizByProjectGroupId(String projectId, String quizId) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM quiz where projectId=" + projectId + " , question=" + quizId; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, ""); + boolean next = vereinfachtesResultSet.next(); + String question = ""; + ArrayList<String> correctAnswers = new ArrayList<String>(); + ArrayList<String> incorrectAnswers = new ArrayList<String>(); + String answer = ""; + Boolean correct = false; + String mcType = ""; + while (next) { + mcType = vereinfachtesResultSet.getString("mcType"); + question = vereinfachtesResultSet.getString("question"); + answer = vereinfachtesResultSet.getString("answer"); + correct = vereinfachtesResultSet.getBoolean("correct"); + if (correct) { + correctAnswers.add(answer); + } else { + incorrectAnswers.add(answer); + } + next = vereinfachtesResultSet.next(); + } + Quiz quiz = new Quiz(mcType, question, correctAnswers, incorrectAnswers); + connect.close(); + return quiz; + } + +>>>>>>> origin/#40_dummyProjectCreation + private User getUserByField(String field, String value) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM users where " + field + " = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, value); + boolean next = vereinfachtesResultSet.next(); + if (next) { + User user = getUserFromResultSet(vereinfachtesResultSet); + connect.close(); + return user; + } else { + connect.close(); + return null; + } + } + + @Override + public Project getProjectById(String id) { + if (id == null){ + return null; + } + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM projects where id = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, id); + boolean next = vereinfachtesResultSet.next(); + if (next) { + Project project = getProjectFromResultSet(vereinfachtesResultSet); + connect.close(); + return project; + } else { + connect.close(); + return null; + } + } + + @Override + public void create(Group group) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + + String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId()); + + for (User groupMember : group.getMembers()) { + String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId()); + } + connect.close(); + } + + @Override + public void addGroupMember(User groupMember, int groupId) { + // TODO: implement + } + + @Override + public void deleteGroupMember(User groupMember, int groupId) { + // TODO: implement + } + + @Override + public List<Group> getGroupsByProjectId(String projectId) { + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + String mysqlRequest = "SELECT * FROM groups g " + + "JOIN groupuser gu ON g.id=gu.groupId " + "JOIN users u ON gu.userEmail=u.email" + + "where g.projectId = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + connect.issueSelectStatement(mysqlRequest, projectId); + HashMap<Integer, Group> groupHashMap = new HashMap<>(); + while (vereinfachtesResultSet.next()) { + fillGroupFromResultSet(vereinfachtesResultSet, groupHashMap); + } + ArrayList<Group> groups = new ArrayList<>(); + groupHashMap.forEach((key, group) -> groups.add(group)); + if (groups.isEmpty()) { + return null; + } + + return groups; + } + + @Override + public void create(ProjectConfiguration projectConfiguration, Project project) { + ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); + projectConfigurationDAO.persistProjectConfiguration(projectConfiguration, project); + } + + @Override + public ProjectConfiguration getProjectConfiguration(Project project) { + ProjectConfigurationDAO projectConfigurationDAO = new ProjectConfigurationDAO(); + return projectConfigurationDAO.loadProjectConfiguration(project); + } + + public String saveProfilePicture(FileInputStream image, String studentId){ + MysqlConnect connect = new MysqlConnect(); + connect.connect(); + Blob blobbedImage= (Blob) image; + String mysqlRequest = "INSERT INTO `profilepicture`(`studentId`, `image`) VALUES (?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, studentId, blobbedImage); + return "success"; + } +} diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java index ea56b43196cd93b3c87518dfa55ab58e2840c8b9..d98a0d85649f9c2fd76ca978c592a6f03b0307ce 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java @@ -2,6 +2,7 @@ package unipotsdam.gf.core.management.group; import unipotsdam.gf.core.management.user.User; +import java.util.ArrayList; import java.util.List; public class Group { @@ -14,10 +15,12 @@ public class Group { public Group() { } + public Group(String projectId) { + this(new ArrayList<>(), projectId); + } + public Group(List<User> members, String projectId) { - this.members = members; - this.projectId = projectId; - this.chatRoomId = ""; + this(members, projectId, ""); } public Group(List<User> members, String projectId, String chatRoomId) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java index b329533304fc335bc6c0ccf69d8d8d577e15ad09..62a7775d984bffd9a5dde30356721feb61793ef7 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java @@ -18,7 +18,7 @@ public class Project { private String author; private String adminPassword; private String token; - // using enum ProjectPhase + // TODO: using enum ProjectPhase private ProjectPhase phase; public Project() { @@ -36,30 +36,19 @@ public class Project { } public ProjectPhase getPhase() { - return phase; - } - - /** - * setting phase only with enum - * @param phase - */ - public void setPhase(ProjectPhase phase) { this.phase = phase; - } - - public Project(String id, String password, Boolean active, String author, String adminPassword, String token) { this.id = id; this.password = password; this.active = active; this.author = author; this.adminPassword = adminPassword; this.token = token; + this.phase = projectPhase.name(); this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); } - public Project(String id, String password, Boolean active, Timestamp timecreated, String author, - String adminPassword, String token) { + public Project(String id, String password, Boolean active, Timestamp timecreated, String author, String adminPassword, String token, String phase) { this.id = id; this.password = password; this.active = active; @@ -67,6 +56,7 @@ public class Project { this.author = author; this.adminPassword = adminPassword; this.token = token; + this.phase = phase; } public String getId() { @@ -117,11 +107,23 @@ public class Project { this.token = token; } - public Timestamp getTimecreated() { return timecreated; } + public String getPhase() { + return phase; + } + + /** + * setting phase only with enum + * + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase.name(); + } + @Override public String toString() { final StringBuilder sb = new StringBuilder("Project{"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig new file mode 100644 index 0000000000000000000000000000000000000000..f64942fbc64dbe3ae6bc6b04b0d2bb291f713961 --- /dev/null +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java.orig @@ -0,0 +1,165 @@ +package unipotsdam.gf.core.management.project; + +import unipotsdam.gf.core.states.ProjectPhase; + +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.ZoneId; + +/** + * Created by dehne on 31.05.2018. + */ +public class Project { + + private String id; + private String password; + private Boolean active; + private Timestamp timecreated; + private String author; + private String adminPassword; + private String token; +<<<<<<< HEAD + // using enum ProjectPhase + private ProjectPhase phase; +======= + // TODO: using enum ProjectPhase + private String phase; +>>>>>>> origin/#40_dummyProjectCreation + + public Project() { + } + + public Project(String id, String password, Boolean active, String author, String adminPassword) { + this.id = id; + this.password = password; + this.active = active; + this.author = author; + this.adminPassword = adminPassword; + this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); + // default starting at course creation if new + this.setPhase(ProjectPhase.CourseCreation); + } + +<<<<<<< HEAD + public ProjectPhase getPhase() { + return phase; + } + + /** + * setting phase only with enum + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase; + } + + public Project(String id, String password, Boolean active, String author, String adminPassword, String token) { +======= + public Project(String id, String password, Boolean active, String author, String adminPassword, String token, ProjectPhase projectPhase) { +>>>>>>> origin/#40_dummyProjectCreation + this.id = id; + this.password = password; + this.active = active; + this.author = author; + this.adminPassword = adminPassword; + this.token = token; + this.phase = projectPhase.name(); + + this.timecreated = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("UTC"))); + } + + public Project(String id, String password, Boolean active, Timestamp timecreated, String author, String adminPassword, String token, String phase) { + this.id = id; + this.password = password; + this.active = active; + this.timecreated = timecreated; + this.author = author; + this.adminPassword = adminPassword; + this.token = token; + this.phase = phase; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Boolean isActive() { + return active; + } + + public void setActive(Boolean active) { + this.active = active; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getAdminPassword() { + return adminPassword; + } + + public void setAdminPassword(String adminPassword) { + this.adminPassword = adminPassword; + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public Timestamp getTimecreated() { + return timecreated; + } + +<<<<<<< HEAD + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("Project{"); + sb.append("id='").append(id).append('\''); + sb.append(", password='").append(password).append('\''); + sb.append(", active=").append(active); + sb.append(", timecreated=").append(timecreated); + sb.append(", author='").append(author).append('\''); + sb.append(", adminPassword='").append(adminPassword).append('\''); + sb.append(", token='").append(token).append('\''); + sb.append(", phase='").append(phase).append('\''); + sb.append('}'); + return sb.toString(); + } +======= + public String getPhase() { + return phase; + } + + /** + * setting phase only with enum + * + * @param phase + */ + public void setPhase(ProjectPhase phase) { + this.phase = phase.name(); + } + + +>>>>>>> origin/#40_dummyProjectCreation +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java index ef9531d231c70944f627ee6afbaeb26ee1eb5ac5..812cbe6c04522a18b5f469bbbf7fe1cc14e1a90f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java @@ -20,20 +20,20 @@ public class User { } public User(String name, String password, String email, Boolean isStudent) { - this.name = name; - this.password = password; - this.email = email; - this.isStudent = isStudent; - this.rocketChatAuthToken = ""; - this.rocketChatId = ""; + this(name, password, email, "", "", isStudent); } public User(String name, String password, String email, String rocketChatId, String rocketChatAuthToken, Boolean isStudent) { + this(name, password, email, "", rocketChatAuthToken, rocketChatId, isStudent); + } + + public User(String name, String password, String email, String token, String rocketChatAuthToken, String rocketChatId, Boolean isStudent) { this.name = name; this.password = password; this.email = email; - this.rocketChatId = rocketChatId; + this.token = token; this.rocketChatAuthToken = rocketChatAuthToken; + this.rocketChatId = rocketChatId; this.isStudent = isStudent; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java index d568fff95a3a5bfd13c4d261ed663a2397c0b580..2a603937709464ce3e5d823c67d8628827c1bf59 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/AssessmentView.java @@ -13,13 +13,12 @@ import java.util.List; import java.util.Map; @Path("/assessments2") -public class AssessmentView implements IPeerAssessment{ +public class AssessmentView{ private static IPeerAssessment peer = new PeerAssessmentDummy(); @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/calculate3") - @Override public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) { return peer.calculateAssessment(totalPerformance); } @@ -55,72 +54,4 @@ public class AssessmentView implements IPeerAssessment{ return null; }*/ - - @Override - public void addAssessmentDataToDB(Assessment assessment) { - } - - @Override - public Quiz getQuiz(String projectId, String groupId, String author) { - return null; - } - - - public Quiz getQuiz(String projectId, String groupId) { - return null; - } - @Override - public Assessment getAssessmentDataFromDB(StudentIdentifier student) { - return null; - } - @Override - public void createQuiz(StudentAndQuiz studentAndQuiz) { - } - @Override - public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) { - return null; - } - - @Override - public int meanOfAssessment(String ProjectId) { - return 0; - } - - - public int meanOfAssessement(String ProjectId) { - return 0; - } - @Override - public ArrayList<Quiz> getQuiz(String projectId) { - return null; - } - - @Override - public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) { - - } - - @Override - public void postContributionRating(StudentIdentifier student, String fromPeer, Map<String, Integer> contributionRating) { - - } - - @Override - public void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student) { - - } - - @Override - public void deleteQuiz(String quizId) { - - } - - @Override - public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) { - return null; - } - - - public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) { - } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java index 5238e9530cee936020be2d577c172fffaba79e7c..09fba126c48b52b04893ac4d08a4f207ffe478a5 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/groupfinding/service/GroupCreationService.java @@ -38,10 +38,8 @@ public class GroupCreationService { management.create(project); } - groups.forEach(group -> management.createGroup(group, project.getId())); - + groups.forEach(group -> management.create(group)); // TODO: read List<Group> of database to get Id for chatRoomName (Should be ProjectName - GroupId) - // TODO: add projectName as DatabaseEntry // TODO: implement sql service injection for, so connection is only done once in app diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql index e578511f6f5df1bf7e62c2c23bcb2a2ec8c01bca..c68466c5976964bcda06d67682119bd561593a50 100644 --- a/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql +++ b/gemeinsamforschen/src/scripts/dbschema/createDummyUser.sql @@ -1,34 +1,26 @@ drop TABLE `users`; -CREATE TABLE `users` ( - `name` varchar(400) NOT NULL, - `password` varchar(200) NOT NULL, - `email` varchar(400) NOT NULL, - `token` varchar(800) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE if not exists `users` ( + `name` varchar(100) NOT NULL, + `password` varchar(200) NOT NULL, + `email` varchar(255) NOT NULL, + `token` varchar(800) NOT NULL, + `rocketChatId` varchar(400) NOT NULL, + `rocketChatAuthToken` varchar(800) NOT NULL, + UNIQUE (email) +)ENGINE = InnoDB DEFAULT CHARSET = utf8; -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent1', 'egal', 'test1@uni.de', 'test1'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent1', 'egal', 'test1@uni.de', 'test1'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test1@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent2', 'egal', 'test2@uni.de', 'test2'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test2@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent3', 'egal', 'test3@uni.de', 'test3'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test3@uni.de', 'test1','1','abc'); -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent4', 'egal', 'test4@uni.de', 'test4'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent5', 'egal', 'test5@uni.de', 'test5'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent6', 'egal', 'test6@uni.de', 'test6'); - -INSERT INTO `users` (`name`, `password`, `email`, `token`) VALUES - ('teststudent7', 'egal', 'test7@uni.de', 'test7'); +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test4@uni.de', 'test1','1','abc'); \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql new file mode 100644 index 0000000000000000000000000000000000000000..3e5d984640d2942ef1754f7c01c6a38af115c7e4 --- /dev/null +++ b/gemeinsamforschen/src/scripts/dbschema/createDummyUsersGroupsProject.sql @@ -0,0 +1,54 @@ +/* + Make sure all tables are created with fltrail.sql + Functions with empty grouptable only (because of autoincrement id of group) + */ + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent1', 'egal', 'test1@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent2', 'egal', 'test2@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent3', 'egal', 'test3@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent4', 'egal', 'test4@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent5', 'egal', 'test5@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent6', 'egal', 'test6@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent7', 'egal', 'test7@uni.de', 'test1','1','abc'); + +INSERT INTO `users` (`name`, `password`, `email`, `token`, `rocketChatId`, `rocketChatAuthToken`) VALUES + ('teststudent8', 'egal', 'test8@uni.de', 'test1','1','abc'); + +INSERT INTO `projects` (`id`, `password`,`active`,`timecreated`,`author`,`adminpassword`,`token`,`phase`) VALUES + ('1','123',1,current_timestamp,'Julian','123','abc','CourseCreation'); + +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test1@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test2@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test3@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test4@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test5@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test6@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test7@uni.de'); +INSERT INTO `projectuser` (`projectId`,`userId`) VALUES ('1','test8@uni.de'); + +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','1'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','2'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','3'); +INSERT INTO groups (projectId, chatRoomId) VALUES ('1','4'); + +INSERT INTO groupuser (userEmail, groupId) VALUES ('test1@uni.de','1'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test2@uni.de','2'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test3@uni.de','3'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test4@uni.de','4'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test5@uni.de','1'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test6@uni.de','2'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test7@uni.de','3'); +INSERT INTO groupuser (userEmail, groupId) VALUES ('test8@uni.de','4'); \ No newline at end of file diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql index 1e6c8d247aeaf038a61c50d910effc7168f1aa4a..7334c920b9272500d574d74d2ccf29d339f0570e 100644 --- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql +++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql @@ -25,42 +25,35 @@ CREATE TABLE `answeredquiz` ( `question` varchar(400) NOT NULL, `correct` tinyint(4) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `contributionrating` ( `groupId` int(11) NOT NULL, `fromPeer` varchar(400) NOT NULL, `dossier` int(11) NOT NULL, `research` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `grades` ( `projectId` varchar(400) NOT NULL, `studentId` varchar(400) NOT NULL, `grade` double NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `groups` ( `id` int(11) NOT NULL, `projectId` varchar(400) NOT NULL, `chatRoomId` varchar(400) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - CREATE TABLE `groupuser` ( `studentId` varchar(400) NOT NULL, `projectId` varchar(400) NOT NULL, `groupId` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - CREATE TABLE `phasesselected` ( `projectId` varchar(100) NOT NULL, `phaseSelected` varchar(200) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `profilepicture` ( `studentId` varchar(200) NOT NULL, `image` longblob NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `projects` ( `id` varchar(400) NOT NULL, `password` varchar(400) NOT NULL, @@ -85,12 +78,10 @@ CREATE TABLE `quiz` ( `answer` varchar(400) NOT NULL, `correct` tinyint(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - CREATE TABLE `tags` ( `projectId` varchar(400) NOT NULL, `tag` varchar(400) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - CREATE TABLE `tasks` ( `userId` varchar(400) NOT NULL, `projectId` varchar(400) NOT NULL, @@ -105,7 +96,10 @@ CREATE TABLE `users` ( `rocketChatId` varchar(400) NOT NULL, `rocketChatAuthToken` varchar(800) NOT NULL, `isStudent` tinyint(1) DEFAULT '1' -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + ON UPDATE CURRENT_TIMESTAMP, +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; CREATE TABLE `workrating` ( `projectId` varchar(400) NOT NULL, @@ -118,7 +112,6 @@ CREATE TABLE `workrating` ( `autonomous` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - ALTER TABLE `annotations` ADD PRIMARY KEY (`id`); diff --git a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig index 0a4cf820cd2c5dae6d31fc8cb069ef2a37005018..503b1b82eada5064c0b20cb238f5b9ee6540cdfc 100644 --- a/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig +++ b/gemeinsamforschen/src/scripts/dbschema/fltrail.sql.orig @@ -1,218 +1,260 @@ -CREATE DATABASE IF NOT EXISTS `fltrail` +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; - DEFAULT CHARACTER SET utf8 +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; - COLLATE utf8_general_ci; +<<<<<<< HEAD +CREATE TABLE `annotations` ( + `id` varchar(120) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `userId` int(11) DEFAULT NULL, + `targetId` int(11) DEFAULT NULL, + `body` varchar(280) DEFAULT NULL, + `startCharacter` int(11) DEFAULT NULL, + `endCharacter` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `answeredquiz` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `question` varchar(400) NOT NULL, + `correct` tinyint(4) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `contributionrating` ( + `groupId` int(11) NOT NULL, + `fromPeer` varchar(400) NOT NULL, + `dossier` int(11) NOT NULL, + `research` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `grades` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `grade` double NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `groups` ( + `id` int(11) NOT NULL, + `projectId` varchar(400) NOT NULL, + `chatRoomId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `groupuser` ( + `studentId` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `groupId` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `phasesselected` ( + `projectId` varchar(100) NOT NULL, + `phaseSelected` varchar(200) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `profilepicture` ( + `studentId` varchar(200) NOT NULL, + `image` longblob NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `projects` ( + `id` varchar(400) NOT NULL, + `password` varchar(400) NOT NULL, + `active` tinyint(1) NOT NULL, + `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `author` varchar(400) NOT NULL, + `adminPassword` varchar(400) NOT NULL, + `token` varchar(400) NOT NULL, + `phase` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `projectuser` ( + `projectId` varchar(400) NOT NULL, + `userId` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `quiz` ( + `studentId` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `question` varchar(400) NOT NULL, + `mcType` varchar(400) NOT NULL, + `answer` varchar(400) NOT NULL, + `correct` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `tags` ( + `projectId` varchar(400) NOT NULL, + `tag` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `tasks` ( + `userId` varchar(400) NOT NULL, + `projectId` varchar(400) NOT NULL, + `taskUrl` varchar(400) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `users` ( + `name` varchar(400) NOT NULL, + `password` varchar(200) NOT NULL, + `email` varchar(255) NOT NULL, + `token` varchar(800) NOT NULL, + `rocketChatId` varchar(400) NOT NULL, + `rocketChatAuthToken` varchar(800) NOT NULL, + `isStudent` tinyint(1) DEFAULT '1' +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `workrating` ( + `projectId` varchar(400) NOT NULL, + `studentId` varchar(400) NOT NULL, + `fromPeer` varchar(400) NOT NULL, + `responsibility` int(11) NOT NULL, + `partOfWork` int(11) NOT NULL, + `cooperation` int(11) NOT NULL, + `communication` int(11) NOT NULL, + `autonomous` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +======= USE `fltrail`; CREATE TABLE if not exists `projects` ( - `id` varchar(100) NOT NULL, - `password` varchar(400) NOT NULL, - `active` tinyint(1) NOT NULL, - `timecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `author` varchar(400) NOT NULL, - `adminPassword` varchar(400) NOT NULL, - `token` varchar(400) NOT NULL, - `phase` varchar(400) NOT NULL -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; +)ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists `groups` ( - `id` int NOT NULL AUTO_INCREMENT, - `projectId` varchar(400) NOT NULL, - `chatRoomId` varchar(400) NOT NULL, - PRIMARY KEY (id) +) ENGINE = InnoDB DEFAULT CHARSET = utf8; -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists groupuser - -( - +CREATE TABLE if not exists groupuser ( userEmail varchar(400) NOT NULL, - groupId int NOT NULL - -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; +) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists `tags` ( - `projectId` varchar(100) NOT NULL, - `tag` varchar(400) NOT NULL - -) - - ENGINE = InnoDB - +) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists `users` ( - `name` varchar(100) NOT NULL, - `password` varchar(200) NOT NULL, - `email` varchar(255) NOT NULL, - `token` varchar(800) NOT NULL, - `rocketChatId` varchar(400) NOT NULL, - `rocketChatAuthToken` varchar(800) NOT NULL, - + `isStudent` TINYINT(1), UNIQUE (email) ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists projectuser - -( - +CREATE TABLE if not exists projectuser ( projectId varchar(100) NOT NULL, - userId varchar(100) NOT NULL - ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; CREATE TABLE if not exists `annotations` ( - `id` varchar(120) NOT NULL, - `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `userToken` varchar(120) DEFAULT NULL, - `targetId` int(11) DEFAULT NULL, - `title` varchar(120) DEFAULT NULL, - `comment` varchar(400) DEFAULT NULL, - `startCharacter` int(11) DEFAULT NULL, - `endCharacter` int(11) DEFAULT NULL, + `id` varchar(120) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_TIMESTAMP, + `userToken` varchar(120) DEFAULT NULL, + `targetId` int(11) DEFAULT NULL, + `title` varchar(120) DEFAULT NULL, + `comment` varchar(400) DEFAULT NULL, + `startCharacter` int(11) DEFAULT NULL, + `endCharacter` int(11) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8; alter table users - add isStudent tinyint(1) default '1' null; -CREATE TABLE if not exists quiz - -( - +CREATE TABLE if not exists quiz ( author varchar(400) NOT NULL, - projectId varchar(400) NOT NULL, - question varchar(400) NOT NULL, - mcType varchar(400) NOT NULL, - answer varchar(400) NOT NULL, - correct tinyint(1) NOT NULL - ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; -CREATE TABLE if not exists tasks - -( - +CREATE TABLE if not exists tasks ( userId varchar(400) NOT NULL, - projectId varchar(400) NOT NULL, - taskUrl varchar(400) NOT NULL ) - ENGINE = InnoDB - DEFAULT CHARSET = utf8; +>>>>>>> origin/#40_dummyProjectCreation +ALTER TABLE `annotations` + ADD PRIMARY KEY (`id`); +<<<<<<< HEAD +ALTER TABLE `groups` + ADD PRIMARY KEY (`id`); + +ALTER TABLE `projectuser` + ADD KEY `projectId` (`projectId`(255),`userId`(255)); + +ALTER TABLE `users` + ADD UNIQUE KEY `email` (`email`); + +======= CREATE TABLE if not exists phasesSelected ( - `projectId` varchar(100) NOT NULL, + `projectId` varchar(100) NOT NULL, phaseSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists categoriesSelected ( - `projectId` varchar(100) NOT NULL, - categorySelected varchar(200) NOT NULL + `projectId` varchar(100) NOT NULL, + categorySelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists groupfindingMechanismSelected ( - `projectId` varchar(100) NOT NULL, - gfmSelected varchar(200) NOT NULL + `projectId` varchar(100) NOT NULL, + gfmSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; CREATE TABLE if not exists assessmentMechanismSelected ( - `projectId` varchar(100) NOT NULL, - amSelected varchar(200) NOT NULL + `projectId` varchar(100) NOT NULL, + amSelected varchar(200) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = utf8; +>>>>>>> origin/#40_dummyProjectCreation -<<<<<<< HEAD - DEFAULT CHARSET = utf8; - -CREATE TABLE if not exists grades - -( - - projectId varchar(400) NOT NULL, - - studentId varchar(400) NOT NULL, - - grade double NOT NULL -) - - ENGINE = InnoDB - - DEFAULT CHARSET = utf8; -======= -ALTER TABLE `projectuser` - ADD INDEX (`projectId`, `userId`); -ALTER TABLE `projectuser` - ADD UNIQUE (`projectId`, `userId`); -ALTER TABLE `projects` - ADD UNIQUE (`id`); ->>>>>>> origin/session_management +ALTER TABLE `groups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +COMMIT; \ No newline at end of file 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 b3bfe14bb933d9858e25bfe183e19448a6a36474..1b13a03bcf124f3a2edb682104bce1e56a19bd7b 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java @@ -6,8 +6,10 @@ import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; import unipotsdam.gf.interfaces.IPeerAssessment; import unipotsdam.gf.modules.assessment.controller.model.*; import unipotsdam.gf.modules.assessment.controller.service.FBAssessement; +import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import static javax.swing.UIManager.getString;