Index: eprms-model/pom.xml
===================================================================
--- eprms-model/pom.xml	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/pom.xml	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -6,5 +6,5 @@
 	<groupId>info.ajanovski.eprms</groupId>
 	<artifactId>model</artifactId>
-	<version>0.0.6-SNAPSHOT</version>
+	<version>0.0.7-SNAPSHOT</version>
 
 	<name>EPRMS - Educational Project and Resource Management System - Model</name>
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Activity.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Activity.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Activity.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -29,5 +29,5 @@
 */
 @Entity
-@Table(schema = "epm_main", name = "activity")
+@Table (schema="epm_main", name="activity")
 public class Activity implements java.io.Serializable {
 	private long activityId;
@@ -42,4 +42,5 @@
 	private List<Activity> subActivities = new ArrayList<Activity>();
 
+
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -52,5 +53,5 @@
 
 	public void setActivityId(long activityId) {
-		this.activityId = activityId;
+		this.activityId=activityId;
 	}
 
@@ -61,5 +62,5 @@
 
 	public void setTitle(String title) {
-		this.title = title;
+		this.title=title;
 	}
 
@@ -70,5 +71,5 @@
 
 	public void setDescription(String description) {
-		this.description = description;
+		this.description=description;
 	}
 
@@ -108,5 +109,5 @@
 
 	public void setProject(Project project) {
-		this.project = project;
+		this.project=project;
 	}
 
@@ -127,5 +128,5 @@
 
 	public void setActivityType(ActivityType activityType) {
-		this.activityType = activityType;
+		this.activityType=activityType;
 	}
 
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Course.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Course.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Course.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -29,5 +29,5 @@
 */
 @Entity
-@Table(schema = "epm_main", name = "course")
+@Table (schema="epm_main", name="course")
 public class Course implements java.io.Serializable {
 	private long courseId;
@@ -36,4 +36,6 @@
 	private List<CourseActivityType> courseActivityTypes = new ArrayList<CourseActivityType>();
 	private List<CourseProject> courseProjects = new ArrayList<CourseProject>();
+	private List<CourseTeacher> courseTeachers = new ArrayList<CourseTeacher>();
+
 
 	@Id
@@ -47,5 +49,5 @@
 
 	public void setCourseId(long courseId) {
-		this.courseId = courseId;
+		this.courseId=courseId;
 	}
 
@@ -57,5 +59,5 @@
 
 	public void setTitle(String title) {
-		this.title = title;
+		this.title=title;
 	}
 
@@ -67,5 +69,5 @@
 
 	public void setCode(String code) {
-		this.code = code;
+		this.code=code;
 	}
 
@@ -76,5 +78,5 @@
 
 	public void setCourseActivityTypes(List<CourseActivityType> courseActivityTypes) {
-		this.courseActivityTypes = courseActivityTypes;
+		this.courseActivityTypes=courseActivityTypes;
 	}
 
@@ -88,3 +90,12 @@
 	}
 
+	@OneToMany(fetch = FetchType.LAZY, mappedBy = "course")
+	public List<CourseTeacher> getCourseTeachers() {
+		return this.courseTeachers;
+	}
+
+	public void setCourseTeachers(List<CourseTeacher> courseTeachers) {
+		this.courseTeachers=courseTeachers;
+	}
+
 }
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/CourseTeacher.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/CourseTeacher.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/CourseTeacher.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (C) 2021 Vangel V. Ajanovski
+ *     
+ * This file is part of the EPRMS - Educational Project and Resource Management 
+ * System (hereinafter: EPRMS).
+ *     
+ * EPRMS is free software: you can redistribute it and/or modify it under the 
+ * terms of the GNU General Public License as published by the Free Software 
+ * Foundation, either version 3 of the License, or (at your option) any later 
+ * version.
+ *     
+ * EPRMS is distributed in the hope that it will be useful, but WITHOUT ANY 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
+ * details.
+ *     
+ * You should have received a copy of the GNU General Public License along 
+ * with EPRMS.  If not, see <https://www.gnu.org/licenses/>.
+ * 
+ ******************************************************************************/
+
+package info.ajanovski.eprms.model.entities;
+
+import java.util.*;
+import javax.persistence.*;
+import javax.validation.constraints.*;
+
+/*
+*/
+@Entity
+@Table (schema="epm_main", name="course_teacher")
+public class CourseTeacher implements java.io.Serializable {
+	private long courseTeacherId;
+	private Date fromDate;
+	private Date toDate;
+	private Person teacher;
+	private Course course;
+
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+
+	@NotNull
+	@Column(name = "course_teacher_id", unique = true, nullable = false)
+	public long getCourseTeacherId() {
+		return this.courseTeacherId;
+	}
+
+	public void setCourseTeacherId(long courseTeacherId) {
+		this.courseTeacherId=courseTeacherId;
+	}
+
+	@Column(name = "from_date")
+	public Date getFromDate() {
+		return this.fromDate;
+	}
+
+	public void setFromDate(Date fromDate) {
+		this.fromDate=fromDate;
+	}
+
+	@Column(name = "to_date")
+	public Date getToDate() {
+		return this.toDate;
+	}
+
+	public void setToDate(Date toDate) {
+		this.toDate=toDate;
+	}
+
+	@ManyToOne(fetch = FetchType.LAZY)
+	@JoinColumn(name = "person_id", nullable = false, foreignKey = @ForeignKey(name = "fk_course_teacher_person"))
+	public Person getTeacher() {
+		return this.teacher;
+	}
+
+	public void setTeacher(Person teacher) {
+		this.teacher=teacher;
+	}
+
+	@ManyToOne(fetch = FetchType.LAZY)
+	@JoinColumn(name = "course_id", nullable = false, foreignKey = @ForeignKey(name = "fk_course_teacher_course"))
+	public Course getCourse() {
+		return this.course;
+	}
+
+	public void setCourse(Course course) {
+		this.course=course;
+	}
+
+}
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Person.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Person.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Person.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -37,4 +37,5 @@
 	private String userName;
 	private String authString;
+
 
 	@Id
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Project.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Project.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Project.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -38,4 +38,6 @@
 	private String code;
 	private String status;
+	private Boolean acceptingNewResponsibilities;
+	private Integer maxResponsibilities;
 	private List<Responsibility> responsibilities = new ArrayList<Responsibility>();
 	private List<Repository> repositories = new ArrayList<Repository>();
@@ -114,4 +116,22 @@
 	}
 
+	@Column(name = "accepting_new_responsibilities")
+	public Boolean getAcceptingNewResponsibilities() {
+		return this.acceptingNewResponsibilities;
+	}
+
+	public void setAcceptingNewResponsibilities(Boolean acceptingNewResponsibilities) {
+		this.acceptingNewResponsibilities=acceptingNewResponsibilities;
+	}
+
+	@Column(name = "max_responsibilities")
+	public Integer getMaxResponsibilities() {
+		return this.maxResponsibilities;
+	}
+
+	public void setMaxResponsibilities(Integer maxResponsibilities) {
+		this.maxResponsibilities=maxResponsibilities;
+	}
+
 	@OneToMany(fetch = FetchType.LAZY, mappedBy = "project")
 	public List<Responsibility> getResponsibilities() {
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Team.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Team.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/Team.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -33,5 +33,12 @@
 	private long teamId;
 	private String name;
+	private String status;
+	private Date createdDate;
+	private Date statusDate;
+	private String description;
+	private Boolean openForNewMembers;
+	private Integer maxMembers;
 	private List<TeamMember> teamMembers = new ArrayList<TeamMember>();
+	private List<Responsibility> responsibilities = new ArrayList<Responsibility>();
 
 
@@ -49,5 +56,5 @@
 	}
 
-	@Column(name = "name")
+	@Column(name = "name", length = 2000)
 	public String getName() {
 		return this.name;
@@ -56,4 +63,58 @@
 	public void setName(String name) {
 		this.name=name;
+	}
+
+	@Column(name = "status")
+	public String getStatus() {
+		return this.status;
+	}
+
+	public void setStatus(String status) {
+		this.status=status;
+	}
+
+	@Column(name = "created_date")
+	public Date getCreatedDate() {
+		return this.createdDate;
+	}
+
+	public void setCreatedDate(Date createdDate) {
+		this.createdDate=createdDate;
+	}
+
+	@Column(name = "status_date")
+	public Date getStatusDate() {
+		return this.statusDate;
+	}
+
+	public void setStatusDate(Date statusDate) {
+		this.statusDate=statusDate;
+	}
+
+	@Column(name = "description", length = 1000000)
+	public String getDescription() {
+		return this.description;
+	}
+
+	public void setDescription(String description) {
+		this.description=description;
+	}
+
+	@Column(name = "open_for_new_members")
+	public Boolean getOpenForNewMembers() {
+		return this.openForNewMembers;
+	}
+
+	public void setOpenForNewMembers(Boolean openForNewMembers) {
+		this.openForNewMembers=openForNewMembers;
+	}
+
+	@Column(name = "max_members")
+	public Integer getMaxMembers() {
+		return this.maxMembers;
+	}
+
+	public void setMaxMembers(Integer maxMembers) {
+		this.maxMembers=maxMembers;
 	}
 
@@ -67,3 +128,12 @@
 	}
 
+	@OneToMany(fetch = FetchType.LAZY, mappedBy = "team")
+	public List<Responsibility> getResponsibilities() {
+		return this.responsibilities;
+	}
+
+	public void setResponsibilities(List<Responsibility> responsibilities) {
+		this.responsibilities=responsibilities;
+	}
+
 }
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/TeamMember.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/TeamMember.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/TeamMember.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -34,4 +34,7 @@
 	private Integer positionNumber;
 	private String role;
+	private String status;
+	private Date createdDate;
+	private Date statusDate;
 	private Person person;
 	private Team team;
@@ -69,4 +72,31 @@
 	}
 
+	@Column(name = "status")
+	public String getStatus() {
+		return this.status;
+	}
+
+	public void setStatus(String status) {
+		this.status=status;
+	}
+
+	@Column(name = "created_date")
+	public Date getCreatedDate() {
+		return this.createdDate;
+	}
+
+	public void setCreatedDate(Date createdDate) {
+		this.createdDate=createdDate;
+	}
+
+	@Column(name = "status_date")
+	public Date getStatusDate() {
+		return this.statusDate;
+	}
+
+	public void setStatusDate(Date statusDate) {
+		this.statusDate=statusDate;
+	}
+
 	@ManyToOne(fetch = FetchType.LAZY)
 	@JoinColumn(name = "person_id", nullable = false, foreignKey = @ForeignKey(name = "fk_team_member_person"))
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/entities/WorkEvaluation.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/entities/WorkEvaluation.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/entities/WorkEvaluation.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -107,7 +107,7 @@
 
 	public void setStatus(String status) {
-		this.status = status;
+		this.status=status;
 	}
-	
+
 	@ManyToOne(fetch = FetchType.LAZY)
 	@JoinColumn(name = "work_report_id", nullable = false, foreignKey = @ForeignKey(name = "fk_work_evaluation_work_report"))
Index: eprms-model/src/main/java/info/ajanovski/eprms/model/util/ModelConstants.java
===================================================================
--- eprms-model/src/main/java/info/ajanovski/eprms/model/util/ModelConstants.java	(revision 73b85b3a19fe7eef20717cd24965e39d6a9159d7)
+++ eprms-model/src/main/java/info/ajanovski/eprms/model/util/ModelConstants.java	(revision 84f75dd4ddea77e4b1ee766814d71a8c4e381d15)
@@ -51,3 +51,27 @@
 
 	public static final String CourseUnknown = "CourseNA";
+
+	public static final String TeamMemberRoleCoordinator = "COORDINATOR";
+	public static final String TeamMemberRoleMember = "MEMBER";
+	public static final String TeamMemberRoleSupervisor = "SUPERVISOR";
+
+	public static final String[] AllTeamMemberRoles = { TeamMemberRoleCoordinator, TeamMemberRoleMember,
+			TeamMemberRoleSupervisor };
+
+	public static final String TeamStatusProposed = "PROPOSED";
+	public static final String TeamStatusAccepted = "ACTIVE";
+	public static final String TeamStatusPaused = "PAUSED";
+	public static final String TeamStatusFinished = "FINISHED";
+
+	public static final String[] AllTeamStatuses = { TeamStatusProposed, TeamStatusAccepted, TeamStatusPaused,
+			TeamStatusFinished };
+
+	public static final String TeamMemberStatusProposed = "PROPOSED";
+	public static final String TeamMemberStatusAccepted = "ACTIVE";
+	public static final String TeamMemberStatusPaused = "PAUSED";
+	public static final String TeamMemberStatusFinished = "FINISHED";
+	public static final String TeamMemberStatusQuit = "QUIT";
+
+	public static final String[] AllTeamMemberStatuses = { TeamMemberStatusProposed, TeamMemberStatusAccepted,
+			TeamMemberStatusPaused, TeamMemberStatusFinished, TeamMemberStatusQuit };
 }
