From 7119dcf160dfed1f502f39a40cfac20c021f9c38 Mon Sep 17 00:00:00 2001 From: RandomCyberCoder Date: Tue, 5 May 2026 09:35:39 -0700 Subject: [PATCH 1/5] example files for input --- ...PrescheduledTimes_ExampleFile.example.json | 71 +++++++++++++++++++ .../input/schedule-term-cpe.example.json | 18 +++++ .../resources/input/term_survey.example.csv | 44 ++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 java/hello-world/src/main/resources/input/PrescheduledTimes_ExampleFile.example.json create mode 100644 java/hello-world/src/main/resources/input/schedule-term-cpe.example.json create mode 100644 java/hello-world/src/main/resources/input/term_survey.example.csv diff --git a/java/hello-world/src/main/resources/input/PrescheduledTimes_ExampleFile.example.json b/java/hello-world/src/main/resources/input/PrescheduledTimes_ExampleFile.example.json new file mode 100644 index 00000000..c8a6180d --- /dev/null +++ b/java/hello-world/src/main/resources/input/PrescheduledTimes_ExampleFile.example.json @@ -0,0 +1,71 @@ +{ + "LastName, FirstName": [ + { + "start": "10:00AM", + "day": "MONDAY", + "end": "12:00PM" + }, + { + "start": "10:00AM", + "day": "WEDNESDAY", + "end": "12:00PM" + }, + { + "start": "10:00AM", + "day": "FRIDAY", + "end": "12:00PM" + }, + { + "start": "4:00PM", + "day": "MONDAY", + "end": "6:00PM" + }, + { + "start": "4:00PM", + "day": "WEDNESDAY", + "end": "6:00PM" + }, + { + "start": "4:00PM", + "day": "FRIDAY", + "end": "6:00PM" + }, + { + "start": "12:00PM", + "day": "MONDAY", + "end": "2:00PM" + }, + { + "start": "12:00PM", + "day": "WEDNESDAY", + "end": "2:00PM" + }, + { + "start": "12:00PM", + "day": "FRIDAY", + "end": "2:00PM" + } + ], + "LastName2, FirstName2": [ + { + "start": "9:00AM", + "day": "MONDAY", + "end": "10:30AM" + }, + { + "start": "9:00AM", + "day": "WEDNESDAY", + "end": "10:30AM" + }, + { + "start": "11:00AM", + "day": "MONDAY", + "end": "1:00PM" + }, + { + "start": "11:00AM", + "day": "WEDNESDAY", + "end": "1:00PM" + } + ] +} \ No newline at end of file diff --git a/java/hello-world/src/main/resources/input/schedule-term-cpe.example.json b/java/hello-world/src/main/resources/input/schedule-term-cpe.example.json new file mode 100644 index 00000000..02b9d7e3 --- /dev/null +++ b/java/hello-world/src/main/resources/input/schedule-term-cpe.example.json @@ -0,0 +1,18 @@ +[ + { + "name": "LastName, FirstName", + "fall": [], + "spring": [ + "cpe470" + ] + }, + { + "name": "LastName2, FirstName2", + "fall": [ + "cpe426" + ], + "spring": [ + "cpe333" + ] + } +] \ No newline at end of file diff --git a/java/hello-world/src/main/resources/input/term_survey.example.csv b/java/hello-world/src/main/resources/input/term_survey.example.csv new file mode 100644 index 00000000..e39f97ca --- /dev/null +++ b/java/hello-world/src/main/resources/input/term_survey.example.csv @@ -0,0 +1,44 @@ +Id,Start time,Completion time,Email,Name,"This is all new, no rolling forward","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.7-8 am","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.8-9 am","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.9-10 am","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.10-11 am","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.11-12 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.12-1 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.1-2 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.2-3 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.3-4 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.4-5 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.5-6 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.6-7 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.7-8 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.8-9 pm","M Teaching Times, if you are tenure track, select conflict 11-12 pm for committee meetings +.9-10 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.7-8 am","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.8-9 am","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.9-10 am","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.10-11 am","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.11-12 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.12-1 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.1-2 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.2-3 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.3-4 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.4-5 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.5-6 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.6-7 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.7-8 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.8-9 pm","T Teaching Times, CSSE folks conflict 11 am for the faculty meeting.9-10 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.7-8 am","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.8-9 am","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.9-10 am","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.10-11 am","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.11-12 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.12-1 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.1-2 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.2-3 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.3-4 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.4-5 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.5-6 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.6-7 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.7-8 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.8-9 pm","W Teaching Times, CPE folks conflict 11 am for the faculty meeting +.9-10 pm",R (Thursday) Teaching Times.7-8 am,R (Thursday) Teaching Times.8-9 am,R (Thursday) Teaching Times.9-10 am,R (Thursday) Teaching Times.10-11 am,R (Thursday) Teaching Times.11-12 pm,R (Thursday) Teaching Times.12-1 pm,R (Thursday) Teaching Times.1-2 pm,R (Thursday) Teaching Times.2-3 pm,R (Thursday) Teaching Times.3-4 pm,R (Thursday) Teaching Times.4-5 pm,R (Thursday) Teaching Times.5-6 pm,R (Thursday) Teaching Times.6-7 pm,R (Thursday) Teaching Times.7-8 pm,R (Thursday) Teaching Times.8-9 pm,R (Thursday) Teaching Times.9-10 pm,"F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.7-8 am","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.8-9 am","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.9-10 am","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.10-11 am","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.11-12 am","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.12-1 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.1-2 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.2-3 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.3-4 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.4-5 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.5-6 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.6-7 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.7-8 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.8-9 pm","F Teaching Times, 11AM -12 PM is UU hour, everyone should select conflict.9-10 pm","My preference is to...  +Note: this is informational only, I don't understand the semester schedules enough to automate this yet.Minimize teaching days","My preference is to...  +Note: this is informational only, I don't understand the semester schedules enough to automate this yet.Teach all 5 days","My preference is to...  +Note: this is informational only, I don't understand the semester schedules enough to automate this yet.Minimize teaching time per day (i.e. spread classes out)","Given the choice, I would prefer +.Courses back-to-back, e.g. 8-10 and 10-12","Given the choice, I would prefer +.At least some gap between courses, e.g. at least 1 hour between courses","Teaching a 2 lecture 1 activity course, I'd... +Note: this is informational only, activities in the first year will be scheduled in some pattern according to lab room availability.Prefer 1 hour of lect","Teaching a 2 lecture 1 activity course, I'd... +Note: this is informational only, activities in the first year will be scheduled in some pattern according to lab room availability.Prefer a 2 hour activ","Teaching a 2 lecture 1 activity course, I'd... +Note: this is informational only, activities in the first year will be scheduled in some pattern according to lab room availability.Do not care","Teaching a 2 lecture 1 activity course, I'd... +Note: this is informational only, activities in the first year will be scheduled in some pattern according to lab room availability.Am not sure which I'd","Are there constraints you have that don't fit this format? +","For each of the courses you are teaching in the specified semester, do you have a room requirement? I.e. the course must be taught in the room due to equipment concerns? (Note that we do not have much","For the courses you are teaching in the specified semester, do you have a room preference? (Note that we do not have much control over lecture rooms and scheduling lectures in lab rooms from 8am to 3p","Any other thoughts/questions/comments/concerns? +","This survey is +" +7,1/9/2026 11:59,1/9/2026 12:01,polyEmail@calpoly.edu,FirstName LastName,Place holder for the future,,,,,,,,,,,,,,,,Acceptable,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,,,,,,,,,,,,,,,,,,,,,Acceptable,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Preferred,Conflict,,,,,,,,,,,,,,,,,,,,Agree,Disagree,Disagree,Agree,Neutral,Agree,Neutral,Neutral,,,"CPE 4250, I prefer 192-332",,,5 From 96924a5ac7b871cb6075670455612e3ec92b2f1c Mon Sep 17 00:00:00 2001 From: RandomCyberCoder Date: Tue, 5 May 2026 10:07:03 -0700 Subject: [PATCH 2/5] real and example input files given --- .../constants/Constants.java | 2 +- .../resources/constants/config.example.yaml | 12 ++ .../resources/constants/possibleTimes.csv | 171 ++++++++++++++++ .../constants/semester-configurations.tsv | 184 ++++++++++++++++++ 4 files changed, 368 insertions(+), 1 deletion(-) create mode 100644 java/hello-world/src/main/resources/constants/config.example.yaml create mode 100644 java/hello-world/src/main/resources/constants/possibleTimes.csv create mode 100644 java/hello-world/src/main/resources/constants/semester-configurations.tsv diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java index 8cfde997..dda29508 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java @@ -247,7 +247,7 @@ public class Constants { FACULTY_LAST_NAMES = ParseInput.getFaculty("constants/faculty_website_list.tsv"); - TEACHER_NAME_TO_CANON = getInstructorNameMapping("constants/faculty_names_new.xlsx"); + TEACHER_NAME_TO_CANON = getInstructorNameMapping("constants/name_mappings.xlsx"); } private Constants(){ diff --git a/java/hello-world/src/main/resources/constants/config.example.yaml b/java/hello-world/src/main/resources/constants/config.example.yaml new file mode 100644 index 00000000..562a9580 --- /dev/null +++ b/java/hello-world/src/main/resources/constants/config.example.yaml @@ -0,0 +1,12 @@ +department: "csc" +curTerm: "2268" +prevTerm: "2264" +seasonTerm: "fall" +testing: false +useApi: true +# ------- Optional ------- +# this setting changes how we model the PrimeTime constraint +aggressiveChoice: "AGGRESSIVE_PENALTY" +compressStart: "7:00AM" +compressEnd: "6:00PM" +prescheduledFileName: "PrescheduledTimes_ExampleFile.example.json" \ No newline at end of file diff --git a/java/hello-world/src/main/resources/constants/possibleTimes.csv b/java/hello-world/src/main/resources/constants/possibleTimes.csv new file mode 100644 index 00000000..861de1c1 --- /dev/null +++ b/java/hello-world/src/main/resources/constants/possibleTimes.csv @@ -0,0 +1,171 @@ +days, time_start, time_end, lecture_hours, total_hours, lab_days, lab_start, lab_end, lab_hours +MWF, 7:00AM, 9:00AM, 1, 2,,,, +MWF, 8:00AM, 10:00AM, 1, 2,,,, +MWF, 9:00AM, 11:00AM, 1, 2,,,, +MWF, 10:00AM, 12:00PM, 1, 2,,,, +MWF, 11:00AM, 1:00PM, 1, 2,,,, +MWF, 12:00PM, 2:00PM, 1, 2,,,, +MWF, 1:00PM, 3:00PM, 1, 2,,,, +MWF, 2:00PM, 4:00PM, 1, 2,,,, +MWF, 3:00PM, 5:00PM, 1, 2,,,, +MWF, 4:00PM, 6:00PM, 1, 2,,,, +MWF, 5:00PM, 7:00PM, 1, 2,,,, +MWF, 6:00PM, 8:00PM, 1, 2,,,, +MWF, 7:00AM, 8:00AM, 1, 1,,,, +MWF, 8:00AM, 9:00AM, 1, 1,,,, +MWF, 9:00AM, 10:00AM, 1, 1,,,, +MWF, 10:00AM, 11:00AM, 1, 1,,,, +MWF, 12:00PM, 1:00PM, 1, 1,,,, +MWF, 1:00PM, 2:00PM, 1, 1,,,, +MWF, 2:00PM, 3:00PM, 1, 1,,,, +MWF, 3:00PM, 4:00PM, 1, 1,,,, +MWF, 4:00PM, 5:00PM, 1, 1,,,, +MWF, 5:00PM, 6:00PM, 1, 1,,,, +MWF, 6:00PM, 7:00PM, 1, 1,,,, +MWF, 7:00PM, 8:00PM, 1, 1,,,, +MWF, 8:00PM, 9:00PM, 1, 1,,,, +MTWR, 7:00AM, 8:00AM, 1, 1,,,, +MTWR, 8:00AM, 9:00AM, 1, 1,,,, +MTWR, 9:00AM, 10:00AM, 1, 1,,,, +MTWR, 10:00AM, 11:00AM, 1, 1,,,, +MTWR, 11:00AM, 12:00PM, 1, 1,,,, +MTWR, 12:00PM, 1:00PM, 1, 1,,,, +MTWR, 1:00PM, 2:00PM, 1, 1,,,, +MTWR, 2:00PM, 3:00PM, 1, 1,,,, +MTWR, 3:00PM, 4:00PM, 1, 1,,,, +MTWR, 4:00PM, 5:00PM, 1, 1,,,, +MTWR, 5:00PM, 6:00PM, 1, 1,,,, +MTWR, 6:00PM, 7:00PM, 1, 1,,,, +MTWR, 7:00PM, 8:00PM, 1, 1,,,, +MTWR, 8:00PM, 9:00PM, 1, 1,,,, +MW, 7:00AM, 8:00AM, 1, 1, MW, 8:00AM, 9:00AM, 1 +MW, 8:00AM, 9:00AM, 1, 1, MW, 9:00AM, 10:00AM, 1 +MW, 9:00AM, 10:00AM, 1, 1, MW, 10:00AM, 11:00AM, 1 +MW, 10:00AM, 11:00AM, 1, 1, MW, 11:00AM, 12:00PM, 1 +MW, 11:00AM, 12:00PM, 1, 1, MW, 12:00PM, 1:00PM, 1 +MW, 12:00PM, 1:00PM, 1, 1, MW, 1:00PM, 2:00PM, 1 +MW, 1:00PM, 2:00PM, 1, 1, MW, 2:00PM, 3:00PM, 1 +MW, 2:00PM, 3:00PM, 1, 1, MW, 3:00PM, 4:00PM, 1 +MW, 3:00PM, 4:00PM, 1, 1, MW, 4:00PM, 5:00PM, 1 +MW, 4:00PM, 5:00PM, 1, 1, MW, 5:00PM, 6:00PM, 1 +MW, 5:00PM, 6:00PM, 1, 1, MW, 6:00PM, 7:00PM, 1 +MW, 6:00PM, 7:00PM, 1, 1, MW, 7:00PM, 8:00PM, 1 +MW, 7:00PM, 8:00PM, 1, 1, MW, 8:00PM, 9:00PM, 1 +TR, 7:00AM, 8:00AM, 1, 1, TR, 8:00AM, 9:00AM, 1 +TR, 8:00AM, 9:00AM, 1, 1, TR, 9:00AM, 10:00AM, 1 +TR, 9:00AM, 10:00AM, 1, 1, TR, 10:00AM, 11:00AM, 1 +TR, 10:00AM, 11:00AM, 1, 1, TR, 11:00AM, 12:00PM, 1 +TR, 11:00AM, 12:00PM, 1, 1, TR, 12:00PM, 1:00PM, 1 +TR, 12:00PM, 1:00PM, 1, 1, TR, 1:00PM, 2:00PM, 1 +TR, 1:00PM, 2:00PM, 1, 1, TR, 2:00PM, 3:00PM, 1 +TR, 2:00PM, 3:00PM, 1, 1, TR, 3:00PM, 4:00PM, 1 +TR, 3:00PM, 4:00PM, 1, 1, TR, 4:00PM, 5:00PM, 1 +TR, 4:00PM, 5:00PM, 1, 1, TR, 5:00PM, 6:00PM, 1 +TR, 5:00PM, 6:00PM, 1, 1, TR, 6:00PM, 7:00PM, 1 +TR, 6:00PM, 7:00PM, 1, 1, TR, 7:00PM, 8:00PM, 1 +TR, 7:00PM, 8:00PM, 1, 1, TR, 8:00PM, 9:00PM, 1 +WF, 7:00AM, 8:00AM, 1, 1, WF, 8:00AM, 9:00AM, 1 +WF, 8:00AM, 9:00AM, 1, 1, WF, 9:00AM, 10:00AM, 1 +WF, 9:00AM, 10:00AM, 1, 1, WF, 10:00AM, 11:00AM, 1 +WF, 10:00AM, 11:00AM, 1, 1, WF, 11:00AM, 12:00PM, 1 +WF, 12:00PM, 1:00PM, 1, 1, WF, 1:00PM, 2:00PM, 1 +WF, 1:00PM, 2:00PM, 1, 1, WF, 2:00PM, 3:00PM, 1 +WF, 2:00PM, 3:00PM, 1, 1, WF, 3:00PM, 4:00PM, 1 +WF, 3:00PM, 4:00PM, 1, 1, WF, 4:00PM, 5:00PM, 1 +WF, 4:00PM, 5:00PM, 1, 1, WF, 5:00PM, 6:00PM, 1 +WF, 5:00PM, 6:00PM, 1, 1, WF, 6:00PM, 7:00PM, 1 +WF, 6:00PM, 7:00PM, 1, 1, WF, 7:00PM, 8:00PM, 1 +WF, 7:00PM, 8:00PM, 1, 1, WF, 8:00PM, 9:00PM, 1 +MW, 7:30AM, 9:00AM, 1.5, 1.5, MW, 9:00AM, 10:30AM, 1.5 +MW, 9:00AM, 10:30AM, 1.5, 1.5, MW, 10:30AM, 12:00PM, 1.5 +MW, 10:30AM, 12:00PM, 1.5, 1.5, MW, 12:00PM, 1:30PM, 1.5 +MW, 12:00PM, 1:30PM, 1.5, 1.5, MW, 1:30PM, 3:00PM, 1.5 +MW, 1:30PM, 3:00PM, 1.5, 1.5, MW, 3:00PM, 4:30PM, 1.5 +MW, 3:00PM, 4:30PM, 1.5, 1.5, MW, 4:30PM, 6:00PM, 1.5 +MW, 4:30PM, 6:00PM, 1.5, 1.5, MW, 6:00PM, 7:30PM, 1.5 +MW, 6:00PM, 7:30PM, 1.5, 1.5, MW, 7:30PM, 9:00PM, 1.5 +TR, 7:30AM, 9:00AM, 1.5, 1.5, TR, 9:00AM, 10:30AM, 1.5 +TR, 9:00AM, 10:30AM, 1.5, 1.5, TR, 10:30AM, 12:00PM, 1.5 +TR, 10:30AM, 12:00PM, 1.5, 1.5, TR, 12:00PM, 1:30PM, 1.5 +TR, 12:00PM, 1:30PM, 1.5, 1.5, TR, 1:30PM, 3:00PM, 1.5 +TR, 1:30PM, 3:00PM, 1.5, 1.5, TR, 3:00PM, 4:30PM, 1.5 +TR, 3:00PM, 4:30PM, 1.5, 1.5, TR, 4:30PM, 6:00PM, 1.5 +TR, 4:30PM, 6:00PM, 1.5, 1.5, TR, 6:00PM, 7:30PM, 1.5 +TR, 6:00PM, 7:30PM, 1.5, 1.5, TR, 7:30PM, 9:00PM, 1.5 +WF, 7:30AM, 9:00AM, 1.5, 1.5, WF, 9:00AM, 10:30AM, 1.5 +WF, 9:00AM, 10:30AM, 1.5, 1.5, WF, 10:30AM, 12:00PM, 1.5 +WF, 12:00PM, 1:30PM, 1.5, 1.5, WF, 1:30PM, 3:00PM, 1.5 +WF, 1:30PM, 3:00PM, 1.5, 1.5, WF, 3:00PM, 4:30PM, 1.5 +WF, 3:00PM, 4:30PM, 1.5, 1.5, WF, 4:30PM, 6:00PM, 1.5 +WF, 4:30PM, 6:00PM, 1.5, 1.5, WF, 6:00PM, 7:30PM, 1.5 +WF, 6:00PM, 7:30PM, 1.5, 1.5, WF, 7:30PM, 9:00PM, 1.5 +F, 7:00AM, 8:00AM, 1, 1,,,, +F, 8:00AM, 9:00AM, 1, 1,,,, +F, 9:00AM, 10:00AM, 1, 1,,,, +F, 10:00AM, 11:00AM, 1, 1,,,, +F, 12:00PM, 1:00PM, 1, 1,,,, +F, 1:00PM, 2:00PM, 1, 1,,,, +F, 2:00PM, 3:00PM, 1, 1,,,, +F, 3:00PM, 4:00PM, 1, 1,,,, +F, 4:00PM, 5:00PM, 1, 1,,,, +F, 5:00PM, 6:00PM, 1, 1,,,, +F, 6:00PM, 7:00PM, 1, 1,,,, +F, 7:00PM, 8:00PM, 1, 1,,,, +F, 8:00PM, 9:00PM, 1, 1,,,, +R, 7:00AM, 8:00AM, 1, 1,,,, +R, 8:00AM, 9:00AM, 1, 1,,,, +R, 9:00AM, 10:00AM, 1, 1,,,, +R, 10:00AM, 11:00AM, 1, 1,,,, +R, 11:00AM, 12:00PM, 1, 1,,,, +R, 12:00PM, 1:00PM, 1, 1,,,, +R, 1:00PM, 2:00PM, 1, 1,,,, +R, 2:00PM, 3:00PM, 1, 1,,,, +R, 3:00PM, 4:00PM, 1, 1,,,, +R, 4:00PM, 5:00PM, 1, 1,,,, +R, 5:00PM, 6:00PM, 1, 1,,,, +R, 6:00PM, 7:00PM, 1, 1,,,, +R, 7:00PM, 8:00PM, 1, 1,,,, +R, 8:00PM, 9:00PM, 1, 1,,,, +MW, 8:00AM, 10:00AM, 2, 2,,,, +MW, 10:00AM, 12:00PM, 2, 2,,,, +MW, 12:00PM, 2:00PM, 2, 2,,,, +MW, 2:00PM, 4:00PM, 2, 2,,,, +MW, 4:00PM, 6:00PM, 2, 2,,,, +MW, 6:00PM, 8:00PM, 2, 2,,,, +WF, 8:00AM, 10:00AM, 2, 2,,,, +WF, 12:00PM, 2:00PM, 2, 2,,,, +WF, 2:00PM, 4:00PM, 2, 2,,,, +WF, 4:00PM, 6:00PM, 2, 2,,,, +WF, 6:00PM, 8:00PM, 2, 2,,,, +TR, 8:00AM, 10:00AM, 2, 2,,,, +TR, 10:00AM, 12:00PM, 2, 2,,,, +TR, 12:00PM, 2:00PM, 2, 2,,,, +TR, 2:00PM, 4:00PM, 2, 2,,,, +TR, 4:00PM, 6:00PM, 2, 2,,,, +TR, 6:00PM, 8:00PM, 2, 2,,,, +MW, 7:30AM, 9:00AM, 1.5, 1.5,,,, +MW, 9:00AM, 10:30AM, 1.5, 1.5,,,, +MW, 10:30AM, 12:00PM, 1.5, 1.5,,,, +MW, 12:00PM, 1:30PM, 1.5, 1.5,,,, +MW, 1:30PM, 3:00PM, 1.5, 1.5,,,, +MW, 3:00PM, 4:30PM, 1.5, 1.5,,,, +MW, 4:30PM, 6:00PM, 1.5, 1.5,,,, +MW, 6:00PM, 7:30PM, 1.5, 1.5,,,, +MW, 7:30PM, 9:00PM, 1.5, 1.5,,,, +WF, 7:30AM, 9:00AM, 1.5, 1.5,,,, +WF, 9:00AM, 10:30AM, 1.5, 1.5,,,, +WF, 12:00PM, 1:30PM, 1.5, 1.5,,,, +WF, 1:30PM, 3:00PM, 1.5, 1.5,,,, +WF, 3:00PM, 4:30PM, 1.5, 1.5,,,, +WF, 4:30PM, 6:00PM, 1.5, 1.5,,,, +WF, 6:00PM, 7:30PM, 1.5, 1.5,,,, +WF, 7:30PM, 9:00PM, 1.5, 1.5,,,, +TR, 7:30AM, 9:00AM, 1.5, 1.5,,,, +TR, 9:00AM, 10:30AM, 1.5, 1.5,,,, +TR, 10:30AM, 12:00PM, 1.5, 1.5,,,, +TR, 12:00PM, 1:30PM, 1.5, 1.5,,,, +TR, 1:30PM, 3:00PM, 1.5, 1.5,,,, +TR, 3:00PM, 4:30PM, 1.5, 1.5,,,, +TR, 4:30PM, 6:00PM, 1.5, 1.5,,,, +TR, 6:00PM, 7:30PM, 1.5, 1.5,,,, +TR, 7:30PM, 9:00PM, 1.5, 1.5,,,, diff --git a/java/hello-world/src/main/resources/constants/semester-configurations.tsv b/java/hello-world/src/main/resources/constants/semester-configurations.tsv new file mode 100644 index 00000000..15974048 --- /dev/null +++ b/java/hello-world/src/main/resources/constants/semester-configurations.tsv @@ -0,0 +1,184 @@ +csc1000 1-0-0 +csc1001 3-1-0 +csc1001L 0-1-0 +csc1024 1-0-1 +csc1031 0-0-2 +csc1032 2-0-1 +csc2001 3-1-0 +csc2001L 0-1-0 +csc2050 2-0-1 +csc2092 4-0-0 +csc2200 3-0-0 +csc2270 various +csc2292 various +cpe2300 3-0-0 +csc2600 2-0-1 +csc3000 3-0-0 +csc3001 3-1-0 +csc3044 Lecture_with_Lab +csc3100 3-1-0 +csc3104 2-0-1 +csc3111 2-0-1 +csc3112 2-0-1 +csc3113 2-0-1 +csc3200 2-0-1 +csc3201 3-0-0 +csc3203 1-0-1 +csc3250 1-0-1 +csc3300 2-0-1 +csc3445 3-0-0 +csc3449 4-0-0 +csc3660 1-0-1 +csc3662 1-0-1 +csc3665 3-1-0 +csc3710 1-0-0 +csc3760 2-0-1 +csc3780 3-1-0 +csc4036 2-0-1 +csc4037 2-0-1 +csc4091 1-0-0 +csc4092 various +csc4093 various +csc4100 3-1-0 +csc4160 3-1-0 +csc4161 3-1-0 +csc4170 various +csc4184 2-0-1 +csc4186 2-0-1 +csc4191 1-0-0 +csc4192 various +csc4193 various +csc4210 2-1-0 +csc4212 2-0-1 +csc4214 1-0-0 +cpe4220 2-0-1 +cpe4225 2-0-1 +csc4230 2-0-1 +csc4260 2-1-0 +csc4261 2-1-0 +csc4270 various +csc4291 1-0-0 +csc4292 various +csc4293 various +csc4310 2-0-1 +csc4400 Independent_Study +csc4431 1-0-2 +csc4432 1-0-2 +csc4448 4-0-0 +csc4460 Independent_Study +csc4461 Independent_Study +csc4470 various +csc4471 Lab_only +csc4472 Activity_only +csc4495 Independent_Study +csc4553 2-0-1 +csc4554 4-0-0 +cpe4669 3-1-0 +csc4570 various +csc4610 3-1-0 +csc4620 3-1-0 +csc4665 3-1-0 +csc4667 3-1-0 +csc4691 Seminar_only +csc4692 Lecture_only +csc4693 Lecture_only +csc4710 2-1-0 +csc4730 2-0-1 +csc4740 2-1-0 +csc4760 2-1-0 +csc4770 various +csc4791 1-0-0 +csc4792 various +csc4793 various +csc4820 3-1-0 +csc4821 Lecture_with_Lab +csc4880 3-1-0 +csc4881 3-1-0 +csc4888 3-1-0 +csc4891 1-0-0 +csc4892 Lecture_only +csc4893 Lecture_only +csc4991 1-0-0 +csc4992 Lecture_only +csc4993 Lecture_only +csc5092 Lecture_only +csc5100 3-0-0 +csc5113 3-0-0 +csc5170 Lecture_only +csc5201 3-0-0 +csc5210 3-0-0 +csc5220 3-0-0 +csc5270 various +csc5281 2-0-1 +csc5292 Lecture_only +cpe5300 2-0-1 +csc5300 Lecture_only +csc5370 various +csc5445 2-0-0 +csc5447 2-0-0 +csc5449 4-0-0 +csc5500 Independent_Study +csc5550 3-0-0 +csc5570 various +csc5571 Lab_only +csc5572 Activity_only +csc5590 3-0-0 +csc5591 Independent_Study +csc5595 Independent_Study +csc5599 Independent_Study +cpe5640 Lecture_only +csc5660 4-0-0 +csc5666 4-0-0 +csc5669 3-1-0 +csc5670 various +csc5710 2-1-0 +csc5740 2-1-0 +csc5770 various +csc5810 Lecture_with_Lab +csc5820 3-1-0 +csc5870 various +csc5880 3-1-0 +csc5887 4-0-0 +cpe1000 1-0-0 +cpe2300 3-0-0 +cpe2301 0-1-0 +cpe3160 2-0-1 +cpe3201 3-0-0 +cpe3300 3-1-0 +cpe3345 2-0-1 +cpe4140 2-0-1 +cpe4160 3-1-0 +cpe4180 2-0-1 +cpe4190 3-1-0 +cpe4220 2-0-1 +cpe4250 2-0-1 +cpe4260 2-1-0 +cpe4261 2-1-0 +cpe4280 2-0-1 +cpe4300 3-1-0 +cpe4310 2-0-1 +cpe4390 2-0-1 +cpe4400 nonstandard +cpe4420 2-0-1 +cpe4455 3-1-0 +cpe4460 1-2-0 +cpe4461 1-2-0 +cpe4464 2-1-0 +cpe4465 2-0-1 +cpe4470 various +cpe4471 various +cpe4472 nonstandard +cpe4491 1-0-0 +cpe4492 various +cpe4493 various +cpe4495 nonstandard +cpe4553 2-0-1 +cpe4570 various +cpe4650 2-1-0 +cpe4669 3-1-0 +cpe4995 various +cpe5300 3-0-0 +cpe5350 2-0-1 +cpe5420 3-1-0 +cpe5564 3-0-0 +cpe5660 2-0-1 From 98e510f49fc2f9e3e10c0365a0d922c861835294 Mon Sep 17 00:00:00 2001 From: RandomCyberCoder Date: Tue, 5 May 2026 10:25:57 -0700 Subject: [PATCH 3/5] other file examples and small tweaks --- generated/README | 3 +- generated/scheduled_times_dump.example.json | 71 ++++++++++++++++++ generated/term_department_solution.xlsx | Bin 0 -> 12441 bytes .../src/main/resources/.example.env | 2 + 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 generated/scheduled_times_dump.example.json create mode 100644 generated/term_department_solution.xlsx create mode 100644 java/hello-world/src/main/resources/.example.env diff --git a/generated/README b/generated/README index 5829e8ff..f6bee811 100644 --- a/generated/README +++ b/generated/README @@ -1 +1,2 @@ -Generated solutions should go here \ No newline at end of file +Generated solutions should be place here and the file dump with the json representation of when instructors were +scheduled this quarter \ No newline at end of file diff --git a/generated/scheduled_times_dump.example.json b/generated/scheduled_times_dump.example.json new file mode 100644 index 00000000..c8a6180d --- /dev/null +++ b/generated/scheduled_times_dump.example.json @@ -0,0 +1,71 @@ +{ + "LastName, FirstName": [ + { + "start": "10:00AM", + "day": "MONDAY", + "end": "12:00PM" + }, + { + "start": "10:00AM", + "day": "WEDNESDAY", + "end": "12:00PM" + }, + { + "start": "10:00AM", + "day": "FRIDAY", + "end": "12:00PM" + }, + { + "start": "4:00PM", + "day": "MONDAY", + "end": "6:00PM" + }, + { + "start": "4:00PM", + "day": "WEDNESDAY", + "end": "6:00PM" + }, + { + "start": "4:00PM", + "day": "FRIDAY", + "end": "6:00PM" + }, + { + "start": "12:00PM", + "day": "MONDAY", + "end": "2:00PM" + }, + { + "start": "12:00PM", + "day": "WEDNESDAY", + "end": "2:00PM" + }, + { + "start": "12:00PM", + "day": "FRIDAY", + "end": "2:00PM" + } + ], + "LastName2, FirstName2": [ + { + "start": "9:00AM", + "day": "MONDAY", + "end": "10:30AM" + }, + { + "start": "9:00AM", + "day": "WEDNESDAY", + "end": "10:30AM" + }, + { + "start": "11:00AM", + "day": "MONDAY", + "end": "1:00PM" + }, + { + "start": "11:00AM", + "day": "WEDNESDAY", + "end": "1:00PM" + } + ] +} \ No newline at end of file diff --git a/generated/term_department_solution.xlsx b/generated/term_department_solution.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ef631ee6bb3220f95ae54b09f59b8e37953f180b GIT binary patch literal 12441 zcmeHtg;!i#@^up+xI^&Z1a~J8JVy*WOiis+8nl;cx-Z0f+zqfCAucoASa61^~!`2LNyYh|hGz zLH5o-duKy64+o%=K8w4ZEqN~7GrAnWv#0(4yZ#S9fx*OO>vlHW?jr=R(D?Z=3DPL` zVuOQ`P1->rk*SP1qqLxmo%0`VL@rTd^tt7WT-AL)n++A?L3{?>w7Oy8hbd( z^Ht}DkuQ0C`a#+u$~rXBRZ8XDlP-%s_)9sl;Kaa`u>#=fr4aIq@hsRXunli{TvW@=?L6+2#w4K|6*WH8(uGLO9VcvZUwKsLoO16XEBi7rzGYm>0 z#pQTvCnH$4QnZz?F~-(@Q;~SC-frZ)Fn!J#NPMgmx~6GKgZ| zkMW4~laB`C#&*&2+ipw>w;z(>>I*;0^(|9LO`J$nV2-e85+UK_lZ3nwN)6EIme*b~xh{p76jS|C z5>j5ro3ocNlI}MRf$pNc3FCivFrJFn>ttdvTk73wOL6g&NL|&E->Tds%Ta*R!_dsO z^-LnY1?S$ISs|lWg^~;Vnq%Z`4^7U6pH4N`$v~z@CofV*QSWgdIFhVz=_y$Kl_a>Q zGbig$1Sx$E0AM^l8FyP&H;|)^2?%8KD}?2#D}(0PFnzPDAB}zr$&-+ae6P;M<;t`B zA~4rXuHMbwNm;=;Pp_u_csm@RM8~R69DsA{nBCHFJIvp*fXnZ>Hit-q^KSTARJ|Dk zo@44t!|u$!u^Cem{ZP^dlJC}YLj&(e*Jce*ZcXc8fJhpg#T2CCh!}DLPUBQ}M1lm5 z!`HA)$}K0RO?)@Yn5VqzAP>6(BZt=^Ry-hv=rF;pPe-W3C%dBLdMGfD@}|3><5r?~biK(SXDnWupNnm}cK`c9^v=umriC!si3NaOsu6qxlBR;)%z5<&cxO!aV< zZW!w@KIQh6?k=Scq{V8LA;~mR)%5M>^4IbX_)zPim>16K2I`auHZw<|J_m*eo8F(4 z`|+#$f8Yi!w01;_&LBU#qD3@~)h(r|@h;4RCp}!d`LbnwUPztv=m_deS@5pHRHgU7Fv%`U!I*V2|r*$_?J`yHG3~C%b{;h6Uy|K(a)XrT3LN zNE3RJDR$4h7d57dU2mw$7Rk<=9>|G27EdP21u2bZY%mNc2uQo$jrE%g^7HM$)qT8t z1vPY@(2~Z~r1bf8f_=a;vbc;E{bLgT0KM6(ZF)ur-#kv908Q`4{vipS6wI8@tgpkG(_W8C|%EwOqZ zU8xd8>N%qGSd;QqTf=aZ5DpPm=QQw3xpe#-D%e^hd-C?b@?i<-p6=NbQ@+Cj07L*p zm?u8`BX0aVEB+NjV4kwOr@jBTuf~KC>n9EEJ_>9K9P@b}Zx2iqXo?ao)4c-FDzA-p z@<1+Mf!-vDe-r6r`G_A#edqILwBUZV;HVS-xpk&`EDb$kb$*e~Jl!>4lkn?6@~PVK z%&I~o5wQ4szdFAT1*ba+=mm9d1Py%1>``9cxKSDX`7X8ot@fdB5MZh=G)8^@8w+%`o{R_D0DWQ*@|%`e?&D z$;&!6ctiSB;_uhfE=d%T zSPxCmLjIFKI2-(gzjs zVfq+aJ;JUv!6XEE1;*=fQ#c=W$QDg5HH;+kAu+5JQ^*ueK3ru|!1w{|)C%Vk-4C3$ zX4VPUf7VTNu@5J1vk$zWC7gwdR)yKE+qSUz-Qm6V=8kSetg=ffk760*O-o;fv^;RM zusy_+(J`Zn^qvNL&_#T*(Drc7u}X=Vi8D8vWzPzM_ulkkeB(%DKOkyl!e9GC$BMvW z3$Jbc%BXyi?{uV2IRJYd(b^KPed{J0ugFKq*sA^1KVQ_=nckk_DU$TFvGmxmSc0YajAl>63hruU60izXd)l zILQCD2eXdkq}h2Cmetj#vw0KIfiaYjpY_LAm*=TtB|Up{uo*>OQQ>nyeHT&ru)TdW z;wFkw;;fvHv<|Ph1K`uFjq6#ikUN^`ichWb=^VJ=BizZFKK0mT<{A>aUf>FX`_VHRy;GXqd3y2Q3Y zh(b{PJ9&0eq-GpDVquizX({EjIhdNqKU{lz17fu*FY(gRy5L19kLSN4l5mD#g-BBh zH@l8n(Vv~2NpHN~3gh}zOf-hAjUm7v&PQsMfC`bslzC_V_Fa72DIz73K-`GWrgt9C^_Z7$!;VF>SMG(sRJWbJh{M6RN_5|di`*o--50AyIsy4egfA|z zGsM3AY_i#ibS}gboWUn4Nw&kbdHcR&Klfq;}y*dsJYcuo+D* zMdXry@gjSNIbBMQysl7SgJDcDRF76-skwx5+_I?fLOTH>tiyF}=fjmTM9SB8%eP0N z!D82B-Ww-JJcho>Sp7wA(ei}&pY~!KxwDF4DqI(JC&7mvcY zODFU}PwRG!K3Kiczi@A(eJ)0U|D#)m%5h1RaNxzKgr_YkukaguogFLov3a#>-fvh> zR+P&Fm-)!LCMlqx-P7zXFsJ%kIWjtoDvvR#&qQmUa zc~XAP+tbS4-2q;%774$YijA6oo#K%KeY%4Y>?7e7Mpi`A;fDvG?m+mLM)@|UB34)B z%{9BJ9$J%WFY3j-nON_tf9hf7u$C=!_A_nwI4JsI{1hH`r1~hRMdJnc)!(q}p?@1p zI-t?(H&X0>+psqebNH2hA#qhcr^2+juzAJK)W@m$?kTGNHK_8?1Xz1NNn#q_f0aaz ze@NoI{W=e(4{P}&`Hm2T?k6@%Eq?fc+0{o8yRn;YEGzL#mO4z7Lyf=+{|zqgAVv1vGcKx{8PJpZ2X)vOEHg zVwy6b!MaouYg7c@RWdlW8+{ZOlG=fYkTL9oToIo6a@E-bxMd47OdS?$m9`_H@=mgD65 zH;)tq9OrO?(E0#mhU*L&v+qXm$V_+CGxabXo7iI%`Xh^e_jS`~-q_w}Aa5{eZvTxN zyKX^w$4(N}jQQbG+zvac9*Di@*-mz1X5Qsuo4fbg9id<|YzziwJdmla*MZKPM0>E( z_D~pXb7}#PYzQ-IgL!deaURM5e#9J3v)iFyeB3AiF)bd-N++)xA!Zp{O6*V5Bp`KC zD`AKQ$-6%%I6mB<-*{2Jbq+lIpue41Izal446S?p;~R9T(gYH-zB4iqX_ETIU4JbN z^R5Z)bzcBEh0#NnNq?N>xEMww-#L1Z24^c15~HKuHRlncJuQgpa39M^kJH2iEqsK0 z2Pc>1M@Z7*u@UcUu|P@!ZXWj))pdfyfw!a`6+1JtP_M;6Hnz;D=;6@=J)%tUDkq>b zLqm~^JDWhy*1M=mLr+wXk6wCRiANZBwB%{hw_U=pO5!gH?>Qm(Vl`wO0PEh~^BV&& z!hI}E>}hc@s>+u?K5T~ogA(^cQT>TH7%NSvQyXqd6~gdRkI>n9UdA{umkE;r0eL)2 zvh37jIF9+;1XJ&BE1&xl*%WU?#&znvk;Bn=+R8-hK)+`JgC!$*R#Fp$7gG`98EF;o zg6Qq57+yLUphKN79KVI`{Eg|kteyO~CFeMTc1sJw%Q<6{O!T6wo)q&dXt_l4Oe?zm z0k@Mph+Te9J~W)76GzZFu1A*dmQFJ0k{vqRL@zK#lc~308{0F;SJK5LGwsuxicX({ z;x`a3>LOpUFO#7tmk(Hbz+23voioj!H|YBhF+o%o`Hacl|cDTRE|%2a3Sni5TC~ z{m1GEMrfi(ru-~tF_2(7lb%N&pKEi%av-mQDKl2n%b6(T+5b#J#kp2^+9meeR4ivj z$sWzP%r#6AkpsT|VA|F%?{`Ae}flI=iie3(7U+0M%pr?>HNVl$LRHSj8xMF|>L*K=^N$_acH#B+Pj%lF+1 zI2@PCV`Y02}DB*IXAABoYtyiKTka-dcz%dG&%SO`8DFf|yM(oJ1lE6rQmRa*u&7Pocr zusU8?XJD5NLU%u|f$dRJuH*>D2EDM31%q0YiMwYqrGZ&UEI$pLdc$xP-ABpO;H{W!L7UKzIU*0E7On3!YljARH6EL9ckT=Hs^zhg(l##Y?khMc`x zWP?`)u;g3i=#RhKw5Tp&}jT~ zwUFF_E6k`=KpWaHjh8@ZMh{0uP)Eqxis0=DEOjHMCiF>7@FK8lR()F@h47vP{>0&3 z;{i1u>!T;ExthEmXDyz(Gds@RY+yCa+e)Y>PRInN!2_=_+>~7lAQVd`cD<2capaEk z9lKW`h7SQe0Sgu?yB-B!r$h7#Vh3CsV#iy!9s+yJDE4<)8P1~!LjtSheIR^vBDZ$Q zY^K!^DMh(NnmrS%roE2v{EKfGJulv2R+|V@S~7P&7qy{Kfn!Apz@5?(#~QO4J;5O&7h?-&C%$&bJC;j6_HAH@a+<|O&kgOlMTBHBD08cas7znLgkS(NC9 zf18Q8`1nbSOn^Tmr-T3unIeWO@rkE&r|DTaZqR49^wzJaP#zReg%n1XJnf3OSnW;I z84p$XKw){YKyHafCwVOUp^HozmB=kZzLX@2;(GvDy^6Dq6Pn8h)BQnDwwEr%^#(&( zdIFFnQ*A*=XT@s)NVKU8>40X>X$eSFaOOKg-E!GYSaoOl9;%yThcy^6rJsL?6KY@`7niIM$h}w?G62#YnH`Exe1%YBZXLCU_uF1$ex&Fwau3{*{B??|>W4uAzB~&Z}Q;|#3 zjLqMo%SNA9!RQwB6)aosBiQan_dGbGl)g!5`-{(*=r<5B^6{xk`)ks2X;dv*j{pE* zQT}T1{87g_TLSHXtbg49DB%uthGK~8@LCXhA4LZBrv`VtjQK|kcrOnqZQ_5taO7*lS0rwAF}+rU#LD6E{}Q z??*xpTTMMZyfIE!2}LO%Q7EZ5Wu{RMuU}I3MU7Zh9(XF!uFKAgtE`%RAXJo|*2UTN zaXea&Ib4Iqi%TJoRos9%^o.|G^gV2j!$&5DQf)pfu!g|9Qw&P4G>@-)>z^J&qJ zW|x1RxI*w@gFHN)6OWhUondX_w}`Rwd$bdVl0@gwhn&UQMm#241c z8lTsC|FJ|EwzZ1zwN-b1F{dThy=#i8T+YGx$A$@HYo6x3mf8;f9j;sB#c_~G>ch<; z=Lf-0#vSd%N+F0(@$!8^7H<`wqs;*sD90LFzL4T_>h-?-3M zt)%xc?9C2CLapJOD`O17=d$_?2v`-CSsWR3jnqiW(vRIENbg@SS|sYY3PCyBXbkDj z2_=2rWzwdOe#Vmy9;JwGW3|B-b*KTRuNM@Kr0#zX-DsC;uWTI@^%YA2cHg?^I~=I+ zx3M!4-ys(DN}k#>n*$f58II56**-`)QRd5S#rbbD^WRg1bZ$A{vg`KnsL**Hj(Y_0 zvr>iLd1J2fxi~^))Vh5cMkplM1vdNP-)vnXk6o=GWE{9$sme0BwFqOq4uI2ys=emWX>Pz0* zAvjJOFr^V~N-mY=H+Zap`{1x8&FGna`nqy_yVd7(QN^CGpndxh**HvaEq5N)*%%rZ z^>{6EO;xOABnCx}m#eYe?qzZG2ajfc@Qlsep* zUh=j{P+`O{Wrmm^9h?4O{-8Q5jqKN;+Bia9qYEl|RS^O^|zo71JQmNN;{oX&l> zx*!x_ty|XW#S5;xD4i~}h{~Zt;J(qjrFXjMZkXdgnw+?e>g&e>lyvDUx^Yc6#S~<- zpw#dlS4+0@(V#G<2c0C*ADh8}Iy{^qw})@=9C$BW3LHL5DyExM5g`+mT!tRkC{Rv2 z!pilhf@yZJr`!=Ehs8NFT$|v}qgOc;DBSaWui9;qLRmR!D)An9KGWc-pjAY1M5Y%f z{CowCKsR_pAFLN6@$ zV%RYHdOom*+AyGDB=;vxT4j=Z6h$XdiHMh*0u2cnTx!ua?r=wKYH?VLji74QeTjG} zC7CHiif>t^fA)1?IvP-}XTi=+>DxdyA?i1q_Fa{u@}tHd&Aw$*5XQ?Mg$gSjD@joL zq3zA8>rd<=6Z{%2;MZHv;UBi~q;OxH(%r9`S|mzR26Lf=M_b03)o04-b6&-WvJHw( zF^je7K@-@ZhKs<3i^564PG~t-00@0}z+&F}1~tA1QvpkpN$`g`(n9JuhY((OovN_m zcJe#(aN4u4EV5N<4=GHTnT9S+qw4%yp*ZL3NUH3E{h1a9>KMBW-F!bk#tQI3z!5NJGF{Jq1t zYTSO(Gf8xYBt&SYI(>a<`{g&bm7F&uA9|w8$4LOChgU>N1}!{=T=SoN`Ou{9*#tx*Waz+dxm59<+G))B=lo3ieOw{;vaDCua{^pwq7ezf*k~l>Uzf zSlg)}w^DCBVqqFoI;qxLh104GJ*D%DANhK9-o&pnT57e-sS=+Vx#P?qBg>0!ZZa%7 z^rNtxXwwW`ZK*L>s=+K@=kl)S8LprN+>kHv$R%14SH*4kvppCxrdQxaJHjeNaPzYCzakcFN4ZZZvEe<8UX8qfgfi;i_HTPA+9AkCy z=S>@y`b9S_f<6=9D&@J+8o(Dj%&})RZJj}d+#OVzS6zbf_)@&zDlPowoYhajO?iS; zoMMqU*yJr}^kLy-!jVnfAc=@DV~mBq(5k%gexAZnL7?b6@;w!{7R?*wP5S}#h{(!(&38z*)SV)5EtW|c&y;G30;+b-|z*xW=au~?=QlES=P`h#p z8uaWQ?MwpY|IdEHY({WvbrHvja5IN{X z75qNUvi>bG>d-^xo;?-8rN{sP?mvlPY3v9zQ+0Nb| ziI&SL5W{k5m8odBD02!UZpzu^%B_!7js&c3zL)KWUdRd9;EW%Bi0sD^&dTI;+Nyj> z=EvxG+AEuiB>Wznb%fciTG4;q(W%Wcy!cT(FV|brscp8?!+e}S%T>^n9xtFuPaz{( zWj=1Z&$$Dc!OLWTuTeX)G6(tP0D_{uoRp?xM+$=@>-l{rqh&W~d_)A}O0;;W+Ur}L ziYqh@0)dH&L8vLWz8O5Rm$ks%)?BBU~AA2X->eL8zLezkOzrVP$p zs>nz7X&pX6Jm$*i;b1yxf*x~_j@?%_W_x)f`)At_NpT*LlNCDWPjnp1ZT?B)M1{l< z1}zvf4ZN%3YH(<9`LOLBSWaEzGxih`bKve~qOcrJgL1W+1O=6Ew^oi5qhIa!`Ka8|_xutEUn zYTA~oq_+_GMa+`Ki^B9-xH7^5kIT#w5oUV$WFZcVV0SnpeX&T{I8B$XI$$>*RuYGh z9?y2zoRTEZd0d=VH(#7#<&PJQ{)|O?N&&4`fpQa*gM#cI4d3`)u2=-?N7QUF2ihYv zO3Gln39@od{?HrudRFpf-dW;iad>gEM_a#izG`B&)N%U^MW0tJjnM6+$>ClMmq!BA zl~LKzztGs>WT@p;gmtcO>~)C*Cdzn#08Wz|2A2QJP-+za+w3%M{`%{*rGjVNFi>~C zyGON4xEcA%SJFDS&#Wub&+K~$%q?Tg*&AySEk7X7Eu7g8bUhGtlbN~T9J(@$hh47u zS8^|-+4~!U=!RA^auiQ!XKN^YYihP}yJ4xaFL}Nvn-7Rg!Y=CY*xvOK&&0mYk0@Dc zcLZa|R?u20@!vniioaHk#2Wi1~OH01UWdd znt~jGzXHnB=+Xb$#!q4r6mKZk!G_zl4BsN&=apW4yG~~pDu4j)2*B&Ai(PQ(qNSJF zss(}O>}$l^dKR1xW1LuIwh)v(40Gf^n?@H zGPSBGFn6JimU&SMQ1I`^T_|WW`*Wh=A;wOvupyqrOoLx+jRb2D@=037)a*M)2%0%f zg*V+A^)J;g9|hhQMz5ZRUi(~}k851W%`Qa1^kWa3Km&C0t8}MbQI>9gvbP1kcWRFy zYH*xhN^Cv)FdK-ec9?VeLJ2Ri2=4Kc&rvt81NKUOO2^ zl?lCvozRC1i{&!Ca8V=!d?%N2Z5AKO`yMtEEzCk>YODF~t3b=;QV1DM4GfF;* zIOe}Qqp^d-|9tW3k^S?^NRS83{~7~>y(B|jB>p<2gc?w6V##|xYTUMFW+4wX{a9%h z7L|N39rIzV)5>eEE2kHq^`)=Y;t$>Ii`daFrLcW%77j!n4HjFJ3YHdqpBIGjNJ%H` zA{6NUYYKjMIS_i+*j^ZOTdZ%jJf>-kp?lZUW01nyT;%UJR)y5d-7n7KvQH)YEb1Q1Dnv%? zY8biojfrl{Dr8#&qeH!TrfN{*Qk=BIEt`+3;%Qr_BOKF<(4 zr{%{9t9U+p&DY&5E_dA9;TBd;N9oz_wrpOzm#=zS%P_O` z+`C;gyAi~XE5QSKI^49PUAlrLJBdm$ukSYy5^lSLnAKR*>Vj8|c-9R+mVqpOzTVbN z*+_i7-16|0j{ienVV*HRS-x@L%iSjA1Lu{U^YG&V~NV@YkCA#FKxU68+uq z_gT3=O?#fE=YE@<``!3I2aEnR1puaz{xJS8V@AK@{61dtClVp*|Njzy88-PH<@b*4 zpD0XNe~a=*fA)8j-@7D#qAWdidjDqd<&U1p?gV{Rz-d z@dv=4<=pS4zo)o=nyyp-!}Rxr_jiQ<4ETTA0|5AR0Ki|u|L^AiDbfFKp2zTS=KmCI WB{}#fPXho@f4!cZ)s6YryZ;AtkT=T! literal 0 HcmV?d00001 diff --git a/java/hello-world/src/main/resources/.example.env b/java/hello-world/src/main/resources/.example.env new file mode 100644 index 00000000..7982cdc4 --- /dev/null +++ b/java/hello-world/src/main/resources/.example.env @@ -0,0 +1,2 @@ +API_PASSWORD="userPassword" +API_USER="userName" \ No newline at end of file From e5ebc40d3f824df19a218ea07815bfe4fda2bfe2 Mon Sep 17 00:00:00 2001 From: RandomCyberCoder Date: Tue, 5 May 2026 10:58:11 -0700 Subject: [PATCH 4/5] update comments and backend entry point --- .../org/acme/schooltimetabling/TimetableApp.java | 1 - .../schooltimetabling/apiCalls/ApiConstants.java | 2 +- .../acme/schooltimetabling/constants/Constants.java | 1 - .../helperClasses/BitSetHelper.java | 1 - .../helperClasses/Generators/TeacherGenerator.java | 12 ++++++++++-- .../helperClasses/Generators/TimeslotGenerator.java | 2 +- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/TimetableApp.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/TimetableApp.java index d62164ef..f1c69e31 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/TimetableApp.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/TimetableApp.java @@ -22,7 +22,6 @@ import java.util.*; public class TimetableApp { -//TODO andrea schuman name udpate in excel file, update in the db as well or at least check over this private static final Logger LOGGER = LoggerFactory.getLogger(TimetableApp.class); private static final String YAML_FILE_PATH = "constants/config.yaml"; private static final boolean PRINT_DETAILED_SUMMARY = true; diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/apiCalls/ApiConstants.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/apiCalls/ApiConstants.java index e1d8e049..6fbf5b0e 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/apiCalls/ApiConstants.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/apiCalls/ApiConstants.java @@ -7,7 +7,7 @@ import retrofit2.converter.gson.GsonConverterFactory; public class ApiConstants { - public final static String baseUrl = "http://localhost:8000/api/"; + public final static String baseUrl = "http://localhost:8002/api/"; public final static Retrofit retrofit = new Retrofit.Builder() .baseUrl(ApiConstants.baseUrl) .client(new OkHttpClient.Builder().build()) diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java index dda29508..40529b95 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/constants/Constants.java @@ -138,7 +138,6 @@ public class Constants { List introCourses = List.of("csc1001", "csc2002", "csc2050"); Set introRooms = Set.of("Room 301", "Room 302", "Room 232A"); - //TODO non_sec_courses List non_sec_courses = List.of("csc2050", "csc3300"); Set non_sec_rooms = Set.of("Room 301", "Room 302", "Room 232A", "Room 255", "Room 256", "Room 257", "Room 20-127"); diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/BitSetHelper.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/BitSetHelper.java index 38e001cd..8fb87738 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/BitSetHelper.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/BitSetHelper.java @@ -66,7 +66,6 @@ public static BitSet timeSlotBitSet(LocalTime startTime, int numberOfBlocks, Enu /* Each hour has two 30-minute blocks*/ final int HOUR_OFFSET = 2; BitSet bitSet = new BitSet(); - //TODO so it's not so wierd of mapping values. Do math such as hour-7 and multiply by 2 to get offset int startHour = startTime.getHour(); if(startHour < FIRST_POSSIBLE_HR || startHour > LST_POSSIBLE_HR) throw new RuntimeException(String.format( "There was an error reading the time '%s'", startTime)); diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TeacherGenerator.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TeacherGenerator.java index 33ab5daf..bf7d3a50 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TeacherGenerator.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TeacherGenerator.java @@ -260,14 +260,22 @@ private static Teacher generateTeacher(HashMap surveyEntry){ return new Teacher(getNextTeacherID(), canonName, preferred, acceptable, conflicts, pref); } - //TODO note to update the teachers that get made on the fly if their teacher object is not found + private static void prescheduleUpdate(Map teacherMap, Map>> presched){ Iterator>>> iterator = presched.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry>> entry = iterator.next(); String name = entry.getKey(); Teacher teacher = teacherMap.get(name); - if (teacher == null) continue; + if (teacher == null){ + teacher = new Teacher(getNextTeacherID(), name, new BitSet(), new BitSet(), new BitSet()); + LOGGER.warn("Couldn't find a teacher object for {} during prescheduling setup; creating one...", name); + if(Constants.FACULTY_LAST_NAMES.contains(name.split(",")[0].strip())){ + LOGGER.info("promoting {} to faculty", name); + teacher = new Faculty(teacher); + } + teacherMap.put(name, teacher); + } try { BitSet addConflict = createPreschedBs(entry.getValue()); diff --git a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TimeslotGenerator.java b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TimeslotGenerator.java index cc2b2636..149deb8c 100644 --- a/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TimeslotGenerator.java +++ b/java/hello-world/src/main/java/org/acme/schooltimetabling/helperClasses/Generators/TimeslotGenerator.java @@ -9,7 +9,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Optional; -//TODO MAKE SURE THE THAT TIMESLOTS BEING GENERATED DON'T TAKE INTO ACCOUNT THE ENDING LIKE IF IT ENDS AT 11:00AM THAT THE 11AM ISN'T MARKED FOR THE LEC OR LAB/ACT BIT + public class TimeslotGenerator extends Generator{ private final static Logger LOGGER = LoggerFactory.getLogger(TimeslotGenerator.class); From ea36aced290740ec5c04f3c8465bf3fbbf31a06a Mon Sep 17 00:00:00 2001 From: RandomCyberCoder Date: Tue, 5 May 2026 11:25:37 -0700 Subject: [PATCH 5/5] config update to speed up solver --- java/hello-world/src/main/resources/solverConfig.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/hello-world/src/main/resources/solverConfig.xml b/java/hello-world/src/main/resources/solverConfig.xml index f69b9a83..e6292076 100644 --- a/java/hello-world/src/main/resources/solverConfig.xml +++ b/java/hello-world/src/main/resources/solverConfig.xml @@ -44,7 +44,7 @@ - 3hard/10medium/30soft + 2hard/10medium/20soft