diff --git a/02_UsosMockup/UsosMockup.iml b/02_UsosMockup/UsosMockup.iml
new file mode 100644
index 0000000..c90834f
--- /dev/null
+++ b/02_UsosMockup/UsosMockup.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/02_UsosMockup/src/Main.java b/02_UsosMockup/src/Main.java
new file mode 100644
index 0000000..3e59c38
--- /dev/null
+++ b/02_UsosMockup/src/Main.java
@@ -0,0 +1,5 @@
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/02_UsosMockup/src/net/hypki/UsosMockup/db/Db.java b/02_UsosMockup/src/net/hypki/UsosMockup/db/Db.java
new file mode 100644
index 0000000..9aa3457
--- /dev/null
+++ b/02_UsosMockup/src/net/hypki/UsosMockup/db/Db.java
@@ -0,0 +1,8 @@
+package net.hypki.UsosMockup.db;
+
+import net.hypki.UsosMockup.modelobjects.DbObject;
+
+public interface Db {
+ void save(DbObject value);
+ DbObject get(String key);
+}
diff --git a/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Classroom.java b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Classroom.java
new file mode 100644
index 0000000..41210ec
--- /dev/null
+++ b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Classroom.java
@@ -0,0 +1,32 @@
+package net.hypki.UsosMockup.modelobjects;
+
+public class Classroom extends DbObject {
+ private String location = null;
+
+ private int maxCapacity = 30;
+
+ public Classroom(String location) {
+ this.location = location;
+ }
+
+ public int getMaxCapacity() {
+ return maxCapacity;
+ }
+
+ public void setMaxCapacity(int maxCapacity) {
+ this.maxCapacity = maxCapacity;
+ }
+
+ @Override
+ String getKey() {
+ return getLocation();
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+}
diff --git a/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Course.java b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Course.java
new file mode 100644
index 0000000..a3d2e46
--- /dev/null
+++ b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Course.java
@@ -0,0 +1,57 @@
+package net.hypki.UsosMockup.modelobjects;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Course extends DbObject {
+ private String name = null;
+
+ private int hours = 30;
+
+ private Classroom classroom;
+
+ private List students = null;
+
+ public Course(String name) {
+ this.name = name;
+ }
+
+ public int getHours() {
+ return hours;
+ }
+
+ public void setHours(int hours) {
+ this.hours = hours;
+ }
+
+ public Classroom getClassroom() {
+ return classroom;
+ }
+
+ public void setClassroom(Classroom classroom) {
+ this.classroom = classroom;
+ }
+
+ public List getStudents() {
+ if (students == null)
+ students = new ArrayList<>();
+ return students;
+ }
+
+ public void setStudents(List students) {
+ this.students = students;
+ }
+
+ @Override
+ String getKey() {
+ return getName();
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/DbObject.java b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/DbObject.java
new file mode 100644
index 0000000..ec840b9
--- /dev/null
+++ b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/DbObject.java
@@ -0,0 +1,5 @@
+package net.hypki.UsosMockup.modelobjects;
+
+public abstract class DbObject {
+ abstract String getKey();
+}
diff --git a/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Student.java b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Student.java
new file mode 100644
index 0000000..5c7b567
--- /dev/null
+++ b/02_UsosMockup/src/net/hypki/UsosMockup/modelobjects/Student.java
@@ -0,0 +1,35 @@
+package net.hypki.UsosMockup.modelobjects;
+
+public class Student extends DbObject {
+
+ private String name = null;
+ private String surname = null;
+
+ public Student(String name, String surname) {
+ this.name = name;
+ this.surname = surname;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ // TODO check if it is not empty
+
+ this.name = name;
+ }
+
+ public String getSurname() {
+ return surname;
+ }
+
+ public void setSurname(String surname) {
+ this.surname = surname;
+ }
+
+ @Override
+ String getKey() {
+ return getName() + " " + getSurname();
+ }
+}