Skip to content
Snippets Groups Projects
Commit 55234f8c authored by Axel's avatar Axel
Browse files

deleted orig-files.

parent 56d37665
No related branches found
No related tags found
No related merge requests found
Showing
with 15 additions and 1181 deletions
package unipotsdam.gf.core.management;
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;
<<<<<<< HEAD
=======
import unipotsdam.gf.core.states.ProjectPhase;
import unipotsdam.gf.modules.assessment.controller.model.Quiz;
>>>>>>> origin/session_management
import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
import javax.annotation.ManagedBean;
import javax.annotation.Resource;
import javax.inject.Singleton;
import java.sql.Timestamp;
import java.util.ArrayList;
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
}
// TODO: naming convention discussion? all is named create, but group is named createGroup
@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());
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
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 rocketChatId = vereinfachtesResultSet.getString("rocketChatId");
String rocketChatAuthToken = vereinfachtesResultSet.getString("rocketChatAuthToken");
Boolean isStudent = vereinfachtesResultSet.getBoolean("isStudent");
return new User(name, password, email, 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");
return new Project(id, password, active, timestamp, author, adminPassword, token);
}
private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
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);
}
@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
=======
/**
* 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/session_management
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) {
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 createGroup(Group group, String projectId) {
MysqlConnect connect = new MysqlConnect();
connect.connect();
Project project = getProjectById(projectId);
for (User groupMember : group.getMembers()) {
String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), project.getId());
}
connect.close();
}
@Override
public void addGroupMember(User groupMember, int groupId) {
}
@Override
public void deleteGroupMember(User groupMember, int groupId) {
}
@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" +
"where g.projectId = ?";
VereinfachtesResultSet vereinfachtesResultSet =
connect.issueSelectStatement(mysqlRequest, projectId);
ArrayList<Group> groups = new ArrayList<>();
while (vereinfachtesResultSet.next()) {
//groups.add()
}
if (groups.isEmpty()) {
return null;
} else {
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);
}
}
package unipotsdam.gf.interfaces;
import unipotsdam.gf.assignments.NotImplementedLogger;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.*;
import java.util.ArrayList;
import java.util.List;
/**
* Created by dehne on 18.05.2018.
*/
public interface IPeerAssessment {
/**
* student and performance are written to DB
*
* @param assessment
*/
void addAssessmentDataToDB(Assessment assessment);
Quiz getQuiz(String projectId, String groupId, String author);
/**
* will return a saved assessment from the DB
*
* @param student
* @return Assessement = studentIdentifier , performance
*/
Assessment getAssessmentDataFromDB(StudentIdentifier student);
/**
* writes a quiz-question into the DB so other students can benefit from another's insights.
*
* @param studentAndQuiz
*/
void createQuiz(StudentAndQuiz studentAndQuiz) ;
/**
* calculate grades for everyone in a list.
* either it will be overwritten by choice of co- or peer-assessment or it gets a parameter which specifies it.
*
*
* @param totalPerformance @return
*/
List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance); // calculates marks for every performance and writes it to an array
/**
*
* @param studentIdentifier
* @return
*/
ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier);
/**
* calculates the mean value of all assessments in a project.
*
* @param ProjectId
* @return
*/
int meanOfAssessment(String ProjectId);
/**
* returns all quizzes in a project
*
* @param projectId
* @return all quizzes in projectId
*/
ArrayList<Quiz> getQuiz(String projectId);
/**
* writes the peerRatings into db
*
* @param peerRatings
* @param projectId
* @param groupId
*/
void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId);
<<<<<<< HEAD
void deleteQuiz(String quizId);
=======
/**
*
* @param studentAndQuiz
* @param quizAnswer
*/
void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer);
>>>>>>> origin/session_management
}
......@@ -6,7 +6,7 @@ import java.util.Map;
public class PeerRating {
private String fromPeer;
private String toPeer;
private Map<String, Integer> workRating;
private Map workRating;
@Override
public String toString() {
......@@ -36,15 +36,15 @@ public class PeerRating {
this.toPeer = toPeer;
}
public Map<String, Integer> getWorkRating() {
public Map getWorkRating() {
return workRating;
}
public void setWorkRating(Map<String, Integer> workRating) {
public void setWorkRating(Map<String, Number> workRating) {
this.workRating = workRating;
}
public PeerRating(String fromPeer, String toPeer, Map<String, Integer> workRating) {
public PeerRating(String fromPeer, String toPeer, Map<String, Number> workRating) {
this.fromPeer = fromPeer;
this.toPeer = toPeer;
this.workRating = workRating;
......
package unipotsdam.gf.modules.assessment.controller.service;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.*;
import java.util.ArrayList;
import java.util.List;
/**
* Created by dehne on 18.05.2018.
*/
public class FBAssessement extends AssessmentDAO {
@Override
public void addAssessmentDataToDB(Assessment assessment) {
// write it to db
}
@Override
public Quiz getQuiz(String projectId, String groupId, String author) {
return null;
}
@Override
public void createQuiz(StudentAndQuiz studentAndQuiz) {
}
@Override
public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
return null;
}
@Override
public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
return null;
}
public void createQuiz(StudentIdentifier student, String question, String[] answers){ //writes a new question into the DB
}
public boolean permission(int feedbackCount){
return true;
}
@Override
public int meanOfAssessment(String projectId) {
return 0;
}
@Override
public ArrayList<Quiz> getQuiz(String projectId) {
return null;
}
@Override
public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
}
@Override
<<<<<<< HEAD
public void deleteQuiz(String quizId) {
=======
public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
>>>>>>> origin/session_management
}
}
......@@ -202,7 +202,7 @@ public class PeerAssessment implements IPeerAssessment {
public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) {
for (PeerRating peer: peerRatings){
StudentIdentifier student = new StudentIdentifier(projectId, peer.getToPeer());
new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating());
//new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating());
}
}
......
package unipotsdam.gf.modules.assessment.controller.service;
<<<<<<< HEAD
=======
import unipotsdam.gf.core.management.ManagementImpl;
>>>>>>> origin/session_management
import unipotsdam.gf.interfaces.IPeerAssessment;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PeerAssessment implements IPeerAssessment {
@Override
public void addAssessmentDataToDB(Assessment assessment) {
}
@Override//returns one quiz
public Quiz getQuiz(String projectId, String quizId, String author) {
return new QuizDBCommunication().getQuizByProjectQuizId(projectId, quizId, author);
}
@Override //returns all quizzes in the course
public ArrayList<Quiz> getQuiz(String projectId) {
return new QuizDBCommunication().getQuizByProjectId(projectId);
}
@Override
public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
return new AssessmentDBCommunication().getAssessment(student);
}
@Override
public void createQuiz(StudentAndQuiz studentAndQuiz) {
new QuizDBCommunication().createQuiz(studentAndQuiz.getQuiz(),studentAndQuiz.getStudentIdentifier().getStudentId(), studentAndQuiz.getStudentIdentifier().getProjectId());
}
@Override
public void deleteQuiz(String quizId) {
new QuizDBCommunication().deleteQuiz(quizId);
}
@Override
public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
List<Grading> quizMean = meanOfQuizzes(totalPerformance);
List<Grading> workRateMean = meanOfWorkRate(totalPerformance);
Grading[] grading = new Grading[totalPerformance.size()];
for (int i=0; i<quizMean.size(); i++){
double grade = quizMean.get(i).getGrade() * workRateMean.get(i).getGrade();
grading[i] = new Grading(totalPerformance.get(i).getStudentIdentifier(), grade);
}
return Arrays.asList(grading);
}
private List<Grading> meanOfQuizzes(ArrayList<Performance> totalPerformance){
double[] allAssessments = new double[totalPerformance.size()];
Grading[] grading = new Grading[totalPerformance.size()];
for (int i = 0; i < totalPerformance.size(); i++) {
for (int j = 0; j < totalPerformance.get(i).getQuizAnswer().length; j++) {
allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
}
allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getQuizAnswer().length;
}
for (int i = 0; i < totalPerformance.size(); i++) {
Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
grading[i] = shuttle;
}
return Arrays.asList(grading);
}
private List<Grading> meanOfWorkRate(ArrayList<Performance> totalPerformance){
double[] allAssessments = new double[totalPerformance.size()];
Grading[] grading = new Grading[totalPerformance.size()];
for (int i = 0; i < totalPerformance.size(); i++) {
for (int j = 0; j < totalPerformance.get(i).getWorkRating().length; j++) {
allAssessments[i] += 6-totalPerformance.get(i).getWorkRating()[j];
}
allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getWorkRating().length;
}
for (int i = 0; i < totalPerformance.size(); i++) {
Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
grading[i] = shuttle;
}
return Arrays.asList(grading);
}
@Override
public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
return null;
}
@Override
public int meanOfAssessment(String ProjectId) {
return 0;
}
@Override
public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
}
@Override
public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
}
}
package unipotsdam.gf.modules.assessment.controller.service;
import unipotsdam.gf.assignments.Assignee;
import unipotsdam.gf.assignments.NotImplementedLogger;
import unipotsdam.gf.interfaces.IPeerAssessment;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PeerAssessmentDummy implements IPeerAssessment {
@Override
public void addAssessmentDataToDB(Assessment assessment) {
}
@Override
public Quiz getQuiz(String projectId, String quizId, String author) {
ArrayList<String> correctAnswers = new ArrayList<String>();
ArrayList<String> incorrectAnswers = new ArrayList<String>();
Quiz sampleQuiz;
if (quizId.equals("2")) {
correctAnswers.add("42");
correctAnswers.add("" + projectId + " " + quizId);
incorrectAnswers.add("a god created creature");
incorrectAnswers.add( "a sum of my mistakes");
sampleQuiz = new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers);
} else {
correctAnswers.add("ja, nicht?!");
correctAnswers.add("nee, oder doch?!");
incorrectAnswers.add("Mephistopheles");
incorrectAnswers.add("Der alte Hexenmeister!?");
incorrectAnswers.add("Der Schimmelreiter");
incorrectAnswers.add("alle beide");
sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers);
}
return sampleQuiz;
}
public ArrayList<Quiz> getQuiz(String projectId) {
ArrayList<String> correctAnswers = new ArrayList<String>();
ArrayList<String> incorrectAnswers = new ArrayList<String>();
ArrayList<Quiz> sampleQuiz = new ArrayList<Quiz>();
correctAnswers.add("42");
correctAnswers.add("" + projectId + " 24");
incorrectAnswers.add("a god created creature");
incorrectAnswers.add( "a sum of my mistakes");
sampleQuiz.add(new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers));
correctAnswers.clear();
incorrectAnswers.clear();
correctAnswers.add("ja, nicht?!");
correctAnswers.add("nee, oder doch?!");
incorrectAnswers.add("Mephistopheles");
incorrectAnswers.add("Der alte Hexenmeister!?");
incorrectAnswers.add("Der Schimmelreiter");
incorrectAnswers.add("alle beide");
sampleQuiz.add(new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers));
return sampleQuiz;
}
@Override
public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive
}
@Override
<<<<<<< HEAD
public void deleteQuiz(String quizId) {
=======
public void answerQuiz(StudentAndQuiz studentAndQuiz, QuizAnswer quizAnswer) {
NotImplementedLogger.logAssignment(Assignee.AXEL, IPeerAssessment.class);
>>>>>>> origin/session_management
}
@Override
public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
int[] quizAnswer = {1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1};
int[] workRating = {1, 5, 3, 4, 1, 5, 5};
Performance performance = new Performance(student, quizAnswer, "what a nice guy", workRating);
Assessment assessment = new Assessment(student, performance);
return assessment;
}
@Override
public void createQuiz(StudentAndQuiz studentAndQuiz) {
NotImplementedLogger.logAssignment(Assignee.AXEL, PeerAssessmentDummy.class);
}
@Override
public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
double[] allAssessments = new double[totalPerformance.size()];
Grading[] grading = new Grading[totalPerformance.size()];
for (int i = 0; i < totalPerformance.size(); i++) {
for (int j = totalPerformance.get(i).getQuizAnswer().length; j > 0; j--) {
allAssessments[i] += totalPerformance.get(i).getQuizAnswer()[j];
}
allAssessments[i] = allAssessments[i] / totalPerformance.get(i).getQuizAnswer().length;
}
for (int i = 0; i < totalPerformance.size(); i++) {
Grading shuttle = new Grading(totalPerformance.get(i).getStudentIdentifier(), allAssessments[i]);
grading[i] = shuttle;
}
return Arrays.asList(grading);
}
@Override
public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
StudentIdentifier[] students = new StudentIdentifier[2];
StudentIdentifier student1 = new StudentIdentifier("gemeinsamForschen", "Haralf");
StudentIdentifier student2 = new StudentIdentifier("gemeinsamForschen", "Regine");
ArrayList<Performance> performances = new ArrayList<Performance>();
int[] quiz = {1, 0, 1, 0, 0, 0, 1};
int[] quiz2 = {0, 1, 0, 1, 1, 1, 0};
int[] work = {5, 4, 3, 2, 1};
int[] work2 = {1, 2, 3, 4, 5};
Performance performance = new Performance(student1, quiz, "toller dude", work);
performances.add(performance);
performance = new Performance(student2, quiz2, "tolle dudine", work2);
performances.add(performance);
return performances;
}
@Override
public int meanOfAssessment(String ProjectId) {
return 0;
}
}
package unipotsdam.gf.modules.assessment.controller.view;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.util.JSONPObject;
import org.glassfish.jersey.server.JSONP;
import unipotsdam.gf.interfaces.IPeerAssessment;
import unipotsdam.gf.modules.assessment.QuizAnswer;
import unipotsdam.gf.modules.assessment.controller.model.*;
import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
import java.lang.reflect.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.io.IOException;
......@@ -21,15 +17,16 @@ import java.util.Map;
@Path("/assessments")
public class QuizView {
//private static IPeerAssessment peer = new PeerAssessmentDummy(); //TestSubject
private static IPeerAssessment peer = new PeerAssessment(); //correct DB-conn and stuff
private static IPeerAssessment peer = new PeerAssessment(); //correct DB-conn and stuff
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/project/{projectId}/quiz/{quizId}/author/{author}")
public Quiz getQuiz(@PathParam("projectId") String projectId, @PathParam("quizId") String quizId, @PathParam("author") String author) {
try{
String question=java.net.URLDecoder.decode(quizId,"UTF-8");
try {
String question = java.net.URLDecoder.decode(quizId, "UTF-8");
return peer.getQuiz(projectId, question, author);
}catch(UnsupportedEncodingException e){
} catch (UnsupportedEncodingException e) {
throw new AssertionError("UTF-8 is unknown");
}
} ///////////////////////////////funktioniert//////////////////////////////////
......@@ -60,7 +57,7 @@ public class QuizView {
try {
String question = java.net.URLDecoder.decode(quizId, "UTF-8");
peer.deleteQuiz(question);
}catch(UnsupportedEncodingException e){
} catch (UnsupportedEncodingException e) {
throw new AssertionError("UTF-8 is unknown");
}
}
......@@ -73,14 +70,14 @@ public class QuizView {
peer.addAssessmentDataToDB(assessment);
}
private Assessment getAssessmentDataFromDB(StudentIdentifier student){
private Assessment getAssessmentDataFromDB(StudentIdentifier student) {
return peer.getAssessmentDataFromDB(student);
}
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/get/project/{projectId}/student/{studentId}")
public Assessment getAssessmentDataFromDB(@PathParam("projectId") String projectId,@PathParam("studentId") String studentId){
public Assessment getAssessmentDataFromDB(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId) {
StudentIdentifier student = new StudentIdentifier(projectId, studentId);
return getAssessmentDataFromDB(student);
} //////////dummy//////////////funktioniert wie geplant//////////////////////////////////
......@@ -123,7 +120,7 @@ public class QuizView {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/total/project/{projectId}/student/{student}")
public ArrayList<Performance> getTotalAssessment(@PathParam("projectId") String ProjectId,@PathParam("student") String student){
public ArrayList<Performance> getTotalAssessment(@PathParam("projectId") String ProjectId, @PathParam("student") String student) {
StudentIdentifier studentIdentifier = new StudentIdentifier(ProjectId, student);
return getTotalAssessment(studentIdentifier);
} //////////dummy/////////////funktioniert wie geplant//////////////////////////////////
......@@ -133,13 +130,12 @@ public class QuizView {
} /////////dummy/////////////funktioniert wie geplant//////////////////////////////////
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/dummy/totalperformance")
public List<Performance> getTotalAssessment() {
List<Performance> result = new ArrayList<>();
StudentIdentifier student = new StudentIdentifier("projekt","student");
StudentIdentifier student = new StudentIdentifier("projekt", "student");
List<Integer> quiz = new ArrayList<>();
quiz.add(1);
quiz.add(0);
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>fltrail</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/styles.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<h1>Übersicht für Dozent1</h1>
<a href="#"><span class="glyphicon glyphicon-envelope"
style="font-size:27px;margin-top:-17px;margin-left:600px;"></span></a>
<a href="#"><span class="glyphicon glyphicon-cog" style="font-size:29px;margin-left:5px;margin-top:-25px;"></span></a>
<div>
<table id="projects"> <!-- getElementById('projects').append um neue Projekte anzufügen -->
<tr style="cursor:pointer" role="button">
<td>
<<<<<<< HEAD
<a id="project1Link">
=======
<a href="project-docent.jsp">
>>>>>>> 9bbae0ff75b2597ab35479a24d47c12e7a4cc0fd
<h1>dummy Projekt1</h1>
</a>
</td>
</tr>
<tr>
<td>
<div style="width:100px;"></div>
<div style="width:741px;">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Newsfeed </h3>
</div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
</li>
<li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
<li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
</ul>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr style="cursor:pointer" role="button">
<td>
<a href="project-docent.jsp">
<h1>dummy Projekt2</h1>
</a>
</td>
</tr>
<tr>
<td>
<div style="width:100px;"></div>
<div style="width:741px;">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Newsfeed </h3>
</div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
</li>
<li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
<li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
</ul>
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
<button class="btn btn-default" type="button" style="margin-left:250px;">Projekt erstellen</button>
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>fltrail</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/styles.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="../assets/js/utility.js"></script>
<script src="../assets/js/overview-student.js"></script>
</head>
<body>
<h1>Übersicht für Student1</h1>
<a href="#"><span class="glyphicon glyphicon-envelope"
style="font-size:27px;margin-top:-17px;margin-left:600px;"></span></a>
<a href="#"><span class="glyphicon glyphicon-cog" style="font-size:29px;margin-left:5px;margin-top:-25px;"></span></a>
<div>
<table id="projects"> <!-- getElementById('projects').append um neue Projekte anzufügen -->
<tr style="cursor:pointer" role="button">
<td>
<<<<<<< HEAD
<a id="project1Link">
=======
<a href="project-docent.jsp">
>>>>>>> 9bbae0ff75b2597ab35479a24d47c12e7a4cc0fd
<h1>dummy Projekt1</h1>
</a>
</td>
</tr>
<tr>
<td>
<div style="width:100px;"></div>
<div style="width:741px;">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Newsfeed </h3>
</div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
</li>
<li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
<li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
</ul>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr style="cursor:pointer" role="button">
<td>
<a href="project-docent.jsp">
<h1>dummy Projekt2</h1>
</a>
</td>
</tr>
<tr>
<td>
<div style="width:100px;"></div>
<div style="width:741px;">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Newsfeed </h3>
</div>
<div class="panel-body">
<ul class="list-group">
<li class="list-group-item">
<span>erste Abgabe vom Dozenten zu dd.mm.yyyy gefordert</span>
</li>
<li class="list-group-item"><span>Beitrag von Student1 wurde hochgeladen</span></li>
<li class="list-group-item"><span>Gruppe "gemeinsam forschen" rockt das Haus</span></li>
</ul>
</div>
</div>
</div>
</td>
</tr>
</table>
</div>
</div><button class="btn btn-default" type="button" style="margin-left:250px;">Projekt beitreten</button>
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>
\ No newline at end of file
<<<<<<< HEAD
<%--suppress XmlDuplicatedId --%>
=======
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
>>>>>>> PeerAssessmentAxel
<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>muster-gemeinsam-forschen</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="../assets/css/styles.css">
<link rel="stylesheet" href="../assets/css/footer.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
<link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
<link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
<link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
<<<<<<< HEAD
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
<script src="../assets/js/utility.js"></script>
<script src="../assets/js/project-student.js"></script>
=======
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/js/footer.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../assets/js/Sidebar-Menu.js"></script>
>>>>>>> PeerAssessmentAxel
</head>
<body>
<div id="wrapper">
<menu:menu></menu:menu>
<div class="page-content-wrapper">
<div class="container-fluid">
<h1 id="projectId">Project 1</h1>
</div>
<div align="right" class="dropdown">
<button style= "position: absolute; right: 50px;" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
<i class="glyphicon glyphicon-envelope"></i>
</button>
<ul class="dropdown-menu">
<li><a class="viewfeedback" role="button">Feedback A</a></li>
<li><a class="viewfeedback" role="button">Feedback B</a></li>
<li><a class="viewfeedback" role="button">Feedback C</a></li>
</ul>
<a href="#">
<span class="glyphicon glyphicon-cog" style="font-size:29px;margin-right:30px;margin-top:3px;"></span>
</a>
</div>
<div>
<table>
<tr>
<td id="yourContent">
<h1>Feedbackable Students</h1>
<!-- here will be all the content -->
<table>
<tr>
<td width="100px" valign="top">
<h3>student1</h3>
<img src="../assets/img/1.jpg">
<a href="#">student1@uni.de</a>
<hr>
<ul>
<li><a class="annotationview" role="button">
Projektuebersicht hochgeladen
<i class="far fa-comments"></i>
</a>
</li>
<li><a class="annotationview" role="button">
Blumen ins Hausaufgabenheft geklebt
<i class="far fa-comments"></i>
</a>
</li>
</a>
</ul>
</td>
<td></td>
<td width="100px" valign="top">
<h3>student2</h3>
<img src="../assets/img/2.jpg">
<a href="#">student2@uni.de</a>
<hr>
<ul>
<li><a class="annotationview" role="button">
Blumen an Vegetarier verfuettert
<i class="far fa-comments"></i>
</a></li>
<li><a class="annotationview" role="button">
Literaturverzeichnis hochgeladen
<i class="far fa-comments"></i>
</a></li>
<li><a class="annotationview" role="button">
Die armen Vegetarier
<i class="far fa-comments"></i>
</a></li>
</ul>
</td>
<td></td>
<td width="100px" valign="top">
<h3>student3</h3>
<img src="../assets/img/3.jpg">
<a href="#">student3@uni.de</a>
<hr>
<ul>
<li><a class="annotationview" role="button">
"Viva la Floristika" - Titel hochgeladen
<i class="far fa-comments"></i>
</a>
</li>
</ul>
</td>
</tr>
</table>
<button onclick="goBack()" class="btn btn-secondary">Zurueck</button>
<script>
function goBack() {
window.history.back();
}
</script>
</td>
<td id="chat">
<div class="card">
<div class="card-header">
<h6 class="mb-0">Gruppen+Projekt Chat</h6>
</div>
<div class="card-body">
<ul class="list-group">
<li class="list-group-item">
<div class="media">
<div></div>
<div class="media-body">
<div class="media" style="overflow:visible;">
<div><img src="../assets/img/1.jpg" class="mr-3"
style="width: 25px; height:25px;"></div>
<div class="media-body" style="overflow:visible;">
<div class="row">
<div class="col-md-12">
<p><a href="#">Sara Doe:</a> This guy has been going
100+ MPH on side streets. <br>
<small class="text-muted">August 6, 2016 @ 10:35am
</small>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
<li class="list-group-item">
<div class="media">
<div></div>
<div class="media-body">
<div class="media" style="overflow:visible;">
<div><img src="../assets/img/2.jpg" class="mr-3"
style="width: 25px; height:25px;"></div>
<div class="media-body" style="overflow:visible;">
<div class="row">
<div class="col-md-12">
<p><a href="#">Brennan Prill:</a> This guy has been
going 100+ MPH on side streets. <br>
<small class="text-muted">August 6, 2016 @ 10:35am
</small>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
</ul>
<button class="btn btn-light">
Add Comment
</button>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<footer>
<div class="container">
<div class="progress">
<div class="progress-bar pg-enrollment" role="progressbar" id="progressbar">
</div>
<div>
Assessment - Präsentationsphase - Dossier - Reflexionsphase - Feedbackphase - Gruppenbildung - Kursanmeldung
</div>
<div class="progress-bar pg-rest" role="progressbar">
</div>
</div>
<button id="nextPhase" class="btn btn-light">nächste Phase</button>
</div>
</footer>
</div>
</body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment