diff --git a/codigos/backend/pom.xml b/codigos/backend/pom.xml
index a035313..badaa75 100644
--- a/codigos/backend/pom.xml
+++ b/codigos/backend/pom.xml
@@ -60,6 +60,11 @@
+
+ org.postgresql
+ postgresql
+ runtime
+
org.hibernate.validator
hibernate-validator
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/SrhApplication.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/SrhApplication.java
new file mode 100644
index 0000000..337ce9e
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/SrhApplication.java
@@ -0,0 +1,13 @@
+package edu.ifes.ci.si.les.srh;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SrhApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SrhApplication.class, args);
+ }
+
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/AdminBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/AdminBuilder.java
new file mode 100644
index 0000000..d1f414c
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/AdminBuilder.java
@@ -0,0 +1,63 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Project;
+import edu.ifes.ci.si.les.srh.model.Admin;
+
+import java.util.List;
+
+public final class AdminBuilder {
+ protected String login;
+ protected String password;
+ private List projects;
+ private Integer id;
+ private String name;
+ private String email;
+
+ private AdminBuilder() {
+ }
+
+ public static AdminBuilder anAdmin() {
+ return new AdminBuilder();
+ }
+
+ public AdminBuilder withProjects(List projects) {
+ this.projects = projects;
+ return this;
+ }
+
+ public AdminBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public AdminBuilder withLogin(String login) {
+ this.login = login;
+ return this;
+ }
+
+ public AdminBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public AdminBuilder withEmail(String email) {
+ this.email = email;
+ return this;
+ }
+
+ public AdminBuilder withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+ public Admin build() {
+ Admin admin = new Admin();
+ admin.setProjects(projects);
+ admin.setId(id);
+ admin.setLogin(login);
+ admin.setName(name);
+ admin.setEmail(email);
+ admin.setPassword(password);
+ return admin;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ApiUserBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ApiUserBuilder.java
new file mode 100644
index 0000000..68ef742
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ApiUserBuilder.java
@@ -0,0 +1,63 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Profile;
+import edu.ifes.ci.si.les.srh.model.ApiUser;
+
+import java.util.List;
+
+public final class ApiUserBuilder {
+ protected String login;
+ protected String password;
+ private List profiles;
+ private Integer id;
+ private String name;
+ private String email;
+
+ private ApiUserBuilder() {
+ }
+
+ public static ApiUserBuilder anApiUser() {
+ return new ApiUserBuilder();
+ }
+
+ public ApiUserBuilder withProfiles(List profiles) {
+ this.profiles = profiles;
+ return this;
+ }
+
+ public ApiUserBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public ApiUserBuilder withLogin(String login) {
+ this.login = login;
+ return this;
+ }
+
+ public ApiUserBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public ApiUserBuilder withEmail(String email) {
+ this.email = email;
+ return this;
+ }
+
+ public ApiUserBuilder withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+ public ApiUser build() {
+ ApiUser apiUser = new ApiUser();
+ apiUser.setProfiles(profiles);
+ apiUser.setId(id);
+ apiUser.setLogin(login);
+ apiUser.setName(name);
+ apiUser.setEmail(email);
+ apiUser.setPassword(password);
+ return apiUser;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/EvaluatorBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/EvaluatorBuilder.java
new file mode 100644
index 0000000..ea85c38
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/EvaluatorBuilder.java
@@ -0,0 +1,79 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import edu.ifes.ci.si.les.srh.model.ItemRating;
+import edu.ifes.ci.si.les.srh.model.Project;
+import edu.ifes.ci.si.les.srh.model.RecommendationRating;
+
+import java.util.List;
+
+public final class EvaluatorBuilder {
+ protected String login;
+ protected String password;
+ private List projects;
+ private List itemRatings;
+ private List recommendationRatings;
+ private Integer id;
+ private String name;
+ private String email;
+
+ private EvaluatorBuilder() {
+ }
+
+ public static EvaluatorBuilder anEvaluator() {
+ return new EvaluatorBuilder();
+ }
+
+ public EvaluatorBuilder withProjects(List projects) {
+ this.projects = projects;
+ return this;
+ }
+
+ public EvaluatorBuilder withItemRatings(List itemRatings) {
+ this.itemRatings = itemRatings;
+ return this;
+ }
+
+ public EvaluatorBuilder withRecommendationRatings(List recommendationRatings) {
+ this.recommendationRatings = recommendationRatings;
+ return this;
+ }
+
+ public EvaluatorBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public EvaluatorBuilder withLogin(String login) {
+ this.login = login;
+ return this;
+ }
+
+ public EvaluatorBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public EvaluatorBuilder withEmail(String email) {
+ this.email = email;
+ return this;
+ }
+
+ public EvaluatorBuilder withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+ public Evaluator build() {
+ Evaluator evaluator = new Evaluator();
+ evaluator.setProjects(projects);
+ evaluator.setItemRatings(itemRatings);
+ evaluator.setRecommendationRatings(recommendationRatings);
+ evaluator.setId(id);
+ evaluator.setLogin(login);
+ evaluator.setName(name);
+ evaluator.setEmail(email);
+ evaluator.setPassword(password);
+ return evaluator;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemBuilder.java
new file mode 100644
index 0000000..2f2bb9f
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemBuilder.java
@@ -0,0 +1,84 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.*;
+
+import java.util.HashMap;
+import java.util.List;
+
+public final class ItemBuilder {
+ private Integer id;
+ private String name;
+ private String description;
+ private HashMap attributes;
+ private List itemRatings;
+ private List recommendations;
+ private Project project;
+ private TypeItem typeItem;
+ private List tags;
+
+ private ItemBuilder() {
+ }
+
+ public static ItemBuilder anItem() {
+ return new ItemBuilder();
+ }
+
+ public ItemBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public ItemBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public ItemBuilder withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ public ItemBuilder withAttributes(HashMap attributes) {
+ this.attributes = attributes;
+ return this;
+ }
+
+ public ItemBuilder withItemRatings(List itemRatings) {
+ this.itemRatings = itemRatings;
+ return this;
+ }
+
+ public ItemBuilder withRecommendations(List recommendations) {
+ this.recommendations = recommendations;
+ return this;
+ }
+
+ public ItemBuilder withProject(Project project) {
+ this.project = project;
+ return this;
+ }
+
+ public ItemBuilder withTypeItem(TypeItem typeItem) {
+ this.typeItem = typeItem;
+ return this;
+ }
+
+ public ItemBuilder withTags(List tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ public Item build() {
+ Item item = new Item();
+ item.setId(id);
+ item.setName(name);
+ item.setDescription(description);
+ item.setAttributes(attributes);
+ item.setItemRatings(itemRatings);
+ item.setRecommendations(recommendations);
+ item.setProject(project);
+ item.setTypeItem(typeItem);
+ item.setTags(tags);
+ return item;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemRatingBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemRatingBuilder.java
new file mode 100644
index 0000000..f8d61fc
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemRatingBuilder.java
@@ -0,0 +1,57 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Item;
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import edu.ifes.ci.si.les.srh.model.ItemRating;
+
+import java.time.LocalDateTime;
+
+public final class ItemRatingBuilder {
+ private Evaluator user;
+ private Item item;
+ private Integer id;
+ private Double score;
+ private LocalDateTime date;
+
+ private ItemRatingBuilder() {
+ }
+
+ public static ItemRatingBuilder anItemRating() {
+ return new ItemRatingBuilder();
+ }
+
+ public ItemRatingBuilder withUser(Evaluator user) {
+ this.user = user;
+ return this;
+ }
+
+ public ItemRatingBuilder withItem(Item item) {
+ this.item = item;
+ return this;
+ }
+
+ public ItemRatingBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public ItemRatingBuilder withScore(Double score) {
+ this.score = score;
+ return this;
+ }
+
+ public ItemRatingBuilder withDate(LocalDateTime date) {
+ this.date = date;
+ return this;
+ }
+
+ public ItemRating build() {
+ ItemRating itemRating = new ItemRating();
+ itemRating.setUser(user);
+ itemRating.setItem(item);
+ itemRating.setId(id);
+ itemRating.setScore(score);
+ itemRating.setDate(date);
+ return itemRating;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemTagBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemTagBuilder.java
new file mode 100644
index 0000000..bdc229b
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ItemTagBuilder.java
@@ -0,0 +1,31 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Item;
+import edu.ifes.ci.si.les.srh.model.ItemTag;
+import edu.ifes.ci.si.les.srh.model.Tag;
+
+public final class ItemTagBuilder {
+ private Item item;
+ private Tag tag;
+
+ private ItemTagBuilder() {
+ }
+
+ public static ItemTagBuilder anItemTag() {
+ return new ItemTagBuilder();
+ }
+
+ public ItemTagBuilder withItem(Item item) {
+ this.item = item;
+ return this;
+ }
+
+ public ItemTagBuilder withTag(Tag tag) {
+ this.tag = tag;
+ return this;
+ }
+
+ public ItemTag build() {
+ return new ItemTag(item, tag);
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProfileBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProfileBuilder.java
new file mode 100644
index 0000000..4a5c582
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProfileBuilder.java
@@ -0,0 +1,42 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.ApiUser;
+import edu.ifes.ci.si.les.srh.model.Profile;
+
+import java.util.List;
+
+public final class ProfileBuilder {
+ private Integer id;
+ private String name;
+ private List apiUsers;
+
+ private ProfileBuilder() {
+ }
+
+ public static ProfileBuilder aProfile() {
+ return new ProfileBuilder();
+ }
+
+ public ProfileBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public ProfileBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public ProfileBuilder withApiUsers(List apiUsers) {
+ this.apiUsers = apiUsers;
+ return this;
+ }
+
+ public Profile build() {
+ Profile profile = new Profile();
+ profile.setId(id);
+ profile.setName(name);
+ profile.setApiUsers(apiUsers);
+ return profile;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProjectBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProjectBuilder.java
new file mode 100644
index 0000000..904454a
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/ProjectBuilder.java
@@ -0,0 +1,84 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.*;
+
+import java.time.LocalDate;
+import java.util.List;
+
+public final class ProjectBuilder {
+ private Integer id;
+ private String name;
+ private String description;
+ private LocalDate date;
+ private Boolean visible;
+ private Situations situation;
+ private Admin admin;
+ private List evaluators;
+ private List- itens;
+
+ private ProjectBuilder() {
+ }
+
+ public static ProjectBuilder aProject() {
+ return new ProjectBuilder();
+ }
+
+ public ProjectBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public ProjectBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public ProjectBuilder withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ public ProjectBuilder withDate(LocalDate date) {
+ this.date = date;
+ return this;
+ }
+
+ public ProjectBuilder withVisible(Boolean visible) {
+ this.visible = visible;
+ return this;
+ }
+
+ public ProjectBuilder withSituation(Situations situation) {
+ this.situation = situation;
+ return this;
+ }
+
+ public ProjectBuilder withAdmin(Admin admin) {
+ this.admin = admin;
+ return this;
+ }
+
+ public ProjectBuilder withEvaluators(List evaluators) {
+ this.evaluators = evaluators;
+ return this;
+ }
+
+ public ProjectBuilder withItens(List
- itens) {
+ this.itens = itens;
+ return this;
+ }
+
+ public Project build() {
+ Project project = new Project();
+ project.setId(id);
+ project.setName(name);
+ project.setDescription(description);
+ project.setDate(date);
+ project.setVisible(visible);
+ project.setSituation(situation);
+ project.setAdmin(admin);
+ project.setEvaluators(evaluators);
+ project.setItens(itens);
+ return project;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationBuilder.java
new file mode 100644
index 0000000..070c7e3
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationBuilder.java
@@ -0,0 +1,77 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public final class RecommendationBuilder {
+ private Integer id;
+ private Double weight;
+ private LocalDateTime date;
+ private Integer runtimeInSeconds;
+ private TypeRecommendation typeRecommendation;
+ private Evaluator evaluator;
+ private Item item;
+ private List recommendationRatings;
+
+ private RecommendationBuilder() {
+ }
+
+ public static RecommendationBuilder aRecommendation() {
+ return new RecommendationBuilder();
+ }
+
+ public RecommendationBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public RecommendationBuilder withWeight(Double weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ public RecommendationBuilder withDate(LocalDateTime date) {
+ this.date = date;
+ return this;
+ }
+
+ public RecommendationBuilder withRuntimeInSeconds(Integer runtimeInSeconds) {
+ this.runtimeInSeconds = runtimeInSeconds;
+ return this;
+ }
+
+ public RecommendationBuilder withTypeRecommendation(TypeRecommendation typeRecommendation) {
+ this.typeRecommendation = typeRecommendation;
+ return this;
+ }
+
+ public RecommendationBuilder withEvaluator(Evaluator evaluator) {
+ this.evaluator = evaluator;
+ return this;
+ }
+
+ public RecommendationBuilder withItem(Item item) {
+ this.item = item;
+ return this;
+ }
+
+ public RecommendationBuilder withRecommendationRatings(List recommendationRatings) {
+ this.recommendationRatings = recommendationRatings;
+ return this;
+ }
+
+ public Recommendation build() {
+ Recommendation recommendation = new Recommendation();
+ recommendation.setId(id);
+ recommendation.setWeight(weight);
+ recommendation.setDate(date);
+ recommendation.setRuntimeInSeconds(runtimeInSeconds);
+ recommendation.setTypeRecommendation(typeRecommendation);
+ recommendation.setEvaluator(evaluator);
+ recommendation.setItem(item);
+ recommendation.setRecommendationRatings(recommendationRatings);
+ return recommendation;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationRatingBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationRatingBuilder.java
new file mode 100644
index 0000000..b4c2a71
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/RecommendationRatingBuilder.java
@@ -0,0 +1,57 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import edu.ifes.ci.si.les.srh.model.Recommendation;
+import edu.ifes.ci.si.les.srh.model.RecommendationRating;
+
+import java.time.LocalDateTime;
+
+public final class RecommendationRatingBuilder {
+ private Recommendation recommendation;
+ private Evaluator evaluator;
+ private Integer id;
+ private Double score;
+ private LocalDateTime date;
+
+ private RecommendationRatingBuilder() {
+ }
+
+ public static RecommendationRatingBuilder aRecommendationRating() {
+ return new RecommendationRatingBuilder();
+ }
+
+ public RecommendationRatingBuilder withRecommendation(Recommendation recommendation) {
+ this.recommendation = recommendation;
+ return this;
+ }
+
+ public RecommendationRatingBuilder withEvaluator(Evaluator evaluator) {
+ this.evaluator = evaluator;
+ return this;
+ }
+
+ public RecommendationRatingBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public RecommendationRatingBuilder withScore(Double score) {
+ this.score = score;
+ return this;
+ }
+
+ public RecommendationRatingBuilder withDate(LocalDateTime date) {
+ this.date = date;
+ return this;
+ }
+
+ public RecommendationRating build() {
+ RecommendationRating recommendationRating = new RecommendationRating();
+ recommendationRating.setRecommendation(recommendation);
+ recommendationRating.setEvaluator(evaluator);
+ recommendationRating.setId(id);
+ recommendationRating.setScore(score);
+ recommendationRating.setDate(date);
+ return recommendationRating;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TagBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TagBuilder.java
new file mode 100644
index 0000000..b03cab6
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TagBuilder.java
@@ -0,0 +1,42 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Item;
+import edu.ifes.ci.si.les.srh.model.Tag;
+
+import java.util.List;
+
+public final class TagBuilder {
+ private Integer id;
+ private String name;
+ private List
- itens;
+
+ private TagBuilder() {
+ }
+
+ public static TagBuilder aTag() {
+ return new TagBuilder();
+ }
+
+ public TagBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public TagBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public TagBuilder withItens(List
- itens) {
+ this.itens = itens;
+ return this;
+ }
+
+ public Tag build() {
+ Tag tag = new Tag();
+ tag.setId(id);
+ tag.setName(name);
+ tag.setItens(itens);
+ return tag;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TypeItemBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TypeItemBuilder.java
new file mode 100644
index 0000000..0719ac3
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/builder/TypeItemBuilder.java
@@ -0,0 +1,50 @@
+package edu.ifes.ci.si.les.srh.builder;
+
+import edu.ifes.ci.si.les.srh.model.Attribute;
+import edu.ifes.ci.si.les.srh.model.Item;
+import edu.ifes.ci.si.les.srh.model.TypeItem;
+
+import java.util.List;
+
+public final class TypeItemBuilder {
+ private Integer id;
+ private String name;
+ private List requiredAttributes;
+ private List
- itens;
+
+ private TypeItemBuilder() {
+ }
+
+ public static TypeItemBuilder aTypeItem() {
+ return new TypeItemBuilder();
+ }
+
+ public TypeItemBuilder withId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public TypeItemBuilder withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public TypeItemBuilder withRequiredAttributes(List requiredAttributes) {
+ this.requiredAttributes = requiredAttributes;
+ return this;
+ }
+
+ public TypeItemBuilder withItens(List
- itens) {
+ this.itens = itens;
+ return this;
+ }
+
+ public TypeItem build() {
+ TypeItem typeItem = new TypeItem();
+ typeItem.setId(id);
+ typeItem.setName(name);
+ typeItem.setRequiredAttributes(requiredAttributes);
+ typeItem.setItens(itens);
+ return typeItem;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/DefaultErrorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/DefaultErrorDto.java
new file mode 100644
index 0000000..a9f6f17
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/DefaultErrorDto.java
@@ -0,0 +1,11 @@
+package edu.ifes.ci.si.les.srh.dto.error;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public class DefaultErrorDto {
+ private final String error;
+ private final String cause;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/FormErrorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/FormErrorDto.java
new file mode 100644
index 0000000..d4a98aa
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/error/FormErrorDto.java
@@ -0,0 +1,11 @@
+package edu.ifes.ci.si.les.srh.dto.error;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public class FormErrorDto {
+ private final String error;
+ private final String field;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminDto.java
new file mode 100644
index 0000000..2c948b6
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminDto.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Admin;
+import lombok.Getter;
+
+@Getter
+public class AdminDto {
+ private final Integer id;
+ private final String name;
+ private final String login;
+ private final String email;
+
+ public AdminDto(Admin admin) {
+ this.id = admin.getId();
+ this.name = admin.getName();
+ this.login = admin.getLogin();
+ this.email = admin.getEmail();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminForm.java
new file mode 100644
index 0000000..59c8e07
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/AdminForm.java
@@ -0,0 +1,44 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.AdminBuilder;
+import edu.ifes.ci.si.les.srh.model.Admin;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class AdminForm {
+ @NotNull
+ @NotEmpty
+ private String name;
+
+ @NotNull
+ @NotEmpty
+ private String login;
+
+ @NotNull
+ @NotEmpty
+ @Length(min = 6)
+ private String password;
+
+ @NotNull
+ @NotEmpty
+ @Email
+ private String email;
+
+ public Admin build() {
+ return AdminBuilder.anAdmin()
+ .withName(name)
+ .withLogin(login)
+ .withEmail(email)
+ .withPassword(password)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUserForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUserForm.java
new file mode 100644
index 0000000..cf13a29
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUserForm.java
@@ -0,0 +1,45 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.ApiUserBuilder;
+import edu.ifes.ci.si.les.srh.model.ApiUser;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ApiUserForm {
+ @NotEmpty
+ @NotNull
+ @Length(min = 3)
+ private String name;
+
+ @NotEmpty
+ @NotNull
+ @Length(min = 3)
+ private String login;
+
+ @NotEmpty
+ @NotNull
+ @Length(min = 6)
+ private String password;
+
+ @NotNull
+ @NotEmpty
+ @Email
+ private String email;
+
+ public ApiUser build() {
+ return ApiUserBuilder.anApiUser()
+ .withLogin(login)
+ .withName(name)
+ .withPassword(password)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUsersDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUsersDto.java
new file mode 100644
index 0000000..738f2aa
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ApiUsersDto.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.ApiUser;
+import lombok.Getter;
+
+@Getter
+public class ApiUsersDto {
+ private final Integer id;
+ private final String name;
+ private final String login;
+ private final boolean isAdmin;
+
+ public ApiUsersDto(ApiUser apiUser) {
+ this.id = apiUser.getId();
+ this.name = apiUser.getName();
+ this.login = apiUser.getLogin();
+ this.isAdmin = apiUser.isAdmin();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorDto.java
new file mode 100644
index 0000000..bc88ec3
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorDto.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import lombok.Getter;
+
+@Getter
+public class EvaluatorDto {
+ private final Integer id;
+ private final String name;
+ private final String login;
+ private final String email;
+
+ public EvaluatorDto(Evaluator evaluator) {
+ this.id = evaluator.getId();
+ this.name = evaluator.getName();
+ this.login = evaluator.getLogin();
+ this.email = evaluator.getEmail();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorForm.java
new file mode 100644
index 0000000..5d13a40
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/EvaluatorForm.java
@@ -0,0 +1,44 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.EvaluatorBuilder;
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class EvaluatorForm {
+ @NotNull
+ @NotEmpty
+ private String name;
+
+ @NotNull
+ @NotEmpty
+ private String login;
+
+ @NotNull
+ @NotEmpty
+ @Length(min = 6)
+ private String password;
+
+ @NotNull
+ @NotEmpty
+ @Email
+ private String email;
+
+ public Evaluator build() {
+ return EvaluatorBuilder.anEvaluator()
+ .withName(name)
+ .withLogin(login)
+ .withPassword(password)
+ .withEmail(email)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemDto.java
new file mode 100644
index 0000000..e70db0a
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemDto.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Item;
+import lombok.Getter;
+import java.util.HashMap;
+
+@Getter
+public class ItemDto {
+ private final Integer id;
+ private final String name;
+ private final String description;
+ private final HashMap attributes;
+
+ public ItemDto(Item item) {
+ this.id = item.getId();
+ this.name = item.getName();
+ this.description = item.getDescription();
+ this.attributes = item.getAttributes();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemForm.java
new file mode 100644
index 0000000..f92c034
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemForm.java
@@ -0,0 +1,37 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.ItemBuilder;
+import edu.ifes.ci.si.les.srh.model.Item;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ItemForm {
+ @NotNull
+ @NotEmpty
+ @Length(min = 3)
+ private String name;
+
+ @NotNull
+ @NotEmpty
+ @Length(min = 3)
+ private String description;
+
+ @NotNull
+ @NotEmpty
+ private String attributes;
+
+ public Item build() {
+ return ItemBuilder.anItem()
+ .withName(name)
+ .withDescription(description)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingDto.java
new file mode 100644
index 0000000..8c6c3a1
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingDto.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.ItemRating;
+import lombok.Getter;
+
+import java.time.LocalDateTime;
+
+@Getter
+public class ItemRatingDto {
+ private final Integer id;
+ private final Double score;
+ private final LocalDateTime date;
+
+ public ItemRatingDto(ItemRating itemRating) {
+ this.id = itemRating.getId();
+ this.score = itemRating.getScore();
+ this.date = itemRating.getDate();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingForm.java
new file mode 100644
index 0000000..d4042b1
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemRatingForm.java
@@ -0,0 +1,43 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.EvaluatorBuilder;
+import edu.ifes.ci.si.les.srh.builder.ItemBuilder;
+import edu.ifes.ci.si.les.srh.builder.ItemRatingBuilder;
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import edu.ifes.ci.si.les.srh.model.Item;
+import edu.ifes.ci.si.les.srh.model.ItemRating;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ItemRatingForm {
+ @NotNull
+ private Double score;
+ @NotNull
+ private Integer evaluatorId;
+ @NotNull
+ private Integer itemId;
+
+ public ItemRating build() {
+ Evaluator evaluator = EvaluatorBuilder.anEvaluator()
+ .withId(evaluatorId)
+ .build();
+
+ Item item = ItemBuilder.anItem()
+ .withId(itemId)
+ .build();
+
+ return ItemRatingBuilder.anItemRating()
+ .withScore(score)
+ .withItem(item)
+ .withUser(evaluator)
+ .withDate(LocalDateTime.now())
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagDto.java
new file mode 100644
index 0000000..a522a08
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagDto.java
@@ -0,0 +1,15 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.ItemTag;
+import lombok.Getter;
+
+@Getter
+public class ItemTagDto {
+ private final Integer itemId;
+ private final Integer tagId;
+
+ public ItemTagDto(ItemTag itemTag) {
+ this.itemId = itemTag.getItem().getId();
+ this.tagId = itemTag.getTag().getId();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagForm.java
new file mode 100644
index 0000000..7b739b1
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ItemTagForm.java
@@ -0,0 +1,17 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ItemTagForm {
+ @NotNull
+ private Integer itemId;
+ @NotNull
+ private Integer tagId;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectDto.java
new file mode 100644
index 0000000..0f43a8c
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectDto.java
@@ -0,0 +1,26 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Project;
+import edu.ifes.ci.si.les.srh.model.Situations;
+import lombok.Getter;
+
+import java.time.LocalDate;
+
+@Getter
+public class ProjectDto {
+ private final Integer id;
+ private final String name;
+ private final String description;
+ private Situations situation;
+ private final LocalDate date;
+ private final Boolean visible;
+
+ public ProjectDto(Project project) {
+ this.id = project.getId();
+ this.name = project.getName();
+ this.description = project.getDescription();
+ this.date = project.getDate();
+ this.situation = project.getSituation();
+ this.visible = project.getVisible();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorDto.java
new file mode 100644
index 0000000..7c4c7c3
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorDto.java
@@ -0,0 +1,15 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.ProjectEvaluator;
+import lombok.Getter;
+
+@Getter
+public class ProjectEvaluatorDto {
+ private final Integer projectId;
+ private final Integer recommenderId;
+
+ public ProjectEvaluatorDto(ProjectEvaluator projectEvaluator) {
+ this.projectId = projectEvaluator.getProject().getId();
+ this.recommenderId = projectEvaluator.getEvaluator().getId();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorForm.java
new file mode 100644
index 0000000..ea7fedd
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectEvaluatorForm.java
@@ -0,0 +1,17 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectEvaluatorForm {
+ @NotNull
+ private Integer projectId;
+ @NotNull
+ private Integer recommenderId;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectForm.java
new file mode 100644
index 0000000..b6b2f7b
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/ProjectForm.java
@@ -0,0 +1,56 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.AdminBuilder;
+import edu.ifes.ci.si.les.srh.builder.ProjectBuilder;
+import edu.ifes.ci.si.les.srh.model.Admin;
+import edu.ifes.ci.si.les.srh.model.Project;
+import edu.ifes.ci.si.les.srh.model.Situations;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ProjectForm {
+
+ @NotEmpty
+ @NotNull
+ @Length(min = 3)
+ private String name;
+
+ @NotEmpty
+ @NotNull
+ @Length(min = 3)
+ private String description;
+
+ @NotNull
+ private Integer adminId;
+
+ @NotNull
+ @NotEmpty
+ private String situation;
+
+ @NotNull
+ private Boolean visible;
+
+ public Project build() {
+ Admin admin = AdminBuilder.anAdmin()
+ .withId(adminId)
+ .build();
+
+ return ProjectBuilder.aProject()
+ .withName(name)
+ .withDescription(description)
+ .withAdmin(admin)
+ .withSituation(Situations.valueOf(situation))
+ .withDate(LocalDate.now())
+ .withVisible(visible)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationDto.java
new file mode 100644
index 0000000..a301ad0
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationDto.java
@@ -0,0 +1,24 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Recommendation;
+import edu.ifes.ci.si.les.srh.model.TypeRecommendation;
+import lombok.Getter;
+
+import java.time.LocalDateTime;
+
+@Getter
+public class RecommendationDto {
+ private final Integer id;
+ private final Double weight;
+ private final LocalDateTime date;
+ private final Integer runtimeInSeconds;
+ private final TypeRecommendation typeRecommendation;
+
+ public RecommendationDto(Recommendation recommendation) {
+ this.id = recommendation.getId();
+ this.weight = recommendation.getWeight();
+ this.date = recommendation.getDate();
+ this.runtimeInSeconds = recommendation.getRuntimeInSeconds();
+ this.typeRecommendation = recommendation.getTypeRecommendation();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingDto.java
new file mode 100644
index 0000000..48b8d5b
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingDto.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+
+import edu.ifes.ci.si.les.srh.model.RecommendationRating;
+import lombok.Getter;
+
+import java.time.LocalDateTime;
+
+@Getter
+public class RecommendationRatingDto {
+ private final Integer id;
+ private final Double score;
+ private final LocalDateTime date;
+
+ public RecommendationRatingDto(RecommendationRating recommendationRating) {
+ this.id = recommendationRating.getId();
+ this.score = recommendationRating.getScore();
+ this.date = recommendationRating.getDate();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingForm.java
new file mode 100644
index 0000000..e3f13a7
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/RecommendationRatingForm.java
@@ -0,0 +1,35 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.EvaluatorBuilder;
+import edu.ifes.ci.si.les.srh.builder.RecommendationBuilder;
+import edu.ifes.ci.si.les.srh.builder.RecommendationRatingBuilder;
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import edu.ifes.ci.si.les.srh.model.Recommendation;
+import edu.ifes.ci.si.les.srh.model.RecommendationRating;
+
+import javax.validation.constraints.NotNull;
+
+public class RecommendationRatingForm {
+ @NotNull
+ private Double score;
+ @NotNull
+ private Integer evaluatorId;
+ @NotNull
+ private Integer recommendationId;
+
+ public RecommendationRating build() {
+ Evaluator evaluator = EvaluatorBuilder.anEvaluator()
+ .withId(evaluatorId)
+ .build();
+
+ Recommendation recommendation = RecommendationBuilder.aRecommendation()
+ .withId(recommendationId)
+ .build();
+
+ return RecommendationRatingBuilder.aRecommendationRating()
+ .withScore(score)
+ .withEvaluator(evaluator)
+ .withRecommendation(recommendation)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagDto.java
new file mode 100644
index 0000000..7300eef
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagDto.java
@@ -0,0 +1,15 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Tag;
+import lombok.Getter;
+
+@Getter
+public class TagDto {
+ private final Integer id;
+ private final String name;
+
+ public TagDto(Tag tag) {
+ this.id = tag.getId();
+ this.name = tag.getName();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagForm.java
new file mode 100644
index 0000000..9b9cc2b
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TagForm.java
@@ -0,0 +1,25 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.TagBuilder;
+import edu.ifes.ci.si.les.srh.model.Tag;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class TagForm {
+ @NotEmpty
+ @NotNull
+ private String name;
+
+ public Tag build() {
+ return TagBuilder.aTag()
+ .withName(name)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemDto.java
new file mode 100644
index 0000000..bf6b516
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemDto.java
@@ -0,0 +1,29 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.model.Attribute;
+import edu.ifes.ci.si.les.srh.model.TypeItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TypeItemDto {
+ private final Integer id;
+ private final String name;
+ private final List requiredAttributes;
+
+ public TypeItemDto(TypeItem typeItem) {
+ this.id = typeItem.getId();
+ this.name = typeItem.getName();
+ this.requiredAttributes = mountRequiredAttributes(typeItem.getRequiredAttributes());
+ }
+
+ private List mountRequiredAttributes(List requiredAttributes) {
+ List attributes = new ArrayList<>();
+
+ for (Attribute attribute : requiredAttributes) {
+ attributes.add(attribute.getId());
+ }
+
+ return attributes;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemForm.java
new file mode 100644
index 0000000..6c8c4d1
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/dto/resource/TypeItemForm.java
@@ -0,0 +1,30 @@
+package edu.ifes.ci.si.les.srh.dto.resource;
+
+import edu.ifes.ci.si.les.srh.builder.TypeItemBuilder;
+import edu.ifes.ci.si.les.srh.model.Attribute;
+import edu.ifes.ci.si.les.srh.model.TypeItem;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TypeItemForm {
+ private Integer id;
+ private String name;
+ private List requiredAttributes;
+
+ public TypeItem build() {
+ List attributes = new ArrayList<>();
+
+ for (Integer id : requiredAttributes) {
+ Attribute attribute = new Attribute();
+ attribute.setId(id);
+ attributes.add(attribute);
+ }
+
+ return TypeItemBuilder.aTypeItem()
+ .withId(id)
+ .withName(name)
+ .withRequiredAttributes(attributes)
+ .build();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/DuplicateValueException.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/DuplicateValueException.java
new file mode 100644
index 0000000..519a93c
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/DuplicateValueException.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.error.exception;
+
+public class DuplicateValueException extends Exception {
+ public DuplicateValueException(String message) {
+ super(message);
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/RelationshipNotFoundException.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/RelationshipNotFoundException.java
new file mode 100644
index 0000000..c2c3dbe
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/exception/RelationshipNotFoundException.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.error.exception;
+
+public class RelationshipNotFoundException extends Exception{
+ public RelationshipNotFoundException(String message) {
+ super(message);
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/DuplicateValueHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/DuplicateValueHandler.java
new file mode 100644
index 0000000..b99a7ca
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/DuplicateValueHandler.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.error.handler;
+
+import edu.ifes.ci.si.les.srh.dto.error.DefaultErrorDto;
+import edu.ifes.ci.si.les.srh.error.exception.DuplicateValueException;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@RestControllerAdvice
+public class DuplicateValueHandler {
+ @ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
+ @ExceptionHandler(DuplicateValueException.class)
+ public DefaultErrorDto handle(Exception exception) {
+ return new DefaultErrorDto(
+ "O vínculo entre os recursos não existe",
+ exception.getMessage()
+ );
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/FormHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/FormHandler.java
new file mode 100644
index 0000000..03420a0
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/FormHandler.java
@@ -0,0 +1,37 @@
+package edu.ifes.ci.si.les.srh.error.handler;
+
+import edu.ifes.ci.si.les.srh.dto.error.FormErrorDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.FieldError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestControllerAdvice
+public class FormHandler {
+ @Autowired
+ private MessageSource messageSource;
+
+ @ResponseStatus(code = HttpStatus.BAD_REQUEST)
+ @ExceptionHandler(MethodArgumentNotValidException.class)
+ public List handle(MethodArgumentNotValidException exception) {
+ List dtos = new ArrayList<>();
+
+ List fieldErrors = exception.getBindingResult().getFieldErrors();
+
+ fieldErrors.forEach(e -> {
+ String message = messageSource.getMessage(e, LocaleContextHolder.getLocale());
+ FormErrorDto formError = new FormErrorDto(e.getField(), message);
+ dtos.add(formError);
+ });
+
+ return dtos;
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/RelationshipNotFoundHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/RelationshipNotFoundHandler.java
new file mode 100644
index 0000000..1570c47
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/error/handler/RelationshipNotFoundHandler.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.error.handler;
+
+import edu.ifes.ci.si.les.srh.dto.error.DefaultErrorDto;
+import edu.ifes.ci.si.les.srh.error.exception.RelationshipNotFoundException;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@RestControllerAdvice
+public class RelationshipNotFoundHandler {
+ @ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
+ @ExceptionHandler(RelationshipNotFoundException.class)
+ public DefaultErrorDto handle(Exception exception) {
+ return new DefaultErrorDto(
+ "O relacionamento não existe",
+ exception.getMessage()
+ );
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Admin.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Admin.java
new file mode 100644
index 0000000..c62cab4
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Admin.java
@@ -0,0 +1,16 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import java.util.List;
+
+@Entity
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Admin extends User {
+ @OneToMany(mappedBy = "admin")
+ private List projects;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ApiUser.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ApiUser.java
new file mode 100644
index 0000000..f9e2b45
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ApiUser.java
@@ -0,0 +1,18 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.ManyToMany;
+import java.util.List;
+
+@Entity
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ApiUser extends User {
+ @ManyToMany(fetch = FetchType.EAGER)
+ private List profiles;
+ private boolean isAdmin;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Attribute.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Attribute.java
new file mode 100644
index 0000000..db88ffd
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Attribute.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+@Entity
+@Data
+public class Attribute {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ @ManyToOne
+ private TypeItem typeItem;
+
+ private String name;
+ private String type;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Evaluator.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Evaluator.java
new file mode 100644
index 0000000..ae67d0b
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Evaluator.java
@@ -0,0 +1,23 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.ManyToMany;
+import javax.persistence.OneToMany;
+import java.util.List;
+
+@Entity
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Evaluator extends User {
+ @ManyToMany
+ private List projects;
+
+ @OneToMany(mappedBy = "user")
+ private List itemRatings;
+
+ @OneToMany(mappedBy = "evaluator")
+ private List recommendationRatings;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Item.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Item.java
new file mode 100644
index 0000000..d5899cb
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Item.java
@@ -0,0 +1,34 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.util.HashMap;
+import java.util.List;
+
+@Entity
+@Data
+public class Item {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private String name;
+ private String description;
+ private HashMap attributes;
+
+ @OneToMany(mappedBy = "item")
+ private List itemRatings;
+
+ @OneToMany(mappedBy = "item")
+ private List recommendations;
+
+ @ManyToOne
+ private Project project;
+
+ @ManyToOne
+ private TypeItem typeItem;
+
+ @ManyToMany(mappedBy = "itens")
+ private List tags;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemRating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemRating.java
new file mode 100644
index 0000000..b32d997
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemRating.java
@@ -0,0 +1,18 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.ManyToOne;
+
+@Entity
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ItemRating extends Rating {
+ @ManyToOne
+ private Evaluator user;
+
+ @ManyToOne
+ private Item item;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemTag.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemTag.java
new file mode 100644
index 0000000..9129b01
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ItemTag.java
@@ -0,0 +1,76 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import edu.ifes.ci.si.les.srh.error.exception.DuplicateValueException;
+import edu.ifes.ci.si.les.srh.error.exception.RelationshipNotFoundException;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.SneakyThrows;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class ItemTag {
+ private Item item;
+ private Tag tag;
+
+ @SneakyThrows
+ public void addEntities() {
+ addItemInTag();
+ addTagInItem();
+ }
+
+ @SneakyThrows
+ public void removeEntities() {
+ removeItemInTag();
+ removeTagInItem();
+ }
+
+ @SneakyThrows
+ private void addItemInTag() {
+ List
- itensInTag = getItensListInTag();
+
+ if (itensInTag.contains(item))
+ throw new DuplicateValueException("O item já possui vínculo com a tag");
+
+ itensInTag.add(item);
+ }
+
+ @SneakyThrows
+ private void addTagInItem() {
+ List tagsInItem = getTagListInItem();
+
+ if (tagsInItem.contains(tag))
+ throw new DuplicateValueException("A tag já possui vínculo com o item");
+
+ tagsInItem.add(tag);
+ }
+
+ @SneakyThrows
+ private void removeItemInTag() {
+ List
- itensInTag = getItensListInTag();
+
+ if (!itensInTag.contains(item))
+ throw new RelationshipNotFoundException("Não existe vínculo entre o Item e a Tag");
+
+ itensInTag.remove(item);
+ }
+
+ @SneakyThrows
+ private void removeTagInItem() {
+ List tagsInItem = getTagListInItem();
+
+ if (!tagsInItem.contains(tag))
+ throw new RelationshipNotFoundException("Não existe vínculo entre a Tag e o Item");
+
+ tagsInItem.remove(tag);
+ }
+
+ private List
- getItensListInTag() {
+ return tag.getItens();
+ }
+
+ private List getTagListInItem() {
+ return item.getTags();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Profile.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Profile.java
new file mode 100644
index 0000000..e308150
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Profile.java
@@ -0,0 +1,19 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Data
+public class Profile {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private String name;
+
+ @ManyToMany
+ private List apiUsers;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Project.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Project.java
new file mode 100644
index 0000000..c19be82
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Project.java
@@ -0,0 +1,32 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.time.LocalDate;
+import java.util.List;
+
+@Entity
+@Data
+public class Project {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private String name;
+ private String description;
+ private LocalDate date;
+ private Boolean visible;
+
+ @Enumerated(EnumType.STRING)
+ private Situations situation;
+
+ @ManyToOne
+ private Admin admin;
+
+ @ManyToMany(mappedBy = "projects")
+ private List evaluators;
+
+ @OneToMany(mappedBy = "project")
+ private List
- itens;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ProjectEvaluator.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ProjectEvaluator.java
new file mode 100644
index 0000000..0bac540
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/ProjectEvaluator.java
@@ -0,0 +1,76 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import edu.ifes.ci.si.les.srh.error.exception.DuplicateValueException;
+import edu.ifes.ci.si.les.srh.error.exception.RelationshipNotFoundException;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.SneakyThrows;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class ProjectEvaluator {
+ private Project project;
+ private Evaluator evaluator;
+
+ @SneakyThrows
+ public void addEntities() {
+ addProjectInRecommender();
+ addRecommenderInProject();
+ }
+
+ @SneakyThrows
+ public void removeEntities() {
+ removeProjectInRecommender();
+ removeRecommenderInProject();
+ }
+
+ @SneakyThrows
+ private void addRecommenderInProject() {
+ List recommendersInProject = getRecommenderListInProject();
+
+ if (recommendersInProject.contains(evaluator))
+ throw new DuplicateValueException("Recommender link already exists");
+
+ recommendersInProject.add(evaluator);
+ }
+
+ @SneakyThrows
+ private void addProjectInRecommender() {
+ List projectsInRecommender = getProjectListInRecommender();
+
+ if (projectsInRecommender.contains(project))
+ throw new DuplicateValueException("Project link already exists");
+
+ projectsInRecommender.add(project);
+ }
+
+ @SneakyThrows
+ private void removeRecommenderInProject() {
+ List recommendersInProject = getRecommenderListInProject();
+
+ if (!recommendersInProject.contains(evaluator))
+ throw new RelationshipNotFoundException("Project not exist in Recommender");
+
+ recommendersInProject.remove(evaluator);
+ }
+
+ @SneakyThrows
+ private void removeProjectInRecommender() {
+ List projectsInRecommender = getProjectListInRecommender();
+
+ if (!projectsInRecommender.contains(project))
+ throw new RelationshipNotFoundException("Recommender not exist in Project");
+
+ projectsInRecommender.remove(project);
+ }
+
+ private List getRecommenderListInProject() {
+ return project.getEvaluators();
+ }
+
+ private List getProjectListInRecommender() {
+ return evaluator.getProjects();
+ }
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Rating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Rating.java
new file mode 100644
index 0000000..72c5dba
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Rating.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+import java.time.LocalDateTime;
+
+@MappedSuperclass
+@Data
+public abstract class Rating {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private Double score;
+ private LocalDateTime date;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Recommendation.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Recommendation.java
new file mode 100644
index 0000000..f732e1e
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Recommendation.java
@@ -0,0 +1,31 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Entity
+@Data
+public class Recommendation {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private Double weight;
+ private LocalDateTime date;
+ private Integer runtimeInSeconds;
+
+ @Enumerated(EnumType.STRING)
+ private TypeRecommendation typeRecommendation;
+
+ @ManyToOne
+ private Evaluator evaluator;
+
+ @ManyToOne
+ private Item item;
+
+ @OneToMany(mappedBy = "recommendation")
+ private List recommendationRatings;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/RecommendationRating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/RecommendationRating.java
new file mode 100644
index 0000000..9100f75
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/RecommendationRating.java
@@ -0,0 +1,18 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.persistence.Entity;
+import javax.persistence.ManyToOne;
+
+@Entity
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RecommendationRating extends Rating {
+ @ManyToOne
+ private Recommendation recommendation;
+
+ @ManyToOne
+ private Evaluator evaluator;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Situations.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Situations.java
new file mode 100644
index 0000000..ff6d581
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Situations.java
@@ -0,0 +1,5 @@
+package edu.ifes.ci.si.les.srh.model;
+
+public enum Situations {
+ OPEN, CLOSED
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Tag.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Tag.java
new file mode 100644
index 0000000..0bacdb5
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/Tag.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Data
+public class Tag {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ @Column(unique = true)
+ private String name;
+
+ @ManyToMany
+ private List
- itens;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeItem.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeItem.java
new file mode 100644
index 0000000..6d7ac75
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeItem.java
@@ -0,0 +1,22 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.util.List;
+
+@Entity
+@Data
+public class TypeItem {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ private String name;
+
+ @OneToMany(mappedBy = "typeItem")
+ private List requiredAttributes;
+
+ @OneToMany(mappedBy = "typeItem")
+ private List
- itens;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeRecommendation.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeRecommendation.java
new file mode 100644
index 0000000..1027872
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/TypeRecommendation.java
@@ -0,0 +1,5 @@
+package edu.ifes.ci.si.les.srh.model;
+
+public enum TypeRecommendation {
+ COLLABORATIVE, CONTENT, HYBRID
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/User.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/User.java
new file mode 100644
index 0000000..828bd2c
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/model/User.java
@@ -0,0 +1,20 @@
+package edu.ifes.ci.si.les.srh.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+@MappedSuperclass
+@Data
+public abstract class User {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ @Column(unique = true)
+ protected String login;
+
+ private String name;
+ private String email;
+ protected String password;
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/AdminRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/AdminRepository.java
new file mode 100644
index 0000000..25035aa
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/AdminRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Admin;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface AdminRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ApiUserRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ApiUserRepository.java
new file mode 100644
index 0000000..a1f0994
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ApiUserRepository.java
@@ -0,0 +1,10 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.ApiUser;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import java.util.Optional;
+
+public interface ApiUserRepository extends PagingAndSortingRepository {
+ Optional findByLogin(String login);
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/EvaluatorRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/EvaluatorRepository.java
new file mode 100644
index 0000000..a6c4a1f
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/EvaluatorRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Evaluator;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface EvaluatorRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRatingRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRatingRepository.java
new file mode 100644
index 0000000..7ad8837
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRatingRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.ItemRating;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface ItemRatingRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRepository.java
new file mode 100644
index 0000000..421e317
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ItemRepository.java
@@ -0,0 +1,8 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+
+import edu.ifes.ci.si.les.srh.model.Item;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface ItemRepository extends PagingAndSortingRepository
- {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProfileRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProfileRepository.java
new file mode 100644
index 0000000..26e5cea
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProfileRepository.java
@@ -0,0 +1,10 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Profile;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.Optional;
+
+public interface ProfileRepository extends JpaRepository {
+ Optional findByName(String name);
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProjectRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProjectRepository.java
new file mode 100644
index 0000000..3845f5a
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/ProjectRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Project;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface ProjectRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRatingRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRatingRepository.java
new file mode 100644
index 0000000..52d4a23
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRatingRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.RecommendationRating;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface RecommendationRatingRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRepository.java
new file mode 100644
index 0000000..f46cb5f
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/RecommendationRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Recommendation;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface RecommendationRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TagRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TagRepository.java
new file mode 100644
index 0000000..3e67623
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TagRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.Tag;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface TagRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TypeItemRepository.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TypeItemRepository.java
new file mode 100644
index 0000000..6b1358d
--- /dev/null
+++ b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/repository/TypeItemRepository.java
@@ -0,0 +1,7 @@
+package edu.ifes.ci.si.les.srh.repository;
+
+import edu.ifes.ci.si.les.srh.model.TypeItem;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+public interface TypeItemRepository extends PagingAndSortingRepository {
+}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/SrhApplication.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/SrhApplication.java
deleted file mode 100644
index 5cf19e5..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/SrhApplication.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class SrhApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(SrhApplication.class, args);
- }
-
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/AdminBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/AdminBuilder.java
deleted file mode 100644
index 247f557..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/AdminBuilder.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Admin;
-import edu.ifes.ci.si.les.srh.srh.model.Project;
-
-import java.util.List;
-
-public final class AdminBuilder {
- protected String login;
- protected String password;
- private List projects;
- private Integer id;
- private String name;
- private String email;
-
- private AdminBuilder() {
- }
-
- public static AdminBuilder anAdmin() {
- return new AdminBuilder();
- }
-
- public AdminBuilder withProjects(List projects) {
- this.projects = projects;
- return this;
- }
-
- public AdminBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public AdminBuilder withLogin(String login) {
- this.login = login;
- return this;
- }
-
- public AdminBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public AdminBuilder withEmail(String email) {
- this.email = email;
- return this;
- }
-
- public AdminBuilder withPassword(String password) {
- this.password = password;
- return this;
- }
-
- public Admin build() {
- Admin admin = new Admin();
- admin.setProjects(projects);
- admin.setId(id);
- admin.setLogin(login);
- admin.setName(name);
- admin.setEmail(email);
- admin.setPassword(password);
- return admin;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ApiUserBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ApiUserBuilder.java
deleted file mode 100644
index aaf607f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ApiUserBuilder.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.ApiUser;
-import edu.ifes.ci.si.les.srh.srh.model.Profile;
-
-import java.util.List;
-
-public final class ApiUserBuilder {
- protected String login;
- protected String password;
- private List profiles;
- private Integer id;
- private String name;
- private String email;
-
- private ApiUserBuilder() {
- }
-
- public static ApiUserBuilder anApiUser() {
- return new ApiUserBuilder();
- }
-
- public ApiUserBuilder withProfiles(List profiles) {
- this.profiles = profiles;
- return this;
- }
-
- public ApiUserBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public ApiUserBuilder withLogin(String login) {
- this.login = login;
- return this;
- }
-
- public ApiUserBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public ApiUserBuilder withEmail(String email) {
- this.email = email;
- return this;
- }
-
- public ApiUserBuilder withPassword(String password) {
- this.password = password;
- return this;
- }
-
- public ApiUser build() {
- ApiUser apiUser = new ApiUser();
- apiUser.setProfiles(profiles);
- apiUser.setId(id);
- apiUser.setLogin(login);
- apiUser.setName(name);
- apiUser.setEmail(email);
- apiUser.setPassword(password);
- return apiUser;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/EvaluatorBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/EvaluatorBuilder.java
deleted file mode 100644
index 7eb383d..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/EvaluatorBuilder.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import edu.ifes.ci.si.les.srh.srh.model.ItemRating;
-import edu.ifes.ci.si.les.srh.srh.model.Project;
-import edu.ifes.ci.si.les.srh.srh.model.RecommendationRating;
-
-import java.util.List;
-
-public final class EvaluatorBuilder {
- protected String login;
- protected String password;
- private List projects;
- private List itemRatings;
- private List recommendationRatings;
- private Integer id;
- private String name;
- private String email;
-
- private EvaluatorBuilder() {
- }
-
- public static EvaluatorBuilder anEvaluator() {
- return new EvaluatorBuilder();
- }
-
- public EvaluatorBuilder withProjects(List projects) {
- this.projects = projects;
- return this;
- }
-
- public EvaluatorBuilder withItemRatings(List itemRatings) {
- this.itemRatings = itemRatings;
- return this;
- }
-
- public EvaluatorBuilder withRecommendationRatings(List recommendationRatings) {
- this.recommendationRatings = recommendationRatings;
- return this;
- }
-
- public EvaluatorBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public EvaluatorBuilder withLogin(String login) {
- this.login = login;
- return this;
- }
-
- public EvaluatorBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public EvaluatorBuilder withEmail(String email) {
- this.email = email;
- return this;
- }
-
- public EvaluatorBuilder withPassword(String password) {
- this.password = password;
- return this;
- }
-
- public Evaluator build() {
- Evaluator evaluator = new Evaluator();
- evaluator.setProjects(projects);
- evaluator.setItemRatings(itemRatings);
- evaluator.setRecommendationRatings(recommendationRatings);
- evaluator.setId(id);
- evaluator.setLogin(login);
- evaluator.setName(name);
- evaluator.setEmail(email);
- evaluator.setPassword(password);
- return evaluator;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemBuilder.java
deleted file mode 100644
index 85da00b..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemBuilder.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.*;
-
-import java.util.HashMap;
-import java.util.List;
-
-public final class ItemBuilder {
- private Integer id;
- private String name;
- private String description;
- private HashMap attributes;
- private List itemRatings;
- private List recommendations;
- private Project project;
- private TypeItem typeItem;
- private List tags;
-
- private ItemBuilder() {
- }
-
- public static ItemBuilder anItem() {
- return new ItemBuilder();
- }
-
- public ItemBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public ItemBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public ItemBuilder withDescription(String description) {
- this.description = description;
- return this;
- }
-
- public ItemBuilder withAttributes(HashMap attributes) {
- this.attributes = attributes;
- return this;
- }
-
- public ItemBuilder withItemRatings(List itemRatings) {
- this.itemRatings = itemRatings;
- return this;
- }
-
- public ItemBuilder withRecommendations(List recommendations) {
- this.recommendations = recommendations;
- return this;
- }
-
- public ItemBuilder withProject(Project project) {
- this.project = project;
- return this;
- }
-
- public ItemBuilder withTypeItem(TypeItem typeItem) {
- this.typeItem = typeItem;
- return this;
- }
-
- public ItemBuilder withTags(List tags) {
- this.tags = tags;
- return this;
- }
-
- public Item build() {
- Item item = new Item();
- item.setId(id);
- item.setName(name);
- item.setDescription(description);
- item.setAttributes(attributes);
- item.setItemRatings(itemRatings);
- item.setRecommendations(recommendations);
- item.setProject(project);
- item.setTypeItem(typeItem);
- item.setTags(tags);
- return item;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemRatingBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemRatingBuilder.java
deleted file mode 100644
index 598c77b..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemRatingBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import edu.ifes.ci.si.les.srh.srh.model.ItemRating;
-
-import java.time.LocalDateTime;
-
-public final class ItemRatingBuilder {
- private Evaluator user;
- private Item item;
- private Integer id;
- private Double score;
- private LocalDateTime date;
-
- private ItemRatingBuilder() {
- }
-
- public static ItemRatingBuilder anItemRating() {
- return new ItemRatingBuilder();
- }
-
- public ItemRatingBuilder withUser(Evaluator user) {
- this.user = user;
- return this;
- }
-
- public ItemRatingBuilder withItem(Item item) {
- this.item = item;
- return this;
- }
-
- public ItemRatingBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public ItemRatingBuilder withScore(Double score) {
- this.score = score;
- return this;
- }
-
- public ItemRatingBuilder withDate(LocalDateTime date) {
- this.date = date;
- return this;
- }
-
- public ItemRating build() {
- ItemRating itemRating = new ItemRating();
- itemRating.setUser(user);
- itemRating.setItem(item);
- itemRating.setId(id);
- itemRating.setScore(score);
- itemRating.setDate(date);
- return itemRating;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemTagBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemTagBuilder.java
deleted file mode 100644
index d7c064a..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ItemTagBuilder.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import edu.ifes.ci.si.les.srh.srh.model.ItemTag;
-import edu.ifes.ci.si.les.srh.srh.model.Tag;
-
-public final class ItemTagBuilder {
- private Item item;
- private Tag tag;
-
- private ItemTagBuilder() {
- }
-
- public static ItemTagBuilder anItemTag() {
- return new ItemTagBuilder();
- }
-
- public ItemTagBuilder withItem(Item item) {
- this.item = item;
- return this;
- }
-
- public ItemTagBuilder withTag(Tag tag) {
- this.tag = tag;
- return this;
- }
-
- public ItemTag build() {
- return new ItemTag(item, tag);
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProfileBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProfileBuilder.java
deleted file mode 100644
index 8e67bce..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProfileBuilder.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.ApiUser;
-import edu.ifes.ci.si.les.srh.srh.model.Profile;
-
-import java.util.List;
-
-public final class ProfileBuilder {
- private Integer id;
- private String name;
- private List apiUsers;
-
- private ProfileBuilder() {
- }
-
- public static ProfileBuilder aProfile() {
- return new ProfileBuilder();
- }
-
- public ProfileBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public ProfileBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public ProfileBuilder withApiUsers(List apiUsers) {
- this.apiUsers = apiUsers;
- return this;
- }
-
- public Profile build() {
- Profile profile = new Profile();
- profile.setId(id);
- profile.setName(name);
- profile.setApiUsers(apiUsers);
- return profile;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProjectBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProjectBuilder.java
deleted file mode 100644
index 472cbee..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/ProjectBuilder.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.*;
-
-import java.time.LocalDate;
-import java.util.List;
-
-public final class ProjectBuilder {
- private Integer id;
- private String name;
- private String description;
- private LocalDate date;
- private Boolean visible;
- private Situations situation;
- private Admin admin;
- private List evaluators;
- private List
- itens;
-
- private ProjectBuilder() {
- }
-
- public static ProjectBuilder aProject() {
- return new ProjectBuilder();
- }
-
- public ProjectBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public ProjectBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public ProjectBuilder withDescription(String description) {
- this.description = description;
- return this;
- }
-
- public ProjectBuilder withDate(LocalDate date) {
- this.date = date;
- return this;
- }
-
- public ProjectBuilder withVisible(Boolean visible) {
- this.visible = visible;
- return this;
- }
-
- public ProjectBuilder withSituation(Situations situation) {
- this.situation = situation;
- return this;
- }
-
- public ProjectBuilder withAdmin(Admin admin) {
- this.admin = admin;
- return this;
- }
-
- public ProjectBuilder withEvaluators(List evaluators) {
- this.evaluators = evaluators;
- return this;
- }
-
- public ProjectBuilder withItens(List
- itens) {
- this.itens = itens;
- return this;
- }
-
- public Project build() {
- Project project = new Project();
- project.setId(id);
- project.setName(name);
- project.setDescription(description);
- project.setDate(date);
- project.setVisible(visible);
- project.setSituation(situation);
- project.setAdmin(admin);
- project.setEvaluators(evaluators);
- project.setItens(itens);
- return project;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationBuilder.java
deleted file mode 100644
index a014f4a..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationBuilder.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.*;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-public final class RecommendationBuilder {
- private Integer id;
- private Double weight;
- private LocalDateTime date;
- private Integer runtimeInSeconds;
- private TypeRecommendation typeRecommendation;
- private Evaluator evaluator;
- private Item item;
- private List recommendationRatings;
-
- private RecommendationBuilder() {
- }
-
- public static RecommendationBuilder aRecommendation() {
- return new RecommendationBuilder();
- }
-
- public RecommendationBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public RecommendationBuilder withWeight(Double weight) {
- this.weight = weight;
- return this;
- }
-
- public RecommendationBuilder withDate(LocalDateTime date) {
- this.date = date;
- return this;
- }
-
- public RecommendationBuilder withRuntimeInSeconds(Integer runtimeInSeconds) {
- this.runtimeInSeconds = runtimeInSeconds;
- return this;
- }
-
- public RecommendationBuilder withTypeRecommendation(TypeRecommendation typeRecommendation) {
- this.typeRecommendation = typeRecommendation;
- return this;
- }
-
- public RecommendationBuilder withEvaluator(Evaluator evaluator) {
- this.evaluator = evaluator;
- return this;
- }
-
- public RecommendationBuilder withItem(Item item) {
- this.item = item;
- return this;
- }
-
- public RecommendationBuilder withRecommendationRatings(List recommendationRatings) {
- this.recommendationRatings = recommendationRatings;
- return this;
- }
-
- public Recommendation build() {
- Recommendation recommendation = new Recommendation();
- recommendation.setId(id);
- recommendation.setWeight(weight);
- recommendation.setDate(date);
- recommendation.setRuntimeInSeconds(runtimeInSeconds);
- recommendation.setTypeRecommendation(typeRecommendation);
- recommendation.setEvaluator(evaluator);
- recommendation.setItem(item);
- recommendation.setRecommendationRatings(recommendationRatings);
- return recommendation;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationRatingBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationRatingBuilder.java
deleted file mode 100644
index 9f6963b..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/RecommendationRatingBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import edu.ifes.ci.si.les.srh.srh.model.Recommendation;
-import edu.ifes.ci.si.les.srh.srh.model.RecommendationRating;
-
-import java.time.LocalDateTime;
-
-public final class RecommendationRatingBuilder {
- private Recommendation recommendation;
- private Evaluator evaluator;
- private Integer id;
- private Double score;
- private LocalDateTime date;
-
- private RecommendationRatingBuilder() {
- }
-
- public static RecommendationRatingBuilder aRecommendationRating() {
- return new RecommendationRatingBuilder();
- }
-
- public RecommendationRatingBuilder withRecommendation(Recommendation recommendation) {
- this.recommendation = recommendation;
- return this;
- }
-
- public RecommendationRatingBuilder withEvaluator(Evaluator evaluator) {
- this.evaluator = evaluator;
- return this;
- }
-
- public RecommendationRatingBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public RecommendationRatingBuilder withScore(Double score) {
- this.score = score;
- return this;
- }
-
- public RecommendationRatingBuilder withDate(LocalDateTime date) {
- this.date = date;
- return this;
- }
-
- public RecommendationRating build() {
- RecommendationRating recommendationRating = new RecommendationRating();
- recommendationRating.setRecommendation(recommendation);
- recommendationRating.setEvaluator(evaluator);
- recommendationRating.setId(id);
- recommendationRating.setScore(score);
- recommendationRating.setDate(date);
- return recommendationRating;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TagBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TagBuilder.java
deleted file mode 100644
index 1f04f04..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TagBuilder.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import edu.ifes.ci.si.les.srh.srh.model.Tag;
-
-import java.util.List;
-
-public final class TagBuilder {
- private Integer id;
- private String name;
- private List
- itens;
-
- private TagBuilder() {
- }
-
- public static TagBuilder aTag() {
- return new TagBuilder();
- }
-
- public TagBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public TagBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public TagBuilder withItens(List
- itens) {
- this.itens = itens;
- return this;
- }
-
- public Tag build() {
- Tag tag = new Tag();
- tag.setId(id);
- tag.setName(name);
- tag.setItens(itens);
- return tag;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TypeItemBuilder.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TypeItemBuilder.java
deleted file mode 100644
index 2e9b64f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/builder/TypeItemBuilder.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.builder;
-
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import edu.ifes.ci.si.les.srh.srh.model.TypeItem;
-
-import java.util.List;
-
-public final class TypeItemBuilder {
- private Integer id;
- private String name;
- private List requiredAttributes;
- private List
- itens;
-
- private TypeItemBuilder() {
- }
-
- public static TypeItemBuilder aTypeItem() {
- return new TypeItemBuilder();
- }
-
- public TypeItemBuilder withId(Integer id) {
- this.id = id;
- return this;
- }
-
- public TypeItemBuilder withName(String name) {
- this.name = name;
- return this;
- }
-
- public TypeItemBuilder withRequiredAttributes(List requiredAttributes) {
- this.requiredAttributes = requiredAttributes;
- return this;
- }
-
- public TypeItemBuilder withItens(List
- itens) {
- this.itens = itens;
- return this;
- }
-
- public TypeItem build() {
- TypeItem typeItem = new TypeItem();
- typeItem.setId(id);
- typeItem.setName(name);
- typeItem.setRequiredAttributes(requiredAttributes);
- typeItem.setItens(itens);
- return typeItem;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/DefaultErrorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/DefaultErrorDto.java
deleted file mode 100644
index 8baa9ca..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/DefaultErrorDto.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.error;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-@Getter
-@AllArgsConstructor
-public class DefaultErrorDto {
- private final String error;
- private final String cause;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/FormErrorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/FormErrorDto.java
deleted file mode 100644
index eeba392..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/error/FormErrorDto.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.error;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-@Getter
-@AllArgsConstructor
-public class FormErrorDto {
- private final String error;
- private final String field;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminDto.java
deleted file mode 100644
index cca58f8..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminDto.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Admin;
-import lombok.Getter;
-
-@Getter
-public class AdminDto {
- private final Integer id;
- private final String name;
- private final String login;
- private final String email;
-
- public AdminDto(Admin admin) {
- this.id = admin.getId();
- this.name = admin.getName();
- this.login = admin.getLogin();
- this.email = admin.getEmail();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminForm.java
deleted file mode 100644
index 0c76b03..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/AdminForm.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.AdminBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Admin;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class AdminForm {
- @NotNull
- @NotEmpty
- private String name;
-
- @NotNull
- @NotEmpty
- private String login;
-
- @NotNull
- @NotEmpty
- @Length(min = 6)
- private String password;
-
- @NotNull
- @NotEmpty
- @Email
- private String email;
-
- public Admin build() {
- return AdminBuilder.anAdmin()
- .withName(name)
- .withLogin(login)
- .withEmail(email)
- .withPassword(password)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUserForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUserForm.java
deleted file mode 100644
index f1efa72..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUserForm.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.ApiUserBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.ApiUser;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ApiUserForm {
- @NotEmpty
- @NotNull
- @Length(min = 3)
- private String name;
-
- @NotEmpty
- @NotNull
- @Length(min = 3)
- private String login;
-
- @NotEmpty
- @NotNull
- @Length(min = 6)
- private String password;
-
- @NotNull
- @NotEmpty
- @Email
- private String email;
-
- public ApiUser build() {
- return ApiUserBuilder.anApiUser()
- .withLogin(login)
- .withName(name)
- .withPassword(password)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUsersDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUsersDto.java
deleted file mode 100644
index 5f1bbb4..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ApiUsersDto.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.ApiUser;
-import lombok.Getter;
-
-@Getter
-public class ApiUsersDto {
- private final Integer id;
- private final String name;
- private final String login;
- private final boolean isAdmin;
-
- public ApiUsersDto(ApiUser apiUser) {
- this.id = apiUser.getId();
- this.name = apiUser.getName();
- this.login = apiUser.getLogin();
- this.isAdmin = apiUser.isAdmin();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorDto.java
deleted file mode 100644
index ddf60f2..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorDto.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import lombok.Getter;
-
-@Getter
-public class EvaluatorDto {
- private final Integer id;
- private final String name;
- private final String login;
- private final String email;
-
- public EvaluatorDto(Evaluator evaluator) {
- this.id = evaluator.getId();
- this.name = evaluator.getName();
- this.login = evaluator.getLogin();
- this.email = evaluator.getEmail();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorForm.java
deleted file mode 100644
index abb8619..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/EvaluatorForm.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.EvaluatorBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class EvaluatorForm {
- @NotNull
- @NotEmpty
- private String name;
-
- @NotNull
- @NotEmpty
- private String login;
-
- @NotNull
- @NotEmpty
- @Length(min = 6)
- private String password;
-
- @NotNull
- @NotEmpty
- @Email
- private String email;
-
- public Evaluator build() {
- return EvaluatorBuilder.anEvaluator()
- .withName(name)
- .withLogin(login)
- .withPassword(password)
- .withEmail(email)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemDto.java
deleted file mode 100644
index 70234c9..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import lombok.Getter;
-import java.util.HashMap;
-
-@Getter
-public class ItemDto {
- private final Integer id;
- private final String name;
- private final String description;
- private final HashMap attributes;
-
- public ItemDto(Item item) {
- this.id = item.getId();
- this.name = item.getName();
- this.description = item.getDescription();
- this.attributes = item.getAttributes();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemForm.java
deleted file mode 100644
index be512f5..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemForm.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.ItemBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ItemForm {
- @NotNull
- @NotEmpty
- @Length(min = 3)
- private String name;
-
- @NotNull
- @NotEmpty
- @Length(min = 3)
- private String description;
-
- @NotNull
- @NotEmpty
- private String attributes;
-
- public Item build() {
- return ItemBuilder.anItem()
- .withName(name)
- .withDescription(description)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingDto.java
deleted file mode 100644
index 890f475..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingDto.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.ItemRating;
-import lombok.Getter;
-
-import java.time.LocalDateTime;
-
-@Getter
-public class ItemRatingDto {
- private final Integer id;
- private final Double score;
- private final LocalDateTime date;
-
- public ItemRatingDto(ItemRating itemRating) {
- this.id = itemRating.getId();
- this.score = itemRating.getScore();
- this.date = itemRating.getDate();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingForm.java
deleted file mode 100644
index 38d3f05..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemRatingForm.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.EvaluatorBuilder;
-import edu.ifes.ci.si.les.srh.srh.builder.ItemBuilder;
-import edu.ifes.ci.si.les.srh.srh.builder.ItemRatingBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import edu.ifes.ci.si.les.srh.srh.model.Item;
-import edu.ifes.ci.si.les.srh.srh.model.ItemRating;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ItemRatingForm {
- @NotNull
- private Double score;
- @NotNull
- private Integer evaluatorId;
- @NotNull
- private Integer itemId;
-
- public ItemRating build() {
- Evaluator evaluator = EvaluatorBuilder.anEvaluator()
- .withId(evaluatorId)
- .build();
-
- Item item = ItemBuilder.anItem()
- .withId(itemId)
- .build();
-
- return ItemRatingBuilder.anItemRating()
- .withScore(score)
- .withItem(item)
- .withUser(evaluator)
- .withDate(LocalDateTime.now())
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagDto.java
deleted file mode 100644
index 2818689..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagDto.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.ItemTag;
-import lombok.Getter;
-
-@Getter
-public class ItemTagDto {
- private final Integer itemId;
- private final Integer tagId;
-
- public ItemTagDto(ItemTag itemTag) {
- this.itemId = itemTag.getItem().getId();
- this.tagId = itemTag.getTag().getId();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagForm.java
deleted file mode 100644
index ce58982..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ItemTagForm.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ItemTagForm {
- @NotNull
- private Integer itemId;
- @NotNull
- private Integer tagId;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectDto.java
deleted file mode 100644
index f99f917..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectDto.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Project;
-import edu.ifes.ci.si.les.srh.srh.model.Situations;
-import lombok.Getter;
-
-import java.time.LocalDate;
-
-@Getter
-public class ProjectDto {
- private final Integer id;
- private final String name;
- private final String description;
- private Situations situation;
- private final LocalDate date;
- private final Boolean visible;
-
- public ProjectDto(Project project) {
- this.id = project.getId();
- this.name = project.getName();
- this.description = project.getDescription();
- this.date = project.getDate();
- this.situation = project.getSituation();
- this.visible = project.getVisible();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorDto.java
deleted file mode 100644
index ffead96..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorDto.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.ProjectEvaluator;
-import lombok.Getter;
-
-@Getter
-public class ProjectEvaluatorDto {
- private final Integer projectId;
- private final Integer recommenderId;
-
- public ProjectEvaluatorDto(ProjectEvaluator projectEvaluator) {
- this.projectId = projectEvaluator.getProject().getId();
- this.recommenderId = projectEvaluator.getEvaluator().getId();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorForm.java
deleted file mode 100644
index 6dbe36d..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectEvaluatorForm.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ProjectEvaluatorForm {
- @NotNull
- private Integer projectId;
- @NotNull
- private Integer recommenderId;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectForm.java
deleted file mode 100644
index cc321e9..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/ProjectForm.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.AdminBuilder;
-import edu.ifes.ci.si.les.srh.srh.builder.ProjectBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Admin;
-import edu.ifes.ci.si.les.srh.srh.model.Project;
-import edu.ifes.ci.si.les.srh.srh.model.Situations;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import java.time.LocalDate;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class ProjectForm {
-
- @NotEmpty
- @NotNull
- @Length(min = 3)
- private String name;
-
- @NotEmpty
- @NotNull
- @Length(min = 3)
- private String description;
-
- @NotNull
- private Integer adminId;
-
- @NotNull
- @NotEmpty
- private String situation;
-
- @NotNull
- private Boolean visible;
-
- public Project build() {
- Admin admin = AdminBuilder.anAdmin()
- .withId(adminId)
- .build();
-
- return ProjectBuilder.aProject()
- .withName(name)
- .withDescription(description)
- .withAdmin(admin)
- .withSituation(Situations.valueOf(situation))
- .withDate(LocalDate.now())
- .withVisible(visible)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationDto.java
deleted file mode 100644
index fe351f3..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationDto.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Recommendation;
-import edu.ifes.ci.si.les.srh.srh.model.TypeRecommendation;
-import lombok.Getter;
-
-import java.time.LocalDateTime;
-
-@Getter
-public class RecommendationDto {
- private final Integer id;
- private final Double weight;
- private final LocalDateTime date;
- private final Integer runtimeInSeconds;
- private final TypeRecommendation typeRecommendation;
-
- public RecommendationDto(Recommendation recommendation) {
- this.id = recommendation.getId();
- this.weight = recommendation.getWeight();
- this.date = recommendation.getDate();
- this.runtimeInSeconds = recommendation.getRuntimeInSeconds();
- this.typeRecommendation = recommendation.getTypeRecommendation();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingDto.java
deleted file mode 100644
index 9fec637..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingDto.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-
-import edu.ifes.ci.si.les.srh.srh.model.RecommendationRating;
-import lombok.Getter;
-
-import java.time.LocalDateTime;
-
-@Getter
-public class RecommendationRatingDto {
- private final Integer id;
- private final Double score;
- private final LocalDateTime date;
-
- public RecommendationRatingDto(RecommendationRating recommendationRating) {
- this.id = recommendationRating.getId();
- this.score = recommendationRating.getScore();
- this.date = recommendationRating.getDate();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingForm.java
deleted file mode 100644
index 3293122..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/RecommendationRatingForm.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.EvaluatorBuilder;
-import edu.ifes.ci.si.les.srh.srh.builder.RecommendationBuilder;
-import edu.ifes.ci.si.les.srh.srh.builder.RecommendationRatingBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Evaluator;
-import edu.ifes.ci.si.les.srh.srh.model.Recommendation;
-import edu.ifes.ci.si.les.srh.srh.model.RecommendationRating;
-
-import javax.validation.constraints.NotNull;
-
-public class RecommendationRatingForm {
- @NotNull
- private Double score;
- @NotNull
- private Integer evaluatorId;
- @NotNull
- private Integer recommendationId;
-
- public RecommendationRating build() {
- Evaluator evaluator = EvaluatorBuilder.anEvaluator()
- .withId(evaluatorId)
- .build();
-
- Recommendation recommendation = RecommendationBuilder.aRecommendation()
- .withId(recommendationId)
- .build();
-
- return RecommendationRatingBuilder.aRecommendationRating()
- .withScore(score)
- .withEvaluator(evaluator)
- .withRecommendation(recommendation)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagDto.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagDto.java
deleted file mode 100644
index 5619d59..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagDto.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.model.Tag;
-import lombok.Getter;
-
-@Getter
-public class TagDto {
- private final Integer id;
- private final String name;
-
- public TagDto(Tag tag) {
- this.id = tag.getId();
- this.name = tag.getName();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagForm.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagForm.java
deleted file mode 100644
index 8b79262..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/dto/resource/TagForm.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.dto.resource;
-
-import edu.ifes.ci.si.les.srh.srh.builder.TagBuilder;
-import edu.ifes.ci.si.les.srh.srh.model.Tag;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-public class TagForm {
- @NotEmpty
- @NotNull
- private String name;
-
- public Tag build() {
- return TagBuilder.aTag()
- .withName(name)
- .build();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/DuplicateValueException.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/DuplicateValueException.java
deleted file mode 100644
index 97ec45f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/DuplicateValueException.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.error.exception;
-
-public class DuplicateValueException extends Exception {
- public DuplicateValueException(String message) {
- super(message);
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/RelationshipNotFoundException.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/RelationshipNotFoundException.java
deleted file mode 100644
index afd8bae..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/exception/RelationshipNotFoundException.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.error.exception;
-
-public class RelationshipNotFoundException extends Exception{
- public RelationshipNotFoundException(String message) {
- super(message);
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/DuplicateValueHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/DuplicateValueHandler.java
deleted file mode 100644
index e150f0b..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/DuplicateValueHandler.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.error.handler;
-
-import edu.ifes.ci.si.les.srh.srh.dto.error.DefaultErrorDto;
-import edu.ifes.ci.si.les.srh.srh.error.exception.DuplicateValueException;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-public class DuplicateValueHandler {
- @ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
- @ExceptionHandler(DuplicateValueException.class)
- public DefaultErrorDto handle(Exception exception) {
- return new DefaultErrorDto(
- "O vínculo entre os recursos não existe",
- exception.getMessage()
- );
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/FormHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/FormHandler.java
deleted file mode 100644
index 034a7f2..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/FormHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.error.handler;
-
-import edu.ifes.ci.si.les.srh.srh.dto.error.FormErrorDto;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.MessageSource;
-import org.springframework.context.i18n.LocaleContextHolder;
-import org.springframework.http.HttpStatus;
-import org.springframework.validation.FieldError;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RestControllerAdvice
-public class FormHandler {
- @Autowired
- private MessageSource messageSource;
-
- @ResponseStatus(code = HttpStatus.BAD_REQUEST)
- @ExceptionHandler(MethodArgumentNotValidException.class)
- public List handle(MethodArgumentNotValidException exception) {
- List dtos = new ArrayList<>();
-
- List fieldErrors = exception.getBindingResult().getFieldErrors();
-
- fieldErrors.forEach(e -> {
- String message = messageSource.getMessage(e, LocaleContextHolder.getLocale());
- FormErrorDto formError = new FormErrorDto(e.getField(), message);
- dtos.add(formError);
- });
-
- return dtos;
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/RelationshipNotFoundHandler.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/RelationshipNotFoundHandler.java
deleted file mode 100644
index a09b056..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/error/handler/RelationshipNotFoundHandler.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.error.handler;
-
-import edu.ifes.ci.si.les.srh.srh.dto.error.DefaultErrorDto;
-import edu.ifes.ci.si.les.srh.srh.error.exception.RelationshipNotFoundException;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-public class RelationshipNotFoundHandler {
- @ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR)
- @ExceptionHandler(RelationshipNotFoundException.class)
- public DefaultErrorDto handle(Exception exception) {
- return new DefaultErrorDto(
- "O relacionamento não existe",
- exception.getMessage()
- );
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Admin.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Admin.java
deleted file mode 100644
index 775822f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Admin.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.persistence.Entity;
-import javax.persistence.OneToMany;
-import java.util.List;
-
-@Entity
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class Admin extends User {
- @OneToMany(mappedBy = "admin")
- private List projects;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ApiUser.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ApiUser.java
deleted file mode 100644
index 2a143a4..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ApiUser.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import java.util.List;
-
-@Entity
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ApiUser extends User {
- @ManyToMany(fetch = FetchType.EAGER)
- private List profiles;
- private boolean isAdmin;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Evaluator.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Evaluator.java
deleted file mode 100644
index e842b3d..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Evaluator.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.persistence.Entity;
-import javax.persistence.ManyToMany;
-import javax.persistence.OneToMany;
-import java.util.List;
-
-@Entity
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class Evaluator extends User {
- @ManyToMany
- private List projects;
-
- @OneToMany(mappedBy = "user")
- private List itemRatings;
-
- @OneToMany(mappedBy = "evaluator")
- private List recommendationRatings;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Item.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Item.java
deleted file mode 100644
index 148fd81..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Item.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.util.HashMap;
-import java.util.List;
-
-@Entity
-@Data
-public class Item {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private String name;
- private String description;
- private HashMap attributes;
-
- @OneToMany(mappedBy = "item")
- private List itemRatings;
-
- @OneToMany(mappedBy = "item")
- private List recommendations;
-
- @ManyToOne
- private Project project;
-
- @ManyToOne
- private TypeItem typeItem;
-
- @ManyToMany(mappedBy = "itens")
- private List tags;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemRating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemRating.java
deleted file mode 100644
index 9f95dbc..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemRating.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
-
-@Entity
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ItemRating extends Rating {
- @ManyToOne
- private Evaluator user;
-
- @ManyToOne
- private Item item;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemTag.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemTag.java
deleted file mode 100644
index 7fcf001..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ItemTag.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import edu.ifes.ci.si.les.srh.srh.error.exception.DuplicateValueException;
-import edu.ifes.ci.si.les.srh.srh.error.exception.RelationshipNotFoundException;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.SneakyThrows;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-public class ItemTag {
- private Item item;
- private Tag tag;
-
- @SneakyThrows
- public void addEntities() {
- addItemInTag();
- addTagInItem();
- }
-
- @SneakyThrows
- public void removeEntities() {
- removeItemInTag();
- removeTagInItem();
- }
-
- @SneakyThrows
- private void addItemInTag() {
- List
- itensInTag = getItensListInTag();
-
- if (itensInTag.contains(item))
- throw new DuplicateValueException("O item já possui vínculo com a tag");
-
- itensInTag.add(item);
- }
-
- @SneakyThrows
- private void addTagInItem() {
- List tagsInItem = getTagListInItem();
-
- if (tagsInItem.contains(tag))
- throw new DuplicateValueException("A tag já possui vínculo com o item");
-
- tagsInItem.add(tag);
- }
-
- @SneakyThrows
- private void removeItemInTag() {
- List
- itensInTag = getItensListInTag();
-
- if (!itensInTag.contains(item))
- throw new RelationshipNotFoundException("Não existe vínculo entre o Item e a Tag");
-
- itensInTag.remove(item);
- }
-
- @SneakyThrows
- private void removeTagInItem() {
- List tagsInItem = getTagListInItem();
-
- if (!tagsInItem.contains(tag))
- throw new RelationshipNotFoundException("Não existe vínculo entre a Tag e o Item");
-
- tagsInItem.remove(tag);
- }
-
- private List
- getItensListInTag() {
- return tag.getItens();
- }
-
- private List getTagListInItem() {
- return item.getTags();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Profile.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Profile.java
deleted file mode 100644
index 479101f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Profile.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.util.List;
-
-@Entity
-@Data
-public class Profile {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private String name;
-
- @ManyToMany
- private List apiUsers;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Project.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Project.java
deleted file mode 100644
index d4c92ee..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Project.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.time.LocalDate;
-import java.util.List;
-
-@Entity
-@Data
-public class Project {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private String name;
- private String description;
- private LocalDate date;
- private Boolean visible;
-
- @Enumerated(EnumType.STRING)
- private Situations situation;
-
- @ManyToOne
- private Admin admin;
-
- @ManyToMany(mappedBy = "projects")
- private List evaluators;
-
- @OneToMany(mappedBy = "project")
- private List
- itens;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ProjectEvaluator.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ProjectEvaluator.java
deleted file mode 100644
index 0084114..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/ProjectEvaluator.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import edu.ifes.ci.si.les.srh.srh.error.exception.DuplicateValueException;
-import edu.ifes.ci.si.les.srh.srh.error.exception.RelationshipNotFoundException;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.SneakyThrows;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-public class ProjectEvaluator {
- private Project project;
- private Evaluator evaluator;
-
- @SneakyThrows
- public void addEntities() {
- addProjectInRecommender();
- addRecommenderInProject();
- }
-
- @SneakyThrows
- public void removeEntities() {
- removeProjectInRecommender();
- removeRecommenderInProject();
- }
-
- @SneakyThrows
- private void addRecommenderInProject() {
- List recommendersInProject = getRecommenderListInProject();
-
- if (recommendersInProject.contains(evaluator))
- throw new DuplicateValueException("Recommender link already exists");
-
- recommendersInProject.add(evaluator);
- }
-
- @SneakyThrows
- private void addProjectInRecommender() {
- List projectsInRecommender = getProjectListInRecommender();
-
- if (projectsInRecommender.contains(project))
- throw new DuplicateValueException("Project link already exists");
-
- projectsInRecommender.add(project);
- }
-
- @SneakyThrows
- private void removeRecommenderInProject() {
- List recommendersInProject = getRecommenderListInProject();
-
- if (!recommendersInProject.contains(evaluator))
- throw new RelationshipNotFoundException("Project not exist in Recommender");
-
- recommendersInProject.remove(evaluator);
- }
-
- @SneakyThrows
- private void removeProjectInRecommender() {
- List projectsInRecommender = getProjectListInRecommender();
-
- if (!projectsInRecommender.contains(project))
- throw new RelationshipNotFoundException("Recommender not exist in Project");
-
- projectsInRecommender.remove(project);
- }
-
- private List getRecommenderListInProject() {
- return project.getEvaluators();
- }
-
- private List getProjectListInRecommender() {
- return evaluator.getProjects();
- }
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Rating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Rating.java
deleted file mode 100644
index df0c85e..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Rating.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
-import java.time.LocalDateTime;
-
-@MappedSuperclass
-@Data
-public abstract class Rating {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private Double score;
- private LocalDateTime date;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Recommendation.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Recommendation.java
deleted file mode 100644
index 44443cf..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Recommendation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Entity
-@Data
-public class Recommendation {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private Double weight;
- private LocalDateTime date;
- private Integer runtimeInSeconds;
-
- @Enumerated(EnumType.STRING)
- private TypeRecommendation typeRecommendation;
-
- @ManyToOne
- private Evaluator evaluator;
-
- @ManyToOne
- private Item item;
-
- @OneToMany(mappedBy = "recommendation")
- private List recommendationRatings;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/RecommendationRating.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/RecommendationRating.java
deleted file mode 100644
index b897f3a..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/RecommendationRating.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
-
-@Entity
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class RecommendationRating extends Rating {
- @ManyToOne
- private Recommendation recommendation;
-
- @ManyToOne
- private Evaluator evaluator;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Situations.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Situations.java
deleted file mode 100644
index 6f7ea1d..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Situations.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-public enum Situations {
- OPEN, CLOSED
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Tag.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Tag.java
deleted file mode 100644
index 2b43c99..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/Tag.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.util.List;
-
-@Entity
-@Data
-public class Tag {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- @Column(unique = true)
- private String name;
-
- @ManyToMany
- private List
- itens;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeItem.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeItem.java
deleted file mode 100644
index de2ad6f..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeItem.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-import java.util.List;
-
-@Entity
-@Data
-public class TypeItem {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- private String name;
- private List requiredAttributes;
-
- @OneToMany(mappedBy = "typeItem")
- private List
- itens;
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeRecommendation.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeRecommendation.java
deleted file mode 100644
index 0ed9b01..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/TypeRecommendation.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-public enum TypeRecommendation {
- COLLABORATIVE, CONTENT, HYBRID
-}
diff --git a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/User.java b/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/User.java
deleted file mode 100644
index 568b833..0000000
--- a/codigos/backend/src/main/java/edu/ifes/ci/si/les/srh/srh/model/User.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh.model;
-
-import lombok.Data;
-
-import javax.persistence.*;
-
-@MappedSuperclass
-@Data
-public abstract class User {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Integer id;
-
- @Column(unique = true)
- protected String login;
-
- private String name;
- private String email;
- protected String password;
-}
diff --git a/codigos/backend/src/main/resources/application.properties b/codigos/backend/src/main/resources/application.properties
index 8b13789..af29816 100644
--- a/codigos/backend/src/main/resources/application.properties
+++ b/codigos/backend/src/main/resources/application.properties
@@ -1 +1,11 @@
+# datasource
+spring.datasource.driverClassName=org.postgresql.Driver
+spring.datasource.url=jdbc:postgresql://localhost:5432/srh_les
+spring.datasource.username=postgres
+spring.datasource.password=postgres
+# jpa
+spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
+spring.jpa.hibernate.ddl-auto=drop-and-create
+spring.jpa.properties.hibernate.show_sql=true
+spring.jpa.properties.hibernate.format_sql=true
\ No newline at end of file
diff --git a/codigos/backend/src/main/resources/data.sql b/codigos/backend/src/main/resources/data.sql
new file mode 100644
index 0000000..32a1b24
--- /dev/null
+++ b/codigos/backend/src/main/resources/data.sql
@@ -0,0 +1,17 @@
+INSERT INTO api_user(id, name, login, password, is_admin)
+ VALUES (1, 'admin', 'admin', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq', true);
+
+INSERT INTO api_user(id, name, login, password, is_admin)
+ VALUES (2, 'client', 'client', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq', true);
+
+INSERT INTO profile(id, name) VALUES(1, 'ROLE_ADMIN');
+INSERT INTO profile(id, name) VALUES(2, 'ROLE_USER');
+
+INSERT INTO api_user_profiles(api_user_id, profiles_id)
+ VALUES (1, 1);
+
+INSERT INTO api_user_profiles(api_user_id, profiles_id)
+ VALUES (1, 2);
+
+INSERT INTO api_user_profiles(api_user_id, profiles_id)
+ VALUES (2, 2);
\ No newline at end of file
diff --git a/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/SrhApplicationTests.java b/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/SrhApplicationTests.java
new file mode 100644
index 0000000..fd60f27
--- /dev/null
+++ b/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/SrhApplicationTests.java
@@ -0,0 +1,13 @@
+package edu.ifes.ci.si.les.srh;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class SrhApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
diff --git a/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/srh/SrhApplicationTests.java b/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/srh/SrhApplicationTests.java
deleted file mode 100644
index 94819fe..0000000
--- a/codigos/backend/src/test/java/edu/ifes/ci/si/les/srh/srh/SrhApplicationTests.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package edu.ifes.ci.si.les.srh.srh;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class SrhApplicationTests {
-
- @Test
- void contextLoads() {
- }
-
-}
--
libgit2 0.21.2