diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/src/Course.java b/src/Course.java new file mode 100644 index 0000000000000000000000000000000000000000..4cd8b4713a3ac2acba9290934e4a0a1cde7e73ff --- /dev/null +++ b/src/Course.java @@ -0,0 +1,22 @@ +public class Course +{ + // most attributes are concrete and can't be changed easily without changing the whole system + final private int id; // PK // FK + final private String name; + final private BachelorSemester bachelorSemester; + final private CourseType courseType; + final private double sws; + final private int ects; + private ExamType examType; + + public Course(int id, String name, BachelorSemester bachelorSemester, CourseType courseType, double sws, int ects, ExamType examType) + { + this.id = id; + this.name = name; + this.bachelorSemester = bachelorSemester; + this.courseType = courseType; + this.sws = sws; + this.ects = ects; + this.examType = examType; + } +} diff --git a/src/CourseType.java b/src/CourseType.java new file mode 100644 index 0000000000000000000000000000000000000000..a65aa228c298eeeb894b6b8e6a3582ec778330a6 --- /dev/null +++ b/src/CourseType.java @@ -0,0 +1,7 @@ +public enum CourseType +{ + REQUIRED, + ELECTIVE, + COMPULSORY, + PLV, +} diff --git a/src/ExamType.java b/src/ExamType.java new file mode 100644 index 0000000000000000000000000000000000000000..f3ca07fc35865684d0bd3a8cce4afd4ae0ecabbe --- /dev/null +++ b/src/ExamType.java @@ -0,0 +1,7 @@ +public enum ExamType +{ + WRITTEN, + ORAL, + RESEARCH_PROJECT, + TAKE_HOME; +} diff --git a/src/Gender.java b/src/Gender.java new file mode 100644 index 0000000000000000000000000000000000000000..6cf69eee64195a458ebdd84c66b15e25efa4ccf9 --- /dev/null +++ b/src/Gender.java @@ -0,0 +1,6 @@ +public enum Gender +{ + MALE, + FEMALE, + OTHER; +} diff --git a/src/Lecturer.java b/src/Lecturer.java new file mode 100644 index 0000000000000000000000000000000000000000..db7a49a4a59e97920f4ef339324825ad789f1780 --- /dev/null +++ b/src/Lecturer.java @@ -0,0 +1,14 @@ +public class Lecturer extends Person +{ + public Lecturer(int id, String firstName, String lastName, String placeOfResidence, String birthPlace, + String officialEmail, String privateEmail, boolean isSignedUp, Gender gender, Status status) + { + super(id, firstName, lastName, placeOfResidence, birthPlace, + officialEmail, privateEmail, isSignedUp, gender, status); + } + + public void setGrades() + { + + } +} diff --git a/src/Person.java b/src/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..4e1b1b67f22c258171eac855b63e61da783de1f1 --- /dev/null +++ b/src/Person.java @@ -0,0 +1,40 @@ +import java.util.ArrayList; +import java.util.List; + +public class Person +{ + final private int id; // final for the ID because it will remain the same for the whole duration of studying or being employed + private Status status; + private Gender gender; + private String firstName; + private String lastName; + private String placeOfResidence; + private String birthPlace; + private String officialEmail; + private String privateEmail; + private List<Course> personalCourses = new ArrayList<>(); + private boolean isSignedUp; + + public Person(int id, String firstName, String lastName, String placeOfResidence, String birthPlace, + String officialEmail, String privateEmail, boolean isSignedUp, Gender gender, Status status) + { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + this.placeOfResidence = placeOfResidence; + this.birthPlace = birthPlace; + this.officialEmail = officialEmail; + this.privateEmail = privateEmail; + this.isSignedUp = isSignedUp; + this.gender = gender; + this.status = status; + } + + public boolean SignUpForCourse(Course course) + { + personalCourses.add(course); + + // return status for registration process: was successful or has failed + return isSignedUp; + } +} diff --git a/src/Status.java b/src/Status.java new file mode 100644 index 0000000000000000000000000000000000000000..61c694c326cfa99fcd69eff44d74d47c58ebbb22 --- /dev/null +++ b/src/Status.java @@ -0,0 +1,6 @@ +public enum Status +{ + ENROLLED, + ON_LEAVE, + EXMATRICULATED; +} diff --git a/src/Student.java b/src/Student.java index c47d0443257cc83032397dc878daef3a9dd39c03..602ff3f2667a2efe9b9d2462278b023e5ac06ab2 100644 --- a/src/Student.java +++ b/src/Student.java @@ -1,16 +1,28 @@ import java.util.List; -public class Student +public class Student extends Person { - private int id; + // no static because variables don't make any sense without the created object + private boolean paidFees; + private List<Double> grades; // CourseOfStudy + private BachelorSemester bachelorSemester; + private BachelorDegree bachelorDegree; - public BachelorSemester bachelorSemester; - public BachelorDegree bachelorDegree; - private List<Double> grades; + public Student(int id, String firstName, String lastName, String placeOfResidence, String birthPlace, + String officialEmail, String privateEmail, boolean isSignedUp, Gender gender, Status status, + boolean paidFess, List<Double> grades, BachelorSemester bachelorSemester, BachelorDegree bachelorDegree) + { + super(id, firstName, lastName, placeOfResidence, birthPlace, + officialEmail, privateEmail, isSignedUp, gender, status); + this.paidFees = paidFess; + this.grades = grades; + this.bachelorSemester = bachelorSemester; + this.bachelorDegree = bachelorDegree; + } public List<Double> GetGrades() { - return grades; + return grades; } } \ No newline at end of file