diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c2e74c4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.iml
+.idea
+target
\ No newline at end of file
diff --git a/.mvn/maven.config b/.mvn/maven.config
new file mode 100644
index 0000000..d267dac
--- /dev/null
+++ b/.mvn/maven.config
@@ -0,0 +1,3 @@
+-s.mvn\settings-local.xml
+
+-Dmaven.repo.local=D:\workspace\private\.m2repo
\ No newline at end of file
diff --git a/.mvn/settings-local.xml b/.mvn/settings-local.xml
new file mode 100644
index 0000000..24c1925
--- /dev/null
+++ b/.mvn/settings-local.xml
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-default-http-blocker
+ external:http:*
+ Pseudo repository to mirror external repositories initially using HTTP.
+ http://0.0.0.0/
+ true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/agiledancers-be/pom.xml b/agiledancers-be/pom.xml
new file mode 100644
index 0000000..477cbba
--- /dev/null
+++ b/agiledancers-be/pom.xml
@@ -0,0 +1,23 @@
+
+
+ 4.0.0
+
+
+ nl.agilecc.agiledancers
+ agiledancers
+ 1.0-SNAPSHOT
+
+
+ agiledancers-be
+ jar
+
+
+
+ com.google.ortools
+ ortools-java
+
+
+
+
\ No newline at end of file
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/Main.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/Main.java
new file mode 100644
index 0000000..00ddbb4
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/Main.java
@@ -0,0 +1,17 @@
+package nl.agilecc.agiledancers;
+
+//TIP To Run code, press or
+// click the icon in the gutter.
+public class Main {
+ public static void main(String[] args) {
+ //TIP Press with your caret at the highlighted text
+ // to see how IntelliJ IDEA suggests fixing it.
+ System.out.printf("Hello and welcome!");
+
+ for (int i = 1; i <= 5; i++) {
+ //TIP Press to start debugging your code. We have set one breakpoint
+ // for you, but you can always add more by pressing .
+ System.out.println("i = " + i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Coach.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Coach.java
new file mode 100644
index 0000000..f008c3c
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Coach.java
@@ -0,0 +1,6 @@
+package nl.agilecc.agiledancers.model;
+
+public class Coach {
+ private Long id;
+ private String name;
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DanceGroup.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DanceGroup.java
new file mode 100644
index 0000000..5914190
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DanceGroup.java
@@ -0,0 +1,17 @@
+package nl.agilecc.agiledancers.model;
+
+import nl.agilecc.agiledancers.model.specifications.DanceGroupStyle;
+import nl.agilecc.agiledancers.model.specifications.DanceGroupType;
+
+import java.util.Set;
+
+public class DanceGroup {
+ private Long id;
+ private String category;
+ private DanceGroupType type;
+ private int startAge;
+ private int endAge;
+ private Set dancers;
+ private Set styles;
+ private Coach coach;
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Dancer.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Dancer.java
new file mode 100644
index 0000000..5b3dfec
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Dancer.java
@@ -0,0 +1,7 @@
+package nl.agilecc.agiledancers.model;
+
+public class Dancer {
+ private Long id;
+ private String name;
+ private int age;
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DayPart.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DayPart.java
new file mode 100644
index 0000000..ba068f5
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/DayPart.java
@@ -0,0 +1,12 @@
+package nl.agilecc.agiledancers.model;
+
+import nl.agilecc.agiledancers.model.specifications.DayPartType;
+
+import java.util.List;
+
+public class DayPart {
+ private Long id;
+
+ private DayPartType type;
+ private List danceGroups;
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Show.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Show.java
new file mode 100644
index 0000000..b23a772
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/Show.java
@@ -0,0 +1,8 @@
+package nl.agilecc.agiledancers.model;
+
+import java.util.List;
+
+public class Show {
+ private Long id;
+ private List dayParts;
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupStyle.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupStyle.java
new file mode 100644
index 0000000..daa408c
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupStyle.java
@@ -0,0 +1,5 @@
+package nl.agilecc.agiledancers.model.specifications;
+
+public enum DanceGroupStyle {
+ HIPHOP, JAZZ, MODERN, STREETDANCE, CLASSIC, BREAKDANCE
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupType.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupType.java
new file mode 100644
index 0000000..0c494ae
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DanceGroupType.java
@@ -0,0 +1,18 @@
+package nl.agilecc.agiledancers.model.specifications;
+
+import lombok.Getter;
+
+public enum DanceGroupType {
+ SHOW_CASE(3),
+ PRE_EDUCATION(1), // TODO check if this is one group mentioned with different docent each time, or three different groups - and thus if they are required 1 day or 3
+ SELECTION(2),
+ REGULAR(2),
+ PRE_SCHOOLER(1);
+
+ @Getter
+ private int dayPartsRequired;
+
+ DanceGroupType(int dayPartsRequired) {
+ this.dayPartsRequired = dayPartsRequired;
+ }
+}
diff --git a/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DayPartType.java b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DayPartType.java
new file mode 100644
index 0000000..7bfdefa
--- /dev/null
+++ b/agiledancers-be/src/main/java/nl/agilecc/agiledancers/model/specifications/DayPartType.java
@@ -0,0 +1,5 @@
+package nl.agilecc.agiledancers.model.specifications;
+
+public enum DayPartType {
+ MORNING, AFTERNOON, EVENING;
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..eb10361
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,51 @@
+
+
+ 4.0.0
+
+ nl.agilecc.agiledancers
+ agiledancers
+ 1.0-SNAPSHOT
+ pom
+
+ Agile Dancers
+ To map multiple dance groups to multiple dance performance dayparts with respect to certain constraints.
+
+
+ agiledancers-be
+
+
+
+
+
+ 21
+ 21
+ UTF-8
+ UTF-8
+
+ 9.12.4544
+ 1.18.38
+
+
+
+
+
+
+ com.google.ortools
+ ortools-java
+ ${ortools-java.version}
+
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
\ No newline at end of file