From d34c262b2588a2ef4d2b066d2cd427cd32e0c77f Mon Sep 17 00:00:00 2001 From: Prachi Sah Date: Sat, 1 Mar 2025 15:45:44 +0530 Subject: [PATCH 1/3] Teacher_weekly --- Constants/classroom_tt.py | 24 +- Constants/classroom_tt_csv.py | 83 - Constants/constant.py | 2 +- Constants/helper_routines.py | 3 +- Constants/teacher_tt_csv.py | 81 - Constants/teachers_tt.py | 6 - GA/__init__.py | 61 +- GA/chromosome.py | 112 +- GA/fitness.py | 14 +- GA/mutation.py | 10 +- Samples/samples.py | 4505 ++++++++++++--------------------- __init__.py | 202 +- best_solution.json | 1098 ++++++++ output_csvs/L1.csv | 14 +- output_csvs/L2.csv | 14 +- output_csvs/L3.csv | 14 +- output_csvs/L4.csv | 7 + output_csvs/R2.csv | 14 +- output_csvs/R3.csv | 14 +- output_csvs/R4.csv | 14 +- output_csvs/R5.csv | 14 +- setup.py | 2 +- tt_csvs/AA04.csv | 14 +- tt_csvs/AA15.csv | 4 +- tt_csvs/AB01.csv | 14 +- tt_csvs/AB17.csv | 14 +- tt_csvs/AC05.csv | 14 +- tt_csvs/AD08.csv | 12 +- tt_csvs/AK23.csv | 10 +- tt_csvs/AK26.csv | 14 +- tt_csvs/AP24.csv | 10 +- tt_csvs/BJ10.csv | 14 +- tt_csvs/DP07.csv | 14 +- tt_csvs/DT20.csv | 12 +- tt_csvs/HP18.csv | 14 +- tt_csvs/JM12.csv | 12 +- tt_csvs/NB22.csv | 14 +- tt_csvs/NJ13.csv | 14 +- tt_csvs/None.csv | 12 +- tt_csvs/PA21.csv | 14 +- tt_csvs/PK02.csv | 14 +- tt_csvs/PM14.csv | 14 +- tt_csvs/RD09.csv | 6 +- tt_csvs/RS11.csv | 14 +- tt_csvs/SJ16.csv | 12 +- tt_csvs/SP06.csv | 12 +- tt_csvs/SS03.csv | 14 +- tt_csvs/VD25.csv | 14 +- 48 files changed, 3135 insertions(+), 3499 deletions(-) delete mode 100644 Constants/classroom_tt_csv.py delete mode 100644 Constants/teacher_tt_csv.py create mode 100644 best_solution.json create mode 100644 output_csvs/L4.csv diff --git a/Constants/classroom_tt.py b/Constants/classroom_tt.py index 262c3fe..6109e54 100644 --- a/Constants/classroom_tt.py +++ b/Constants/classroom_tt.py @@ -5,7 +5,7 @@ class ClassroomTimetable: def __init__(self): # Dictionary to hold timetables for each classroom self.classroom_timetable = {} - + def generate_classroom_timetable(self, chromosome): for week, days in chromosome.items(): for day, sections in days.items(): @@ -35,14 +35,14 @@ def save_timetable_to_json(self, file_path="Constants/classroom_timetable.json") except Exception as e: print(f"Error saving timetable to '{file_path}': {e}") -if __name__ == "__main__": - # Generate classroom-wise timetable - classroom_timetable = ClassroomTimetable() - w = { - "Week 2": SampleChromosome.schedule2, - "Week 1": SampleChromosome.schedule1 - } - classroom_tt = classroom_timetable.generate_classroom_timetable(w) - print(classroom_tt) - # Save as JSON - classroom_timetable.save_timetable_to_json() +# if __name__ == "__main__": +# # Generate classroom-wise timetable +# classroom_timetable = ClassroomTimetable() +# w = { +# "Week 2": SampleChromosome.schedule2, +# "Week 1": SampleChromosome.schedule1 +# } +# classroom_tt = classroom_timetable.generate_classroom_timetable(w) +# print(classroom_tt) +# # Save as JSON +# classroom_timetable.save_timetable_to_json() diff --git a/Constants/classroom_tt_csv.py b/Constants/classroom_tt_csv.py deleted file mode 100644 index 6b59a1f..0000000 --- a/Constants/classroom_tt_csv.py +++ /dev/null @@ -1,83 +0,0 @@ -import os -import csv -from Samples.samples import (SampleChromosome,WorkingDays) -from Constants.classroom_tt import ClassroomTimetable # Ensure correct import - -# Predefined time slots mapping -time_slots = { - 1: "08:00 - 09:00", - 2: "09:00 - 10:00", - 3: "11:00 - 12:00", - 4: "12:00 - 13:00", - 5: "16:50 - 17:50", -} - -# Reverse lookup to get slot number from time string -time_slot_order = {v: k for k, v in time_slots.items()} - -# List of days in the correct order -days_of_week_order =WorkingDays.days - -def extract_time_slots(timetable): - """Extract and sort time slots from timetable.""" - unique_slots = set() - - # Collect all unique time slots - for day_data in timetable.values(): - for slots in day_data.values(): - for entry in slots: - if isinstance(entry, dict) and "time_slot" in entry: # ✅ Ensure correct structure - unique_slots.add(entry["time_slot"]) - else: - print(f"⚠️ ERROR: Unexpected entry format -> {entry}") - - # Sort slots based on predefined order - sorted_slots = sorted(unique_slots, key=lambda slot: time_slot_order.get(slot, float('inf'))) - - return [("CLASS", slot) for slot in sorted_slots] # Only include class slots - -def classroom_json_to_csv(classroom_timetable, output_folder): - """Convert classroom timetable JSON to CSV.""" - os.makedirs(output_folder, exist_ok=True) - - for classroom_id, schedule in classroom_timetable.items(): - final_slots = extract_time_slots(schedule) - csv_file = os.path.join(output_folder, f"{classroom_id}.csv") - header = ["DAY"] + [slot[1] for slot in final_slots] - rows = [] - - # Sort days correctly - sorted_days = sorted(schedule.items(), key=lambda x: days_of_week_order.index(x[0])) - - for day, day_data in sorted_days: - row = [day] + ["" for _ in final_slots] # Empty slots initially - - for section, classes in day_data.items(): - for entry in classes: - for i, slot in enumerate(final_slots): - if entry["time_slot"] == slot[1]: - row[i + 1] = f"{entry['subject_id']} ({section}, {entry['teacher_id']})" - - rows.append(row) - - # Write to CSV - with open(csv_file, mode="w", newline="", encoding="utf-8") as file: - writer = csv.writer(file) - writer.writerow(header) - writer.writerows(rows) - -if __name__ == "__main__": - # Generate classroom-wise timetable - classroom_timetable = ClassroomTimetable() - weekly_schedule = { - "Week 2": SampleChromosome.schedule2, - "Week 1": SampleChromosome.schedule1 - } - - classroom_tt = classroom_timetable.generate_classroom_timetable(weekly_schedule) - - # Output folder for CSV files - output_folder = "output_csvs" - - # Convert the generated timetable to CSV - classroom_json_to_csv(classroom_tt, output_folder) diff --git a/Constants/constant.py b/Constants/constant.py index bd7fa7c..870ee2a 100644 --- a/Constants/constant.py +++ b/Constants/constant.py @@ -5,7 +5,7 @@ class Defaults: starting_section_fitness = 1000 max_class_capacity = 250 initial_no_of_chromosomes = 10 - total_no_of_generations = 10 + total_no_of_generations = 1000 class_strength = 50 diff --git a/Constants/helper_routines.py b/Constants/helper_routines.py index 6613313..43f50bf 100644 --- a/Constants/helper_routines.py +++ b/Constants/helper_routines.py @@ -29,7 +29,8 @@ def update_matrix_for_best(best_chromosome, teacher_availability_matrix, day_map slot_index = time_slot_map[time_slot_str] # Now set availability to False - teacher_availability_matrix[teacher_id][day_index][slot_index - 1] = False + if(teacher_id!=None): + teacher_availability_matrix[teacher_id][day_index][slot_index - 1] = False return teacher_availability_matrix diff --git a/Constants/teacher_tt_csv.py b/Constants/teacher_tt_csv.py deleted file mode 100644 index 9f5418f..0000000 --- a/Constants/teacher_tt_csv.py +++ /dev/null @@ -1,81 +0,0 @@ -import os -import json -import csv -from Samples.samples import (WorkingDays, SampleChromosome) -from Constants.teachers_tt import TeacherTimetable - -# Predefined time slots mapping -time_slots = { - 1: "08:00 - 09:00", - 2: "09:00 - 10:00", - 3: "11:00 - 12:00", - 4: "12:00 - 13:00", - 5: "16:50 - 17:50", -} - -# Reverse lookup to get slot number from time string -time_slot_order = {v: k for k, v in time_slots.items()} - -# List of days in the correct order -days_of_week_order = WorkingDays.days - -def extract_time_slots(timetable): - """Extract and sort time slots without inserting breaks or lunch.""" - unique_slots = set() - - # Collect all unique time slots from timetable - for day_data in timetable.values(): - for slots in day_data.values(): - for entry in slots: - unique_slots.add(entry["time_slot"]) - - # Sort slots based on predefined order - sorted_slots = sorted(unique_slots, key=lambda slot: time_slot_order.get(slot, float('inf'))) - - # Only include class slots - final_slots = [("CLASS", slot) for slot in sorted_slots] - - return final_slots - -def teacher_json_to_csv(teacher_timetable, output_folder): - """Convert teacher timetable dictionary to CSV.""" - os.makedirs(output_folder, exist_ok=True) - - for teacher_id, schedule in teacher_timetable.items(): - final_slots = extract_time_slots(schedule) - csv_file = os.path.join(output_folder, f"{teacher_id}.csv") - header = ["DAY"] + [slot[1] for slot in final_slots] - rows = [] - - # Sort days correctly - sorted_days = sorted(schedule.items(), key=lambda x: days_of_week_order.index(x[0])) - - for day, day_data in sorted_days: - row = [day] + ["" for _ in final_slots] # Empty slots initially - - for section, classes in day_data.items(): - for entry in classes: - for i, slot in enumerate(final_slots): - if entry["time_slot"] == slot[1]: - row[i + 1] = f"{entry['subject_id']} ({section}, {entry['classroom_id']})" - - rows.append(row) - - with open(csv_file, mode="w", newline="", encoding="utf-8") as file: - writer = csv.writer(file) - writer.writerow(header) - writer.writerows(rows) - -if __name__ == "__main__": - # Generate teacher-wise timetable - teacher_timetable = TeacherTimetable() - w = { - "Week 2": SampleChromosome.schedule2, - "Week 1": SampleChromosome.schedule1 - } - teacher_tt = teacher_timetable.generate_teacher_timetable(w) - - # Convert generated timetable to CSVs - output_folder = "tt_csvs" # Folder to save CSVs - teacher_json_to_csv(teacher_tt, output_folder) -w \ No newline at end of file diff --git a/Constants/teachers_tt.py b/Constants/teachers_tt.py index d47a88b..ee8196b 100644 --- a/Constants/teachers_tt.py +++ b/Constants/teachers_tt.py @@ -1,11 +1,5 @@ import json -<<<<<<< HEAD - -from Samples.samples import SampleChromosome, SubjectTeacherMap, WorkingDays - -======= from Samples.samples import ( WorkingDays, SampleChromosome) ->>>>>>> refactor_main_code3 class TeacherTimetable: def __init__(self): diff --git a/GA/__init__.py b/GA/__init__.py index 0b8edcb..a4adb35 100644 --- a/GA/__init__.py +++ b/GA/__init__.py @@ -4,34 +4,33 @@ update_matrix_for_best, update_teacher_availability_matrix ) -from Constants.constant import (Defaults,TeacherPreferences) +from Constants.constant import (Defaults, TeacherPreferences) from GA.chromosome import TimeTableGeneration from GA.fitness import TimetableFitnessEvaluator from GA.mutation import TimeTableCrossOver, TimeTableMutation from GA.selection import TimeTableSelection +def update_teacher_weekly_workload(teacher_availability_matrix, main_weekly_workload): + new_weekly_workload = {} + for teacher, availability in teacher_availability_matrix.items(): + available_slots = sum(sum(day) for day in availability) + print("hiiiiii",available_slots) + new_weekly_workload[teacher] = main_weekly_workload.get(teacher, 0) - available_slots + return new_weekly_workload + def update_lab_availability_matrix(initial_lab_matrix, best_timetable, day_map, time_slot_map): - """ - Iterate over the best chromosome (weekly timetable) and for each lab allocation, - mark the corresponding slot as False in a deep copy of the initial lab matrix. - """ updated_lab_matrix = copy.deepcopy(initial_lab_matrix) - # best_timetable is a dict keyed by weekday (e.g., 'Monday', 'Tuesday', etc.) for weekday, daily_schedule in best_timetable.items(): - # Convert weekday to day index using day_map day_index = day_map.get(weekday) if day_index is None: continue - # daily_schedule is a dict: keys = section names, values = list of allocations for section, allocations in daily_schedule.items(): for alloc in allocations: lab = alloc.get("classroom_id") - # Only update if the classroom_id is one of the labs if lab in updated_lab_matrix: time_slot_str = alloc.get("time_slot") ts_index = time_slot_map.get(time_slot_str) if ts_index is not None: - # Adjust index (if lab matrix lists are 0-indexed) updated_lab_matrix[lab][day_index][ts_index - 1] = False return updated_lab_matrix @@ -47,13 +46,12 @@ def timetable_generation( subject_quota_limits, teacher_duty_days, teacher_availability_matrix, - lab_availability_matrix, # Initial lab matrix passed in + lab_availability_matrix, time_slots, total_generations, prev_selected_chromosomes=None, prev_mutated_chromosomes=None ): - # Create an instance of TimeTableGeneration. timetable_generator = TimeTableGeneration( teacher_subject_mapping=teacher_subject_mapping, total_sections=total_sections, @@ -69,9 +67,9 @@ def timetable_generation( lab_availability_matrix=lab_availability_matrix, time_slots=time_slots ) - - timetable, teacher_availability_matrix, _ = timetable_generator.create_timetable(total_generations) - + + timetable, teacher_availability_matrix, lab_availability_matrix = timetable_generator.create_timetable(total_generations) + fitness_calculator = TimetableFitnessEvaluator( timetable=timetable, all_sections=list(timetable_generator.sections_manager.keys()), @@ -120,11 +118,10 @@ def timetable_generation( teacher_availability_matrix, best_chromosome ) - - # Return the best chromosome and the teacher matrix. - # We do NOT return the working lab matrix because we want to update the initial matrix. + return best_chromosome, teacher_availability_matrix, selected_chromosomes, mutated_chromosomes + def run_timetable_generations( teacher_subject_mapping, total_sections, @@ -185,7 +182,7 @@ def run_timetable_generation( day_map, time_slot_map ): - best_tt, teacher_availability_matrix, lab_availability_matrix = run_timetable_generations( + best_tt, teacher_availability_matrix, lab_availability_matrix= run_timetable_generations( teacher_subject_mapping=teacher_subject_mapping, total_sections=total_sections, total_classrooms=total_classrooms, @@ -201,15 +198,16 @@ def run_timetable_generation( total_generations=Defaults.total_no_of_generations, time_slots=time_slots ) - teacher_availability_matrix = update_matrix_for_best( + update_teacher_availability_matrix = update_matrix_for_best( best_tt, teacher_availability_matrix, day_map, time_slot_map ) + weekly_workload=update_teacher_weekly_workload(update_teacher_availability_matrix, teacher_weekly_workload) # Update the INITIAL lab matrix based solely on the best chromosome's lab allocations. updated_lab_matrix = update_lab_availability_matrix(lab_availability_matrix, best_tt, day_map, time_slot_map) - return best_tt, teacher_availability_matrix, updated_lab_matrix + return best_tt, update_teacher_availability_matrix, updated_lab_matrix,weekly_workload if __name__ == '__main__': from Constants.constant import Defaults @@ -224,7 +222,7 @@ def run_timetable_generation( "L5": [[True] * 7 for _ in range(5)], "L6": [[True] * 7 for _ in range(5)], } - best, correct_teacher_availability_matrix, correct_lab_availability_matrix = run_timetable_generation( + best, correct_teacher_availability_matrix, correct_lab_availability_matrix,weekly_workload = run_timetable_generation( teacher_subject_mapping=SubjectTeacherMap.subject_teacher_map, total_sections={"A": 70, "B": 100, "C": 75, "D": 100}, total_classrooms={"R1": 200, "R2": 230, "R3": 240, "R4": 250, "R5": 250}, @@ -268,5 +266,20 @@ def run_timetable_generation( "3:30 - 4:25": 7 } ) - from icecream import ic - ic(best, correct_teacher_availability_matrix, correct_lab_availability_matrix) + print(weekly_workload) + import json + + # Assuming 'best' is a dictionary or a JSON serializable object + best_data = best # Replace with the actual data structure + + # Define the output JSON file name + output_file = "best_solution.json" + + # Save to JSON file + with open(output_file, "w", encoding="utf-8") as file: + json.dump(best_data, file, indent=4) + + print(f"Best solution saved to {output_file}") + + # from icecream import ic + # ic(best, correct_teacher_availability_matrix, correct_lab_availability_matrix) \ No newline at end of file diff --git a/GA/chromosome.py b/GA/chromosome.py index a715eb6..e95f98a 100644 --- a/GA/chromosome.py +++ b/GA/chromosome.py @@ -90,16 +90,17 @@ def _assign_subject_and_teacher( len(teacher_availability_matrix[teacher][day_index]) > (slot_index - 1) and teacher_availability_matrix[teacher][day_index][slot_index - 1]): assigned_teacher = teacher - teacher_workload_tracker[teacher] += 1 selected_subject = subject + teacher_workload_tracker[teacher] += 1 subjects_scheduled_today.add(subject) + break if assigned_teacher: break if not assigned_teacher: selected_subject = "Library" - assigned_teacher = "None" + assigned_teacher = None assigned_room = assigned_classroom return assigned_teacher, selected_subject, assigned_room @@ -117,31 +118,65 @@ def _get_available_subjects(self, section, subject_usage_tracker): if subject_usage_tracker[section][subject] < self.subject_quota_limits.get(subject, 0) ] - def _allocate_lab(self, teacher, subject, day_index, slot_index, section_strength): + def _allocate_lab(self, teacher, subject, day_index, slot_index, section_strength,teacher_workload_tracker): """ - Always split the section into two groups: - Group sizes: group1 = ceil(section_strength/2), group2 = section_strength - group1. - Try to find two distinct labs with two consecutive free slots. + Allocates labs for a subject. + If a single lab can accommodate the entire section, only one lab is used. + Otherwise, the section is split into two groups and assigned separate labs. """ group1_size = ceil(section_strength / 2) group2_size = section_strength - group1_size labs_list = list(self.lab_availability_matrix.keys()) + for i in range(len(labs_list)): lab1 = labs_list[i] + + # Check if a single lab can fit the whole section if (self.lab_availability_matrix[lab1][day_index][slot_index - 1] and self.lab_availability_matrix[lab1][day_index][slot_index] and - self.lab_capacity_manager.get(lab1, 0) >= group1_size): + self.lab_capacity_manager.get(lab1, 0) >= section_strength): # Can fit the entire section? + + # Mark slots as occupied + self.lab_availability_matrix[lab1][day_index][slot_index - 1] = False + self.lab_availability_matrix[lab1][day_index][slot_index] = False + + entries = [ + { + "teacher_id": teacher, + "subject_id": subject, + "classroom_id": lab1, + "time_slot": self.available_time_slots[slot_index], + "group": "all" + }, + { + "teacher_id": teacher, + "subject_id": subject, + "classroom_id": lab1, + "time_slot": self.available_time_slots[slot_index + 1], + "group": "all" + } + ] + + return entries, slot_index + 2 ,teacher_workload_tracker # Move ahead by two slots + + # Otherwise, assign separate labs for the two groups + if (self.lab_capacity_manager.get(lab1, 0) >= group1_size and + self.lab_availability_matrix[lab1][day_index][slot_index - 1] and + self.lab_availability_matrix[lab1][day_index][slot_index]): + for j in range(i + 1, len(labs_list)): lab2 = labs_list[j] - if (self.lab_availability_matrix[lab2][day_index][slot_index - 1] and - self.lab_availability_matrix[lab2][day_index][slot_index] and - self.lab_capacity_manager.get(lab2, 0) >= group2_size): - # Mark slots as occupied in the working copy + if (self.lab_capacity_manager.get(lab2, 0) >= group2_size and + self.lab_availability_matrix[lab2][day_index][slot_index - 1] and + self.lab_availability_matrix[lab2][day_index][slot_index]): + + # Mark both labs as occupied self.lab_availability_matrix[lab1][day_index][slot_index - 1] = False self.lab_availability_matrix[lab1][day_index][slot_index] = False self.lab_availability_matrix[lab2][day_index][slot_index - 1] = False self.lab_availability_matrix[lab2][day_index][slot_index] = False + entries = [ { "teacher_id": teacher, @@ -154,7 +189,7 @@ def _allocate_lab(self, teacher, subject, day_index, slot_index, section_strengt "teacher_id": teacher, "subject_id": subject, "classroom_id": lab1, - "time_slot": self.available_time_slots[slot_index+1], + "time_slot": self.available_time_slots[slot_index + 1], "group": 1 }, { @@ -168,24 +203,25 @@ def _allocate_lab(self, teacher, subject, day_index, slot_index, section_strengt "teacher_id": teacher, "subject_id": subject, "classroom_id": lab2, - "time_slot": self.available_time_slots[slot_index+1], + "time_slot": self.available_time_slots[slot_index + 1], "group": 2 - }, + } ] + teacher_workload_tracker[teacher]+=1 + return entries, slot_index + 2, teacher_workload_tracker # Move ahead by two slots - return entries, slot_index + 2 - - # Fallback: if no pair found, return a merged allocation. + # Fallback: if no lab pair found, return a merged allocation. merged_entry = { - "teacher_id": teacher, - "subject_id": subject, - "classroom_id": "merged_lab", - "time_slot": self.available_time_slots[slot_index], - "group": "merged", - "flagged": False - } + "teacher_id": teacher, + "subject_id": subject, + "classroom_id": "merged_lab", + "time_slot": self.available_time_slots[slot_index], + "group": "merged", + "flagged": False + } + teacher_workload_tracker[teacher]+=1 + return merged_entry, slot_index + 1 ,teacher_workload_tracker - return [merged_entry], slot_index + 1 def _generate_section_schedule( @@ -223,10 +259,10 @@ def _generate_section_schedule( if slot_index <= total_slots - 1: if subject in self.lab_subject_list: # Allocate lab for lab subjects - entries, new_slot_index = self._allocate_lab( - teacher, subject, day_index, slot_index, section_strength + entries, new_slot_index,teacher_workload_tracker = self._allocate_lab( + teacher, subject, day_index, slot_index, section_strength,teacher_workload_tracker ) - else: + elif subject in self.special_subject_list: # Allocate a normal classroom for special subjects entries = [ { @@ -248,6 +284,10 @@ def _generate_section_schedule( schedule.extend(entries) section_subject_usage_tracker[section][subject] += len(entries) + + # ✅ Increase teacher workload by **1 more** since it's a double slot subject + teacher_workload_tracker[teacher] += 1 + slot_index = new_slot_index else: # If at the end of the day and no space for 2 slots, fallback to single-slot assignment @@ -274,7 +314,8 @@ def _generate_section_schedule( section_subject_usage_tracker[section][subject] += 1 slot_index += 1 - return schedule, teacher_availability_matrix + return schedule, teacher_availability_matrix,teacher_workload_tracker + @@ -287,11 +328,10 @@ def generate_daily_schedule( teacher_workload_tracker ): daily_schedule = {} - teacher_workload_tracker = self._initialize_teacher_workload_tracker() for section in section_list: section_strength = self.sections_manager[section] labs_capacity = self.lab_capacity_manager - section_schedule, self.teacher_availability_matrix = self._generate_section_schedule( + section_schedule, self.teacher_availability_matrix ,teacher_workload_tracker= self._generate_section_schedule( section, half_day_sections, section_subject_usage_tracker, @@ -305,9 +345,8 @@ def generate_daily_schedule( return daily_schedule, section_subject_usage_tracker, self.teacher_availability_matrix,teacher_workload_tracker - def _generate_weekly_schedule(self): + def _generate_weekly_schedule(self,teacher_workload_tracker): weekly_schedule = {} - teacher_workload_tracker = self._initialize_teacher_workload_tracker() section_subject_usage_tracker = { section: {subject: 0 for subject in self.subject_teacher_mapping.keys()} for section in self.sections_manager.keys() @@ -321,15 +360,14 @@ def _generate_weekly_schedule(self): section_list, half_day_sections, section_subject_usage_tracker, day_index,teacher_workload_tracker ) weekly_schedule[weekday] = daily_schedule - - return weekly_schedule, section_subject_usage_tracker, self.teacher_availability_matrix + return weekly_schedule, section_subject_usage_tracker, self.teacher_availability_matrix,teacher_workload_tracker def create_timetable(self, num_weeks): timetable = {} # Reset lab matrix to initial state for each timetable generation. for week_number in range(1, num_weeks + 1): self.lab_availability_matrix = copy.deepcopy(self.initial_lab_availability_matrix) - weekly_schedule, _, self.teacher_availability_matrix = self._generate_weekly_schedule() + teacher_workload_tracker = self._initialize_teacher_workload_tracker() + weekly_schedule, _, self.teacher_availability_matrix,teacher_workload_tracker = self._generate_weekly_schedule(teacher_workload_tracker) timetable[f"Week {week_number}"] = weekly_schedule - return timetable, self.teacher_availability_matrix, self.lab_availability_matrix diff --git a/GA/fitness.py b/GA/fitness.py index eab2f77..8efb1a9 100644 --- a/GA/fitness.py +++ b/GA/fitness.py @@ -47,17 +47,19 @@ def evaluate_timetable_fitness(self): daily_section_fitness_scores[week][day] = {} day_fitness = 0 for section, section_schedule in day_schedule.items(): + # print(section_schedule) section_fitness = Defaults.starting_section_fitness classroom_time_slot_tracking = {} for schedule_item in section_schedule: - assigned_teacher = schedule_item["teacher_id"] - assigned_classroom = schedule_item["classroom_id"] - assigned_time_slot = self.time_slots.get( - schedule_item["time_slot"] - ) - section_strength = self.section_student_strength.get(section, 0) + if isinstance(schedule_item, dict): + assigned_teacher = schedule_item['teacher_id'] + assigned_classroom = schedule_item['classroom_id'] + assigned_time_slot = self.time_slots.get( + schedule_item['time_slot'] + ) + section_strength = self.section_student_strength.get(section, 0) # Penalty 1: Double booking a teacher in the same time slot if (assigned_teacher, assigned_time_slot) in teacher_time_slot_tracking.keys(): diff --git a/GA/mutation.py b/GA/mutation.py index 8b3ac15..35927c8 100644 --- a/GA/mutation.py +++ b/GA/mutation.py @@ -34,11 +34,15 @@ def mutate_time_slots_in_section(self, schedule, section): if len(section_list) < 2: # Not enough time slots to shuffle return False - time_slots = [entry["time_slot"] for entry in section_list] + # Ensure only dictionaries are processed + time_slots = [entry["time_slot"] for entry in section_list if isinstance(entry, dict)] + random.shuffle(time_slots) - for i, entry in enumerate(section_list): - entry["time_slot"] = time_slots[i] + for entry in section_list: + if not isinstance(entry, dict): + print(f"Invalid entry detected: {entry}") + return True return False diff --git a/Samples/samples.py b/Samples/samples.py index 52fbf9d..4264cf6 100644 --- a/Samples/samples.py +++ b/Samples/samples.py @@ -196,2947 +196,1564 @@ class Lab_availability: } class SampleChromosome: - schedule1={ - "Monday": { - "A": [ - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - } - ], - "D": [ - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "HP18", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Tuesday": { - "A": [ - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "B": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "NB22", - "subject_id": "XCS-501", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Wednesday": { - "A": [ - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - } - ], - "B": [ - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "HP18", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - }, - { - "teacher_id": "SG19", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "NJ13", - "subject_id": "TMA-502", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Thursday": { - "A": [ - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - } - ], - "B": [ - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "C": [ - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "HP18", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "NJ13", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SG19", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Friday": { - "A": [ - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "D": [ - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Saturday": { - "A": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - } -} - schedule2={ - "Monday": { - "A": [ - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "B": [ - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "NB22", - "subject_id": "XCS-501", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Tuesday": { - "A": [ - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "B": [ - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - } - ], - "D": [ - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "NB22", - "subject_id": "XCS-501", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AA15", - "subject_id": "PMA-502", - "classroom_id": "L3", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AA15", - "subject_id": "PMA-502", - "classroom_id": "L3", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "AC05", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "RD09", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Wednesday": { - "A": [ - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - } - ], - "D": [ - { - "teacher_id": "HP18", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "PM14", - "subject_id": "PMA-502", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "SG19", - "subject_id": "TCS-509", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "PA21", - "subject_id": "XCS-501", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Thursday": { - "A": [ - { - "teacher_id": "AP24", - "subject_id": "SCS-501", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DT20", - "subject_id": "XCS-501", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB17", - "subject_id": "TCS-509", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "DP07", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "D": [ - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "VD25", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "HP18", - "subject_id": "TCS-509", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AA04", - "subject_id": "TCS-502", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "13:50 - 14:50", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "14:50 - 15:50", - "group": 2 - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "RS11", - "subject_id": "PCS-503", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - }, - { - "teacher_id": "SG19", - "subject_id": "TCS-509", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Friday": { - "A": [ - { - "teacher_id": "BJ10", - "subject_id": "TMA-502", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "SP06", - "subject_id": "TCS-503", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "AK23", - "subject_id": "CSP-501", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "08:00 - 09:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L2", - "time_slot": "09:00 - 10:00", - "group": 1 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "11:00 - 12:00", - "group": 2 - }, - { - "teacher_id": "AD08", - "subject_id": "PCS-506", - "classroom_id": "L1", - "time_slot": "12:00 - 13:00", - "group": 2 - } - ], - "C": [ - { - "teacher_id": "SJ16", - "subject_id": "TCS-509", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "DP07", - "subject_id": "TCS-503", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "RS11", - "subject_id": "TMA-502", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "PK02", - "subject_id": "TCS-531", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "SS03", - "subject_id": "TCS-502", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "AB01", - "subject_id": "TCS-531", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "JM12", - "subject_id": "TMA-502", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "AC05", - "subject_id": "TCS-503", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "NJ13", - "subject_id": "TMA-502", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": 1 - }, - { - "teacher_id": "AK26", - "subject_id": "Placement_Class", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": 1 - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - }, - "Saturday": { - "A": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R1", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "B": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R2", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "C": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R3", - "time_slot": "12:00 - 13:00", - "group": "all" - } - ], - "D": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R4", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "E": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R5", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ], - "F": [ - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "08:00 - 09:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "09:00 - 10:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "11:00 - 12:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "12:00 - 13:00", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "13:50 - 14:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "14:50 - 15:50", - "group": "all" - }, - { - "teacher_id": "None", - "subject_id": "Library", - "classroom_id": "R6", - "time_slot": "16:50 - 17:50", - "group": "all" - } - ] - } -} \ No newline at end of file + schedule1={'Friday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'HP18', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AC05', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R5', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R5', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}]}, + 'Monday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R2', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R2', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '3:30 - 4:25'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '12:05 - 1:00'}], + 'C': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'NJ13', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'AC05', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '3:30 - 4:25'}]}, + 'Saturday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}]}, + 'Thursday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '12:05 - 1:00'}], + 'C': [{'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'NJ13', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AC05', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}]}, + 'Tuesday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '3:30 - 4:25'}], + 'B': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '12:05 - 1:00'}], + 'C': [{'classroom_id': 'R3', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'RS11', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '12:05 - 1:00'}]}, + 'Wednesday': {'A': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'NJ13', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'NB22', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'AC05', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '3:30 - 4:25'}]} + } + schedule2={'Friday': {'A': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'VD25', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'VD25', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'VD25', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'VD25', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'AC05', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}]}, + 'Monday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'special_subject', + 'subject_id': 'Placement_Class', + 'teacher_id': 'AK26', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AC05', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'NB22', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '12:05 - 1:00'}]}, + 'Saturday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}]}, + 'Thursday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'HP18', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AC05', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '3:30 - 4:25'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '3:30 - 4:25'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'Library', + 'teacher_id': 'None', + 'time_slot': '12:05 - 1:00'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-503', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}]}, + 'Tuesday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '12:05 - 1:00'}], + 'C': [{'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'RS11', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AA15', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L3', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AA15', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AA15', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L4', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AA15', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PCS-506', + 'teacher_id': 'RD09', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'SCS-501', + 'teacher_id': 'AP24', + 'time_slot': '3:30 - 4:25'}]}, + 'Wednesday': {'A': [{'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'BJ10', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'DT20', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R2', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AA04', + 'time_slot': '12:05 - 1:00'}], + 'B': [{'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R4', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'PM14', + 'time_slot': '12:05 - 1:00'}], + 'C': [{'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L1', + 'group': 1, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'L2', + 'group': 2, + 'subject_id': 'PMA-502', + 'teacher_id': 'AD08', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'SP06', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'AB17', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'SS03', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'AB01', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R3', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'JM12', + 'time_slot': '3:30 - 4:25'}], + 'D': [{'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-509', + 'teacher_id': 'SJ16', + 'time_slot': '9:00 - 9:55'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TMA-502', + 'teacher_id': 'RS11', + 'time_slot': '9:55 - 10:50'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-502', + 'teacher_id': 'AC05', + 'time_slot': '11:10 - 12:05'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'CSP-501', + 'teacher_id': 'AK23', + 'time_slot': '12:05 - 1:00'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-503', + 'teacher_id': 'DP07', + 'time_slot': '1:20 - 2:15'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'XCS-501', + 'teacher_id': 'PA21', + 'time_slot': '2:15 - 3:10'}, + {'classroom_id': 'R5', + 'group': 'all', + 'subject_id': 'TCS-531', + 'teacher_id': 'PK02', + 'time_slot': '3:30 - 4:25'}]}} \ No newline at end of file diff --git a/__init__.py b/__init__.py index a380c84..f598007 100644 --- a/__init__.py +++ b/__init__.py @@ -1,20 +1,38 @@ -from Constants.constant import Defaults -from Constants.helper_routines import (initialize_teacher_availability, - update_matrix_for_best, - update_teacher_availability_matrix) +import copy +from Constants.helper_routines import ( + initialize_teacher_availability, + update_matrix_for_best, + update_teacher_availability_matrix +) +from Constants.constant import (Defaults, TeacherPreferences) from GA.chromosome import TimeTableGeneration from GA.fitness import TimetableFitnessEvaluator from GA.mutation import TimeTableCrossOver, TimeTableMutation from GA.selection import TimeTableSelection -from Samples.samples import (InterDepartment, RoomCapacity, SpecialSubjects, - SubjectTeacherMap, SubjectWeeklyQuota, -<<<<<<< HEAD - TeacherWorkload, TimeSlots) +def update_teacher_weekly_workload(teacher_availability_matrix, main_weekly_workload): + new_weekly_workload = {} + for teacher, availability in teacher_availability_matrix.items(): + available_slots = sum(sum(day) for day in availability) + new_weekly_workload[teacher] = main_weekly_workload.get(teacher, 0) - available_slots + return new_weekly_workload + +def update_lab_availability_matrix(initial_lab_matrix, best_timetable, day_map, time_slot_map): + updated_lab_matrix = copy.deepcopy(initial_lab_matrix) + for weekday, daily_schedule in best_timetable.items(): + day_index = day_map.get(weekday) + if day_index is None: + continue + for section, allocations in daily_schedule.items(): + for alloc in allocations: + lab = alloc.get("classroom_id") + if lab in updated_lab_matrix: + time_slot_str = alloc.get("time_slot") + ts_index = time_slot_map.get(time_slot_str) + if ts_index is not None: + updated_lab_matrix[lab][day_index][ts_index - 1] = False + return updated_lab_matrix -======= - TeacherWorkload, RoomCapacity, TimeSlots) ->>>>>>> refactor_main_code3 def timetable_generation( teacher_subject_mapping, total_sections, @@ -27,6 +45,7 @@ def timetable_generation( subject_quota_limits, teacher_duty_days, teacher_availability_matrix, + lab_availability_matrix, time_slots, total_generations, prev_selected_chromosomes=None, @@ -37,20 +56,19 @@ def timetable_generation( total_sections=total_sections, total_classrooms=total_classrooms, total_labs=total_labs, - teacher_preferences=teacher_preferences, + teacher_preferences=TeacherPreferences(teacher_weekly_workload).get_preferences(), teacher_weekly_workload=teacher_weekly_workload, special_subjects=special_subjects, labs=labs, subject_quota_limits=subject_quota_limits, teacher_duty_days=teacher_duty_days, teacher_availability_matrix=teacher_availability_matrix, + lab_availability_matrix=lab_availability_matrix, time_slots=time_slots ) - - timetable, teacher_availability_matrix = timetable_generator.create_timetable( - total_generations - ) - + + timetable, teacher_availability_matrix, lab_availability_matrix = timetable_generator.create_timetable(total_generations) + fitness_calculator = TimetableFitnessEvaluator( timetable=timetable, all_sections=list(timetable_generator.sections_manager.keys()), @@ -68,21 +86,18 @@ def timetable_generation( selection_object = TimeTableSelection() selected_chromosomes = selection_object.select_chromosomes(fitness_scores[1]) - if prev_selected_chromosomes: selected_chromosomes.update(prev_selected_chromosomes) crossover_object = TimeTableCrossOver() crossover_chromosomes = [] selected_keys = list(selected_chromosomes.keys()) - for i in range(0, len(selected_keys), 2): if i + 1 < len(selected_keys): parent1 = selected_keys[i] parent2 = selected_keys[i + 1] c1, c2 = crossover_object.perform_crossover(timetable[parent1], timetable[parent2]) - crossover_chromosomes.append(c1) - crossover_chromosomes.append(c2) + crossover_chromosomes.extend([c1, c2]) mutation_object = TimeTableMutation() mutated_chromosomes = [mutation_object.mutate_schedule_for_week(ch) for ch in crossover_chromosomes] @@ -91,7 +106,6 @@ def timetable_generation( best_chromosome_score = -1 best_chromosome = None - for w_no, w_score in selected_chromosomes.items(): score = int(w_score) if score > best_chromosome_score and w_no in timetable: @@ -103,7 +117,7 @@ def timetable_generation( teacher_availability_matrix, best_chromosome ) - + return best_chromosome, teacher_availability_matrix, selected_chromosomes, mutated_chromosomes @@ -119,12 +133,13 @@ def run_timetable_generations( subject_quota_limits, teacher_duty_days, teacher_availability_matrix, - total_generations + lab_availability_matrix, + total_generations, + time_slots ): prev_selected = None prev_mutated = None best_chromosome = None - for _ in range(total_generations): best_chromosome, teacher_availability_matrix, selected, mutated = timetable_generation( teacher_subject_mapping=teacher_subject_mapping, @@ -138,14 +153,15 @@ def run_timetable_generations( subject_quota_limits=subject_quota_limits, teacher_duty_days=teacher_duty_days, teacher_availability_matrix=teacher_availability_matrix, + lab_availability_matrix=lab_availability_matrix, + time_slots=time_slots, prev_selected_chromosomes=prev_selected, - prev_mutated_chromosomes=prev_mutated + prev_mutated_chromosomes=prev_mutated, + total_generations=total_generations ) prev_selected = selected prev_mutated = mutated - - return best_chromosome, teacher_availability_matrix - + return best_chromosome, teacher_availability_matrix, lab_availability_matrix def run_timetable_generation( teacher_subject_mapping, @@ -159,70 +175,69 @@ def run_timetable_generation( subject_quota_limits, teacher_duty_days, teacher_availability_matrix, + lab_availability_matrix, total_generations, - time_slots + time_slots, + day_map, + time_slot_map ): - prev_selected = None - prev_mutated = None - best_chromosome = None - - for _ in range(total_generations): - best_chromosome, teacher_availability_matrix, selected, mutated = timetable_generation( - teacher_subject_mapping=teacher_subject_mapping, - total_sections=total_sections, - total_classrooms=total_classrooms, - total_labs=total_labs, - teacher_preferences=teacher_preferences, - teacher_weekly_workload=teacher_weekly_workload, - special_subjects=special_subjects, - labs=labs, - subject_quota_limits=subject_quota_limits, - teacher_duty_days=teacher_duty_days, - teacher_availability_matrix=teacher_availability_matrix, - time_slots=time_slots, - prev_selected_chromosomes=prev_selected, - prev_mutated_chromosomes=prev_mutated, - total_generations=total_generations - ) - prev_selected = selected - prev_mutated = mutated - - correct_teacher_availability_matrix = update_matrix_for_best( - best_chromosome, + best_tt, teacher_availability_matrix, lab_availability_matrix = run_timetable_generations( + teacher_subject_mapping=teacher_subject_mapping, + total_sections=total_sections, + total_classrooms=total_classrooms, + total_labs=total_labs, + teacher_preferences=teacher_preferences, + teacher_weekly_workload=teacher_weekly_workload, + special_subjects=special_subjects, + labs=labs, + subject_quota_limits=subject_quota_limits, + teacher_duty_days=teacher_duty_days, + teacher_availability_matrix=teacher_availability_matrix, + lab_availability_matrix=lab_availability_matrix, + total_generations=Defaults.total_no_of_generations, + time_slots=time_slots + ) + teacher_availability_matrix = update_matrix_for_best( + best_tt, teacher_availability_matrix, - { - "Monday": 0, - "Tuesday": 1, - "Wednesday": 2, - "Thursday": 3, - "Friday": 4, - "Saturday": 5, - "Sunday": 6 - }, time_slots + day_map, + time_slot_map ) + weekly_workload=update_teacher_weekly_workload(teacher_availability_matrix, teacher_weekly_workload) + # Update the INITIAL lab matrix based solely on the best chromosome's lab allocations. + updated_lab_matrix = update_lab_availability_matrix(lab_availability_matrix, best_tt, day_map, time_slot_map) + return best_tt, teacher_availability_matrix, updated_lab_matrix,weekly_workload - return best_chromosome, correct_teacher_availability_matrix - - -if __name__ == "__main__": - best, correct_teacher_availability_matrix = run_timetable_generation( +if __name__ == '__main__': + from Constants.constant import Defaults + from GA.__init__ import run_timetable_generation + from Samples.samples import (SpecialSubjects, SubjectTeacherMap, + SubjectWeeklyQuota, TeacherWorkload) + lab_availability_matrix = { + "L1": [[True] * 7 for _ in range(5)], + "L2": [[True] * 7 for _ in range(5)], + "L3": [[True] * 7 for _ in range(5)], + "L4": [[True] * 7 for _ in range(5)], + "L5": [[True] * 7 for _ in range(5)], + "L6": [[True] * 7 for _ in range(5)], + } + best, correct_teacher_availability_matrix, correct_lab_availability_matrix,weekly_workload = run_timetable_generation( teacher_subject_mapping=SubjectTeacherMap.subject_teacher_map, total_sections={"A": 70, "B": 100, "C": 75, "D": 100}, total_classrooms={"R1": 200, "R2": 230, "R3": 240, "R4": 250, "R5": 250}, - total_labs={"L1":70,"L2":50,"L3":70,"L4":50,"L5":70,"L6":50}, - teacher_preferences=TeacherWorkload.teacher_preferences, + total_labs={"L1": 70, "L2": 50, "L3": 70, "L4": 50, "L5": 70, "L6": 50}, + teacher_preferences={}, teacher_weekly_workload=TeacherWorkload.Weekly_workLoad, special_subjects=SpecialSubjects.special_subjects, labs=SpecialSubjects.Labs, subject_quota_limits=SubjectWeeklyQuota.subject_quota, teacher_duty_days=TeacherWorkload.teacher_duty_days, teacher_availability_matrix=initialize_teacher_availability( - TeacherWorkload.Weekly_workLoad.keys(), - 5, - 7 + TeacherWorkload.Weekly_workLoad.keys(), 5, 7 ), - total_generations = Defaults.total_no_of_generations, - time_slots = { + lab_availability_matrix=lab_availability_matrix, + total_generations=Defaults.total_no_of_generations, + time_slots={ 1: "9:00 - 9:55", 2: "9:55 - 10:50", 3: "11:10 - 12:05", @@ -230,14 +245,8 @@ def run_timetable_generation( 5: "1:20 - 2:15", 6: "2:15 - 3:10", 7: "3:30 - 4:25", - } - ) - - from icecream import ic - correct_teacher_availability_matrix = update_matrix_for_best( - best, - correct_teacher_availability_matrix, - { + }, + day_map={ "Monday": 0, "Tuesday": 1, "Wednesday": 2, @@ -245,7 +254,8 @@ def run_timetable_generation( "Friday": 4, "Saturday": 5, "Sunday": 6 - },{ + }, + time_slot_map={ "9:00 - 9:55": 1, "9:55 - 10:50": 2, "11:10 - 12:05": 3, @@ -255,4 +265,20 @@ def run_timetable_generation( "3:30 - 4:25": 7 } ) - ic(best, correct_teacher_availability_matrix) + print(weekly_workload) + import json + + # Assuming 'best' is a dictionary or a JSON serializable object + best_data = best # Replace with the actual data structure + + # Define the output JSON file name + output_file = "best_solution.json" + + # Save to JSON file + with open(output_file, "w", encoding="utf-8") as file: + json.dump(best_data, file, indent=4) + + print(f"Best solution saved to {output_file}") + + # from icecream import ic + # ic(best, correct_teacher_availability_matrix, correct_lab_availability_matrix) \ No newline at end of file diff --git a/best_solution.json b/best_solution.json new file mode 100644 index 0000000..ace4562 --- /dev/null +++ b/best_solution.json @@ -0,0 +1,1098 @@ +{ + "Monday": { + "A": [ + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L1", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L1", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "SS03", + "subject_id": "TCS-502", + "classroom_id": "R2", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "BJ10", + "subject_id": "TMA-502", + "classroom_id": "R2", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "C": [ + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R3", + "time_slot": "9:00 - 9:55", + "group": "special_subject" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R3", + "time_slot": "9:55 - 10:50", + "group": "special_subject" + }, + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "SJ16", + "subject_id": "TCS-509", + "classroom_id": "R3", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "D": [ + { + "teacher_id": "RS11", + "subject_id": "TMA-502", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "DP07", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "11:10 - 12:05", + "group": 1 + }, + { + "teacher_id": "DP07", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "12:05 - 1:00", + "group": 1 + }, + { + "teacher_id": "DP07", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "11:10 - 12:05", + "group": 2 + }, + { + "teacher_id": "DP07", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "12:05 - 1:00", + "group": 2 + }, + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R5", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": "AA04", + "subject_id": "TCS-502", + "classroom_id": "R5", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": "AB17", + "subject_id": "TCS-509", + "classroom_id": "R5", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "B": [ + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R4", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "AK23", + "subject_id": "CSP-501", + "classroom_id": "R4", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L3", + "time_slot": "11:10 - 12:05", + "group": 1 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L3", + "time_slot": "12:05 - 1:00", + "group": 1 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L4", + "time_slot": "11:10 - 12:05", + "group": 2 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L4", + "time_slot": "12:05 - 1:00", + "group": 2 + }, + { + "teacher_id": "AC05", + "subject_id": "TCS-502", + "classroom_id": "R4", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": "AP24", + "subject_id": "SCS-501", + "classroom_id": "R4", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": "JM12", + "subject_id": "TMA-502", + "classroom_id": "R4", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + }, + "Tuesday": { + "D": [ + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "SS03", + "subject_id": "TCS-502", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "NJ13", + "subject_id": "TMA-502", + "classroom_id": "R5", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "AP24", + "subject_id": "SCS-501", + "classroom_id": "R5", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "B": [ + { + "teacher_id": "BJ10", + "subject_id": "TMA-502", + "classroom_id": "R4", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "DT20", + "subject_id": "XCS-501", + "classroom_id": "R4", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "HP18", + "subject_id": "TCS-509", + "classroom_id": "R4", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "AA04", + "subject_id": "TCS-502", + "classroom_id": "R4", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "A": [ + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R2", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "AC05", + "subject_id": "TCS-502", + "classroom_id": "R2", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "PA21", + "subject_id": "XCS-501", + "classroom_id": "R2", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "AK23", + "subject_id": "CSP-501", + "classroom_id": "R2", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": "AP24", + "subject_id": "SCS-501", + "classroom_id": "R2", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "C": [ + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R3", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "RS11", + "subject_id": "TMA-502", + "classroom_id": "R3", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "SG19", + "subject_id": "TCS-509", + "classroom_id": "R3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "NB22", + "subject_id": "XCS-501", + "classroom_id": "R3", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "AA15", + "subject_id": "PMA-502", + "classroom_id": "L2", + "time_slot": "1:20 - 2:15", + "group": 1 + }, + { + "teacher_id": "AA15", + "subject_id": "PMA-502", + "classroom_id": "L2", + "time_slot": "2:15 - 3:10", + "group": 1 + }, + { + "teacher_id": "AA15", + "subject_id": "PMA-502", + "classroom_id": "L3", + "time_slot": "1:20 - 2:15", + "group": 2 + }, + { + "teacher_id": "AA15", + "subject_id": "PMA-502", + "classroom_id": "L3", + "time_slot": "2:15 - 3:10", + "group": 2 + }, + { + "teacher_id": "AK23", + "subject_id": "CSP-501", + "classroom_id": "R3", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + }, + "Wednesday": { + "D": [ + { + "teacher_id": "AC05", + "subject_id": "TCS-503", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "SJ16", + "subject_id": "TCS-509", + "classroom_id": "R5", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "DT20", + "subject_id": "XCS-501", + "classroom_id": "R5", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "B": [ + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R4", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "JM12", + "subject_id": "TMA-502", + "classroom_id": "R4", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R4", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "PA21", + "subject_id": "XCS-501", + "classroom_id": "R4", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "A": [ + { + "teacher_id": "DP07", + "subject_id": "TCS-503", + "classroom_id": "R2", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "SS03", + "subject_id": "TCS-502", + "classroom_id": "R2", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "AB17", + "subject_id": "TCS-509", + "classroom_id": "R2", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "NB22", + "subject_id": "XCS-501", + "classroom_id": "R2", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R2", + "time_slot": "1:20 - 2:15", + "group": "special_subject" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R2", + "time_slot": "2:15 - 3:10", + "group": "special_subject" + }, + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R2", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "C": [ + { + "teacher_id": "NJ13", + "subject_id": "TMA-502", + "classroom_id": "R3", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R3", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "HP18", + "subject_id": "TCS-509", + "classroom_id": "R3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "AA04", + "subject_id": "TCS-502", + "classroom_id": "R3", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "DT20", + "subject_id": "XCS-501", + "classroom_id": "R3", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": "AC05", + "subject_id": "TCS-503", + "classroom_id": "R3", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": "AP24", + "subject_id": "SCS-501", + "classroom_id": "R3", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + }, + "Thursday": { + "C": [ + { + "teacher_id": "SS03", + "subject_id": "TCS-502", + "classroom_id": "R3", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "BJ10", + "subject_id": "TMA-502", + "classroom_id": "R3", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "RS11", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "11:10 - 12:05", + "group": 1 + }, + { + "teacher_id": "RS11", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "12:05 - 1:00", + "group": 1 + }, + { + "teacher_id": "RS11", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "11:10 - 12:05", + "group": 2 + }, + { + "teacher_id": "RS11", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "12:05 - 1:00", + "group": 2 + } + ], + "A": [ + { + "teacher_id": "SG19", + "subject_id": "TCS-509", + "classroom_id": "R2", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "JM12", + "subject_id": "TMA-502", + "classroom_id": "R2", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L3", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "D": [ + { + "teacher_id": "PA21", + "subject_id": "XCS-501", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "AA04", + "subject_id": "TCS-502", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "NJ13", + "subject_id": "TMA-502", + "classroom_id": "R5", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "SJ16", + "subject_id": "TCS-509", + "classroom_id": "R5", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L1", + "time_slot": "1:20 - 2:15", + "group": 1 + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L1", + "time_slot": "2:15 - 3:10", + "group": 1 + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L2", + "time_slot": "1:20 - 2:15", + "group": 2 + }, + { + "teacher_id": "RD09", + "subject_id": "PCS-506", + "classroom_id": "L2", + "time_slot": "2:15 - 3:10", + "group": 2 + }, + { + "teacher_id": "AK23", + "subject_id": "CSP-501", + "classroom_id": "R5", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "B": [ + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "9:00 - 9:55", + "group": 1 + }, + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L1", + "time_slot": "9:55 - 10:50", + "group": 1 + }, + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "9:00 - 9:55", + "group": 2 + }, + { + "teacher_id": "VD25", + "subject_id": "PCS-503", + "classroom_id": "L2", + "time_slot": "9:55 - 10:50", + "group": 2 + }, + { + "teacher_id": "AB17", + "subject_id": "TCS-509", + "classroom_id": "R4", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R4", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R4", + "time_slot": "1:20 - 2:15", + "group": "special_subject" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R4", + "time_slot": "2:15 - 3:10", + "group": "special_subject" + }, + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R4", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + }, + "Friday": { + "B": [ + { + "teacher_id": "SS03", + "subject_id": "TCS-502", + "classroom_id": "R4", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "DP07", + "subject_id": "TCS-503", + "classroom_id": "R4", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "HP18", + "subject_id": "TCS-509", + "classroom_id": "R4", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "A": [ + { + "teacher_id": "AC05", + "subject_id": "TCS-503", + "classroom_id": "R2", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": "SG19", + "subject_id": "TCS-509", + "classroom_id": "R2", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "BJ10", + "subject_id": "TMA-502", + "classroom_id": "R2", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R2", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "D": [ + { + "teacher_id": "AB01", + "subject_id": "TCS-531", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L1", + "time_slot": "11:10 - 12:05", + "group": 1 + }, + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L1", + "time_slot": "12:05 - 1:00", + "group": 1 + }, + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L2", + "time_slot": "11:10 - 12:05", + "group": 2 + }, + { + "teacher_id": "PM14", + "subject_id": "PMA-502", + "classroom_id": "L2", + "time_slot": "12:05 - 1:00", + "group": 2 + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R5", + "time_slot": "1:20 - 2:15", + "group": "special_subject" + }, + { + "teacher_id": "AK26", + "subject_id": "Placement_Class", + "classroom_id": "R5", + "time_slot": "2:15 - 3:10", + "group": "special_subject" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "C": [ + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L1", + "time_slot": "9:00 - 9:55", + "group": 1 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L1", + "time_slot": "9:55 - 10:50", + "group": 1 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L2", + "time_slot": "9:00 - 9:55", + "group": 2 + }, + { + "teacher_id": "AD08", + "subject_id": "PCS-506", + "classroom_id": "L2", + "time_slot": "9:55 - 10:50", + "group": 2 + }, + { + "teacher_id": "SP06", + "subject_id": "TCS-503", + "classroom_id": "R3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": "PK02", + "subject_id": "TCS-531", + "classroom_id": "R3", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": "AA04", + "subject_id": "TCS-502", + "classroom_id": "R3", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + }, + "Saturday": { + "C": [ + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R3", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "D": [ + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R5", + "time_slot": "12:05 - 1:00", + "group": "all" + } + ], + "B": [ + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R4", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ], + "A": [ + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "9:00 - 9:55", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "9:55 - 10:50", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "11:10 - 12:05", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "12:05 - 1:00", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "1:20 - 2:15", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "2:15 - 3:10", + "group": "all" + }, + { + "teacher_id": null, + "subject_id": "Library", + "classroom_id": "R2", + "time_slot": "3:30 - 4:25", + "group": "all" + } + ] + } +} \ No newline at end of file diff --git a/output_csvs/L1.csv b/output_csvs/L1.csv index ad5fa34..cfa9a5f 100644 --- a/output_csvs/L1.csv +++ b/output_csvs/L1.csv @@ -1,7 +1,7 @@ -DAY,11:00 - 12:00,12:00 - 13:00 -Monday,"PMA-502 (F, PM14)","PMA-502 (F, PM14)" -Tuesday,"PCS-506 (F, RD09)","PCS-506 (F, RD09)" -Wednesday,"PMA-502 (A, PM14)","PMA-502 (A, PM14)" -Thursday,"PMA-502 (B, PM14)","PMA-502 (B, PM14)" -Friday,"PCS-506 (D, AD08)","PCS-506 (D, AD08)" -Saturday,, +DAY,11:10 - 12:05,9:55 - 10:50,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,"PCS-506 (C, AD08)","PCS-503 (C, RS11)","PCS-506 (C, AD08)","PCS-506 (C, AD08)","PCS-506 (C, AD08)","PCS-503 (C, RS11)" +Tuesday,"PCS-506 (A, AD08)","PMA-502 (B, PM14)","PCS-506 (A, AD08)","PCS-506 (D, RD09)","PCS-506 (D, RD09)","PMA-502 (B, PM14)" +Wednesday,"PCS-506 (B, RD09)","PCS-503 (A, RS11)","PCS-506 (B, RD09)","PCS-506 (D, AD08)","PCS-506 (D, AD08)","PCS-503 (A, RS11)" +Thursday,"PMA-502 (D, PM14)","PCS-503 (D, RS11)","PMA-502 (D, PM14)","PCS-506 (A, AD08)","PCS-506 (A, AD08)","PCS-503 (D, RS11)" +Friday,"PMA-502 (A, PM14)","PCS-503 (A, RS11)","PMA-502 (A, PM14)","PCS-503 (B, VD25)","PCS-503 (B, VD25)","PCS-503 (A, RS11)" +Saturday,,,,,, diff --git a/output_csvs/L2.csv b/output_csvs/L2.csv index e213010..cfa9a5f 100644 --- a/output_csvs/L2.csv +++ b/output_csvs/L2.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,14:50 - 15:50,13:50 - 14:50 -Monday,"PCS-503 (A, RS11)","PCS-503 (A, RS11)","PMA-502 (F, PM14)","PMA-502 (F, PM14)" -Tuesday,"PCS-506 (A, AD08)","PCS-506 (A, AD08)","PCS-506 (F, RD09)","PCS-506 (F, RD09)" -Wednesday,"PMA-502 (E, AD08)","PMA-502 (E, AD08)","PCS-503 (E, VD25)","PCS-503 (E, VD25)" -Thursday,"PMA-502 (B, PM14)","PMA-502 (B, PM14)","PCS-506 (E, AD08)","PCS-506 (E, AD08)" -Friday,"PCS-506 (D, AD08)","PCS-506 (D, AD08)",, -Saturday,,,, +DAY,11:10 - 12:05,9:55 - 10:50,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,"PCS-506 (C, AD08)","PCS-503 (C, RS11)","PCS-506 (C, AD08)","PCS-506 (C, AD08)","PCS-506 (C, AD08)","PCS-503 (C, RS11)" +Tuesday,"PCS-506 (A, AD08)","PMA-502 (B, PM14)","PCS-506 (A, AD08)","PCS-506 (D, RD09)","PCS-506 (D, RD09)","PMA-502 (B, PM14)" +Wednesday,"PCS-506 (B, RD09)","PCS-503 (A, RS11)","PCS-506 (B, RD09)","PCS-506 (D, AD08)","PCS-506 (D, AD08)","PCS-503 (A, RS11)" +Thursday,"PMA-502 (D, PM14)","PCS-503 (D, RS11)","PMA-502 (D, PM14)","PCS-506 (A, AD08)","PCS-506 (A, AD08)","PCS-503 (D, RS11)" +Friday,"PMA-502 (A, PM14)","PCS-503 (A, RS11)","PMA-502 (A, PM14)","PCS-503 (B, VD25)","PCS-503 (B, VD25)","PCS-503 (A, RS11)" +Saturday,,,,,, diff --git a/output_csvs/L3.csv b/output_csvs/L3.csv index 7f96718..34a98ae 100644 --- a/output_csvs/L3.csv +++ b/output_csvs/L3.csv @@ -1,7 +1,7 @@ -DAY,13:50 - 14:50,14:50 - 15:50 -Monday,"PMA-502 (F, PM14)","PMA-502 (F, PM14)" -Tuesday,"PCS-503 (F, VD25)","PCS-503 (F, VD25)" -Wednesday,"PCS-506 (F, RD09)","PCS-506 (F, RD09)" -Thursday,"PCS-503 (E, DP07)","PCS-503 (E, DP07)" -Friday,, -Saturday,, +DAY,9:00 - 9:55,9:55 - 10:50,11:10 - 12:05,12:05 - 1:00 +Monday,,,, +Tuesday,,,"PMA-502 (D, AA15)","PMA-502 (D, AA15)" +Wednesday,,,, +Thursday,"PMA-502 (C, AD08)","PMA-502 (C, AD08)",, +Friday,,,"PCS-503 (B, RS11)","PCS-503 (B, RS11)" +Saturday,,,, diff --git a/output_csvs/L4.csv b/output_csvs/L4.csv new file mode 100644 index 0000000..34a98ae --- /dev/null +++ b/output_csvs/L4.csv @@ -0,0 +1,7 @@ +DAY,9:00 - 9:55,9:55 - 10:50,11:10 - 12:05,12:05 - 1:00 +Monday,,,, +Tuesday,,,"PMA-502 (D, AA15)","PMA-502 (D, AA15)" +Wednesday,,,, +Thursday,"PMA-502 (C, AD08)","PMA-502 (C, AD08)",, +Friday,,,"PCS-503 (B, RS11)","PCS-503 (B, RS11)" +Saturday,,,, diff --git a/output_csvs/R2.csv b/output_csvs/R2.csv index b9a14cc..45684b4 100644 --- a/output_csvs/R2.csv +++ b/output_csvs/R2.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00 -Monday,"TCS-531 (B, AB01)","SCS-501 (B, AP24)","CSP-501 (B, AK23)","TMA-502 (B, BJ10)" -Tuesday,"TCS-531 (B, AB01)","XCS-501 (B, DT20)","TCS-503 (B, SP06)","TCS-502 (B, SS03)" -Wednesday,"TCS-503 (B, SP06)","TCS-531 (B, AB01)","TCS-502 (B, SS03)","TCS-509 (B, SJ16)" -Thursday,"TMA-502 (B, RS11)","TCS-509 (B, AB17)","TCS-503 (B, SP06)","TCS-531 (B, AB01)" -Friday,"XCS-501 (B, DT20)","TCS-503 (B, SP06)","TMA-502 (B, RS11)","TCS-502 (B, AA04)" -Saturday,"Library (B, None)","Library (B, None)","Library (B, None)","Library (B, None)" +DAY,11:10 - 12:05,9:55 - 10:50,3:30 - 4:25,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,"TCS-503 (A, DP07)","TCS-502 (A, SS03)","TMA-502 (A, JM12)","XCS-501 (A, DT20)","Placement_Class (A, AK26)","Placement_Class (A, AK26)","TCS-531 (A, AB01)" +Tuesday,,"SCS-501 (A, AP24)","TCS-509 (A, AB17)",,"XCS-501 (A, PA21)","CSP-501 (A, AK23)","TCS-531 (A, AB01)" +Wednesday,"TCS-503 (A, SP06)","TMA-502 (A, BJ10)",,"TCS-502 (A, SS03)",,,"TCS-531 (A, AB01)" +Thursday,"TCS-503 (A, SP06)","TCS-509 (A, SJ16)","Library (A, None)","TMA-502 (A, JM12)","TCS-531 (A, PK02)","Library (A, None)","TCS-502 (A, AA04)" +Friday,"TCS-503 (A, SP06)","TCS-509 (A, SJ16)",,"TCS-509 (A, SJ16)",,,"TMA-502 (A, BJ10)" +Saturday,"Library (A, None)","Library (A, None)","Library (A, None)","Library (A, None)","Library (A, None)","Library (A, None)","Library (A, None)" diff --git a/output_csvs/R3.csv b/output_csvs/R3.csv index d5bb25d..31afe89 100644 --- a/output_csvs/R3.csv +++ b/output_csvs/R3.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00 -Monday,"TCS-503 (C, DP07)","CSP-501 (C, AK23)","SCS-501 (C, AP24)","XCS-501 (C, PA21)" -Tuesday,"TCS-502 (C, AA04)","TCS-509 (C, SJ16)","TMA-502 (C, BJ10)","SCS-501 (C, AP24)" -Wednesday,"TCS-503 (C, DP07)","TMA-502 (C, RS11)","TCS-531 (C, PK02)","TCS-509 (C, AB17)" -Thursday,"TCS-502 (C, SS03)","TCS-503 (C, SP06)","TCS-509 (C, AB17)","TMA-502 (C, JM12)" -Friday,"TCS-509 (C, SJ16)","TCS-503 (C, DP07)","TMA-502 (C, RS11)","TCS-531 (C, PK02)" -Saturday,"Library (C, None)","Library (C, None)","Library (C, None)","Library (C, None)" +DAY,11:10 - 12:05,9:55 - 10:50,3:30 - 4:25,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,,"XCS-501 (C, DT20)","TMA-502 (C, JM12)",,,,"TCS-509 (C, AB17)" +Tuesday,"CSP-501 (C, AK23)","Placement_Class (C, AK26)","TCS-503 (C, SP06)","XCS-501 (C, DT20)","TMA-502 (C, RS11)","TCS-502 (C, AA04)","Placement_Class (C, AK26)" +Wednesday,"TMA-502 (C, BJ10)","SCS-501 (C, AP24)","TMA-502 (C, JM12)","XCS-501 (C, DT20)","TCS-502 (C, SS03)","TCS-531 (C, AB01)","TCS-531 (C, AB01)" +Thursday,"TCS-531 (C, AB01)","TCS-502 (C, SS03)","TCS-503 (C, DP07)","TMA-502 (C, NJ13)","TCS-509 (C, AB17)","TCS-502 (C, AC05)","TCS-531 (C, PK02)" +Friday,"TCS-509 (C, AB17)","TCS-531 (C, AB01)","Library (C, None)","TCS-503 (C, SP06)","Library (C, None)","Library (C, None)","TCS-502 (C, SS03)" +Saturday,"Library (C, None)","Library (C, None)",,"Library (C, None)",,,"Library (C, None)" diff --git a/output_csvs/R4.csv b/output_csvs/R4.csv index 9f2e032..2d06659 100644 --- a/output_csvs/R4.csv +++ b/output_csvs/R4.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,14:50 - 15:50,13:50 - 14:50 -Monday,"SCS-501 (D, AP24)","TMA-502 (D, RS11)","TCS-509 (D, AB17)","CSP-501 (D, AK23)","TCS-502 (D, SS03)","TCS-503 (D, AC05)","TCS-531 (D, PK02)" -Tuesday,"XCS-501 (D, PA21)","TCS-531 (D, PK02)","TMA-502 (D, RS11)","TCS-509 (D, AB17)","Library (D, None)","TCS-503 (D, DP07)","TCS-502 (D, AC05)" -Wednesday,"TCS-531 (D, AB01)","XCS-501 (D, PA21)","TCS-509 (D, HP18)","TMA-502 (D, JM12)","TCS-503 (D, AC05)",, -Thursday,"TCS-502 (D, SS03)","TCS-531 (D, PK02)",,,"TCS-502 (D, AA04)","Placement_Class (D, AK26)","Placement_Class (D, AK26)" -Friday,"TCS-502 (D, SS03)","TCS-531 (D, AB01)","TMA-502 (D, JM12)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)" -Saturday,"Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)" +DAY,11:10 - 12:05,9:55 - 10:50,3:30 - 4:25,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,"TCS-509 (B, SJ16)","TCS-503 (B, SP06)","XCS-501 (B, NB22)","CSP-501 (B, AK23)","TCS-531 (B, AB01)","CSP-501 (B, AK23)","TMA-502 (B, BJ10)" +Tuesday,"Placement_Class (B, AK26)",,,"Placement_Class (B, AK26)",,, +Wednesday,,"TCS-509 (B, AB17)","TCS-502 (B, AA04)",,"XCS-501 (B, NB22)","TCS-503 (B, AC05)","TMA-502 (B, NJ13)" +Thursday,"TCS-502 (B, SS03)","TMA-502 (B, BJ10)","Library (B, None)","SCS-501 (B, AP24)","TCS-531 (B, AB01)","Library (B, None)","TCS-531 (B, AB01)" +Friday,"TMA-502 (B, JM12)","TCS-531 (B, PK02)","TCS-509 (B, HP18)","Library (B, None)","TCS-503 (B, DP07)","XCS-501 (B, DT20)","TCS-502 (B, AA04)" +Saturday,"Library (B, None)","Library (B, None)","Library (B, None)","Library (B, None)","Library (B, None)","Library (B, None)","Library (B, None)" diff --git a/output_csvs/R5.csv b/output_csvs/R5.csv index 7032bf2..9a635ba 100644 --- a/output_csvs/R5.csv +++ b/output_csvs/R5.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,14:50 - 15:50,13:50 - 14:50 -Monday,"XCS-501 (E, DT20)","TCS-503 (E, SP06)","SCS-501 (E, AP24)","TMA-502 (E, JM12)","TCS-509 (E, HP18)","Placement_Class (E, AK26)","Placement_Class (E, AK26)" -Tuesday,"CSP-501 (E, AK23)","TCS-503 (E, SP06)","TCS-502 (E, SS03)","XCS-501 (E, NB22)","TCS-531 (E, AB01)",, -Wednesday,"TMA-502 (E, RS11)","TCS-531 (E, AB01)",,,"TCS-502 (E, AA04)","TCS-503 (E, SP06)","TCS-509 (E, SG19)" -Thursday,"TCS-531 (E, AB01)","TCS-502 (E, AC05)","TCS-509 (E, HP18)","TMA-502 (E, NJ13)","Library (E, None)",, -Friday,"TCS-531 (E, PK02)","TMA-502 (E, JM12)","Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)" -Saturday,"Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)","Library (E, None)" +DAY,11:10 - 12:05,9:55 - 10:50,3:30 - 4:25,12:05 - 1:00,1:20 - 2:15,2:15 - 3:10,9:00 - 9:55 +Monday,"XCS-501 (D, PA21)","TCS-503 (D, AC05)","SCS-501 (D, AP24)","TCS-531 (D, PK02)","TCS-509 (D, AB17)","TCS-502 (D, AA04)","TMA-502 (D, NJ13)" +Tuesday,"TCS-502 (D, SS03)","TMA-502 (D, BJ10)","SCS-501 (D, AP24)","CSP-501 (D, AK23)",,,"TCS-509 (D, SJ16)" +Wednesday,"TCS-503 (D, DP07)","TCS-509 (D, SJ16)","TCS-531 (D, PK02)","XCS-501 (D, PA21)","TCS-503 (D, DP07)","XCS-501 (D, PA21)","TMA-502 (D, JM12)" +Thursday,,"TCS-509 (D, SJ16)",,,,,"TCS-531 (D, AB01)" +Friday,"TCS-503 (D, SP06)","TCS-531 (D, AB01)","Library (D, None)","Library (D, None)","Placement_Class (D, AK26)","Placement_Class (D, AK26)","TCS-502 (D, AC05)" +Saturday,"Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)","Library (D, None)" diff --git a/setup.py b/setup.py index b50a98d..ac69c76 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ description="This Library generates timetable and is a plug and play solution for any python based backend service.", long_description=open("README.md",encoding="utf-8").read(), long_description_content_type="text/markdown", - author="Graphic Era Hill University, Bhimtal",, + author="Graphic Era Hill University, Bhimtal", license="MIT", install_requires=[ "psycopg2-binary==2.9.9", diff --git a/tt_csvs/AA04.csv b/tt_csvs/AA04.csv index e35e050..014e689 100644 --- a/tt_csvs/AA04.csv +++ b/tt_csvs/AA04.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,12:00 - 13:00,16:50 - 17:50 -Monday,,"TCS-502 (E, R5)",, -Tuesday,"TCS-502 (E, R5)",,,"TCS-502 (F, R6)" -Wednesday,,"TCS-502 (C, R3)",,"TCS-502 (E, R5)" -Thursday,,"TCS-502 (E, R5)",,"TCS-502 (D, R4)" -Friday,,,"TCS-502 (B, R2)", -Saturday,,,, +DAY,9:55 - 10:50,9:00 - 9:55,3:30 - 4:25,2:15 - 3:10,12:05 - 1:00 +Monday,"TCS-502 (D, R5)",,,"TCS-502 (D, R5)", +Tuesday,,,,"TCS-502 (C, R3)", +Wednesday,,,"TCS-502 (B, R4)",,"TCS-502 (A, R2)" +Thursday,,"TCS-502 (A, R2)",,,"TCS-502 (B, R4)" +Friday,,"TCS-502 (B, R4)",,, +Saturday,,,,, diff --git a/tt_csvs/AA15.csv b/tt_csvs/AA15.csv index 5802670..d8a71e8 100644 --- a/tt_csvs/AA15.csv +++ b/tt_csvs/AA15.csv @@ -1,6 +1,6 @@ -DAY,14:50 - 15:50,13:50 - 14:50 +DAY,11:10 - 12:05,12:05 - 1:00 Monday,, -Tuesday,"PMA-502 (E, L3)","PMA-502 (E, L3)" +Tuesday,"PMA-502 (D, L4)","PMA-502 (D, L4)" Wednesday,, Thursday,, Friday,, diff --git a/tt_csvs/AB01.csv b/tt_csvs/AB01.csv index 7236cf1..c177e85 100644 --- a/tt_csvs/AB01.csv +++ b/tt_csvs/AB01.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,12:00 - 13:00,16:50 - 17:50 -Monday,"TCS-531 (B, R2)","TCS-531 (B, R2)",, -Tuesday,"TCS-531 (B, R2)","TCS-531 (B, R2)","TCS-531 (E, R5)","TCS-531 (E, R5)" -Wednesday,"TCS-531 (D, R4)","TCS-531 (B, R2)",, -Thursday,"TCS-531 (E, R5)",,"TCS-531 (B, R2)","TCS-531 (F, R6)" -Friday,"TCS-531 (F, R6)","TCS-531 (D, R4)","TCS-531 (A, R1)", -Saturday,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,2:15 - 3:10 +Monday,,,"TCS-531 (A, R2)","TCS-531 (B, R4)", +Tuesday,,"TCS-531 (A, R2)","TCS-531 (A, R2)",, +Wednesday,,,"TCS-531 (C, R3)",,"TCS-531 (C, R3)" +Thursday,"TCS-531 (C, R3)",,"TCS-531 (D, R5)","TCS-531 (B, R4)", +Friday,,"TCS-531 (C, R3)","TCS-531 (D, R5)",, +Saturday,,,,, diff --git a/tt_csvs/AB17.csv b/tt_csvs/AB17.csv index 4dc1a8d..8ff2325 100644 --- a/tt_csvs/AB17.csv +++ b/tt_csvs/AB17.csv @@ -1,7 +1,7 @@ -DAY,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50 -Monday,"TCS-509 (F, R6)","TCS-509 (D, R4)",, -Tuesday,,,"TCS-509 (D, R4)","TCS-509 (E, R5)" -Wednesday,,"TCS-509 (B, R2)","TCS-509 (C, R3)", -Thursday,"TCS-509 (B, R2)","TCS-509 (C, R3)",, -Friday,"TCS-509 (F, R6)",,, -Saturday,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,3:30 - 4:25,12:05 - 1:00 +Monday,,,"TCS-509 (C, R3)","TCS-509 (D, R5)",, +Tuesday,,,,,"TCS-509 (A, R2)", +Wednesday,,"TCS-509 (B, R4)",,,,"TCS-509 (C, R3)" +Thursday,,,"TCS-509 (B, R4)","TCS-509 (C, R3)",, +Friday,"TCS-509 (C, R3)",,"TCS-509 (B, R4)",,, +Saturday,,,,,, diff --git a/tt_csvs/AC05.csv b/tt_csvs/AC05.csv index 964648a..56349b6 100644 --- a/tt_csvs/AC05.csv +++ b/tt_csvs/AC05.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,12:00 - 13:00,16:50 - 17:50,14:50 - 15:50,13:50 - 14:50 -Monday,,,,"TCS-503 (F, R6)","TCS-503 (D, R4)", -Tuesday,"TCS-502 (F, R6)",,"TCS-503 (D, R4)",,,"TCS-502 (D, R4)" -Wednesday,,"TCS-503 (D, R4)",,"TCS-503 (D, R4)",, -Thursday,"TCS-503 (E, R5)","TCS-502 (E, R5)",,,, -Friday,"TCS-503 (E, R5)",,,,, -Saturday,,,,,, +DAY,11:10 - 12:05,2:15 - 3:10,9:55 - 10:50,9:00 - 9:55 +Monday,"TCS-502 (B, R4)",,"TCS-503 (D, R5)", +Tuesday,,,, +Wednesday,"TCS-502 (D, R5)","TCS-503 (B, R4)",, +Thursday,,"TCS-502 (C, R3)","TCS-502 (A, R2)", +Friday,,,,"TCS-502 (D, R5)" +Saturday,,,, diff --git a/tt_csvs/AD08.csv b/tt_csvs/AD08.csv index d9e06e6..c539696 100644 --- a/tt_csvs/AD08.csv +++ b/tt_csvs/AD08.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50,13:50 - 14:50 -Monday,,,"PCS-506 (C, L1)","PCS-506 (C, L1)","PCS-506 (D, L2)","PCS-506 (D, L2)" -Tuesday,"PCS-506 (A, L2)","PCS-506 (A, L2)","PCS-506 (A, L1)","PCS-506 (A, L1)",, -Wednesday,"PMA-502 (E, L2)","PMA-502 (E, L2)","PMA-502 (E, L1)","PMA-502 (E, L1)",, -Thursday,"PMA-502 (D, L2)","PMA-502 (D, L2)","PMA-502 (D, L1)","PMA-502 (D, L1)","PCS-506 (E, L2)","PCS-506 (E, L2)" -Friday,"PCS-506 (D, L2)","PCS-506 (D, L2)","PCS-506 (D, L1)","PCS-506 (D, L1)",, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,2:15 - 3:10,12:05 - 1:00 +Monday,"PCS-506 (C, L2)",,,"PCS-506 (C, L2)","PCS-506 (C, L2)","PCS-506 (C, L2)" +Tuesday,"PCS-506 (A, L2)","PCS-506 (B, L2)","PCS-506 (B, L2)",,,"PCS-506 (A, L2)" +Wednesday,,"PMA-502 (C, L2)","PMA-502 (C, L2)","PCS-506 (D, L2)","PCS-506 (D, L2)", +Thursday,,"PMA-502 (C, L4)","PMA-502 (C, L4)","PCS-506 (A, L2)","PCS-506 (A, L2)", +Friday,,,,,, Saturday,,,,,, diff --git a/tt_csvs/AK23.csv b/tt_csvs/AK23.csv index 4b257f6..9fed242 100644 --- a/tt_csvs/AK23.csv +++ b/tt_csvs/AK23.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00 -Monday,"CSP-501 (F, R6)","CSP-501 (C, R3)","CSP-501 (B, R2)","CSP-501 (A, R1)" -Tuesday,"CSP-501 (E, R5)",,,"CSP-501 (F, R6)" -Wednesday,"CSP-501 (B, R2)",,, +DAY,11:10 - 12:05,2:15 - 3:10,9:00 - 9:55,12:05 - 1:00 +Monday,,"CSP-501 (B, R4)",,"CSP-501 (B, R4)" +Tuesday,"CSP-501 (C, R3)","CSP-501 (A, R2)","CSP-501 (A, R2)","CSP-501 (D, R5)" +Wednesday,,,,"CSP-501 (D, R5)" Thursday,,,, -Friday,,,,"CSP-501 (A, R1)" +Friday,,,, Saturday,,,, diff --git a/tt_csvs/AK26.csv b/tt_csvs/AK26.csv index db4c587..2126a22 100644 --- a/tt_csvs/AK26.csv +++ b/tt_csvs/AK26.csv @@ -1,7 +1,7 @@ -DAY,14:50 - 15:50,13:50 - 14:50 -Monday,"Placement_Class (E, R5)","Placement_Class (E, R5)" -Tuesday,, -Wednesday,, -Thursday,"Placement_Class (F, R6)","Placement_Class (F, R6)" -Friday,"Placement_Class (F, R6)","Placement_Class (F, R6)" -Saturday,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,2:15 - 3:10,12:05 - 1:00 +Monday,,"Placement_Class (B, R4)","Placement_Class (B, R4)","Placement_Class (A, R2)","Placement_Class (A, R2)", +Tuesday,"Placement_Class (B, R4)","Placement_Class (C, R3)","Placement_Class (C, R3)",,,"Placement_Class (B, R4)" +Wednesday,,,,,, +Thursday,,,,,, +Friday,"Placement_Class (C, R3)",,,"Placement_Class (D, R5)","Placement_Class (D, R5)","Placement_Class (C, R3)" +Saturday,,,,,, diff --git a/tt_csvs/AP24.csv b/tt_csvs/AP24.csv index 1ced302..bdd5eb8 100644 --- a/tt_csvs/AP24.csv +++ b/tt_csvs/AP24.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50 -Monday,"SCS-501 (D, R4)","SCS-501 (B, R2)","SCS-501 (A, R1)",,"SCS-501 (E, R5)" -Tuesday,,,"SCS-501 (D, R4)","SCS-501 (C, R3)", -Wednesday,,,,, -Thursday,"SCS-501 (A, R1)",,,, +DAY,11:10 - 12:05,9:55 - 10:50,1:20 - 2:15,3:30 - 4:25,12:05 - 1:00 +Monday,"SCS-501 (A, R2)",,,"SCS-501 (D, R5)", +Tuesday,,"SCS-501 (A, R2)","SCS-501 (C, R3)","SCS-501 (D, R5)", +Wednesday,,"SCS-501 (C, R3)",,, +Thursday,"SCS-501 (B, R4)",,,,"SCS-501 (B, R4)" Friday,,,,, Saturday,,,,, diff --git a/tt_csvs/BJ10.csv b/tt_csvs/BJ10.csv index 500a17b..6c52fb5 100644 --- a/tt_csvs/BJ10.csv +++ b/tt_csvs/BJ10.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,13:50 - 14:50 -Monday,,,,"TMA-502 (B, R2)",, -Tuesday,,,"TMA-502 (C, R3)",,,"TMA-502 (D, R4)" -Wednesday,"TMA-502 (A, R1)",,,,"TMA-502 (D, R4)", -Thursday,,"TMA-502 (F, R6)","TMA-502 (A, R1)",,, -Friday,"TMA-502 (A, R1)",,"TMA-502 (A, R1)",,, -Saturday,,,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55 +Monday,,,"TMA-502 (B, R4)" +Tuesday,,"TMA-502 (D, R5)", +Wednesday,"TMA-502 (C, R3)","TMA-502 (A, R2)", +Thursday,,"TMA-502 (B, R4)", +Friday,,"TMA-502 (D, R5)","TMA-502 (A, R2)" +Saturday,,, diff --git a/tt_csvs/DP07.csv b/tt_csvs/DP07.csv index 9063385..c4f869b 100644 --- a/tt_csvs/DP07.csv +++ b/tt_csvs/DP07.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50,13:50 - 14:50 -Monday,"TCS-503 (C, R3)","TCS-503 (F, R6)",,,,"TCS-503 (E, R5)" -Tuesday,,"TCS-503 (F, R6)",,,"TCS-503 (D, R4)", -Wednesday,"TCS-503 (F, R6)","TCS-503 (B, R2)",,,, -Thursday,"PCS-503 (C, L2)","PCS-503 (C, L2)","PCS-503 (C, L1)","PCS-503 (C, L1)","PCS-503 (E, L3)","PCS-503 (E, L3)" -Friday,"PCS-503 (C, L2)","PCS-503 (C, L2)","PCS-503 (C, L1)","PCS-503 (C, L1)",, -Saturday,,,,,, +DAY,11:10 - 12:05,1:20 - 2:15,3:30 - 4:25,12:05 - 1:00 +Monday,"TCS-503 (A, R2)",,,"TCS-503 (B, R4)" +Tuesday,,,, +Wednesday,"TCS-503 (D, R5)","TCS-503 (D, R5)",, +Thursday,,,"TCS-503 (C, R3)", +Friday,"TCS-503 (D, R5)","TCS-503 (B, R4)",, +Saturday,,,, diff --git a/tt_csvs/DT20.csv b/tt_csvs/DT20.csv index 4fe139e..1caedb5 100644 --- a/tt_csvs/DT20.csv +++ b/tt_csvs/DT20.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00 -Monday,"XCS-501 (E, R5)",,,"XCS-501 (E, R5)" -Tuesday,"XCS-501 (F, R6)","XCS-501 (B, R2)","XCS-501 (B, R2)", -Wednesday,,"XCS-501 (A, R1)",, -Thursday,,"XCS-501 (A, R1)",, -Friday,"XCS-501 (B, R2)",,, +DAY,11:10 - 12:05,2:15 - 3:10,9:55 - 10:50,12:05 - 1:00 +Monday,,,"XCS-501 (C, R3)","XCS-501 (A, R2)" +Tuesday,,,,"XCS-501 (C, R3)" +Wednesday,"XCS-501 (A, R2)",,,"XCS-501 (C, R3)" +Thursday,,,, +Friday,,"XCS-501 (B, R4)",, Saturday,,,, diff --git a/tt_csvs/HP18.csv b/tt_csvs/HP18.csv index f47f6e3..e8119e7 100644 --- a/tt_csvs/HP18.csv +++ b/tt_csvs/HP18.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,11:00 - 12:00,16:50 - 17:50 -Monday,,,"TCS-509 (E, R5)" -Tuesday,,, -Wednesday,"TCS-509 (D, R4)","TCS-509 (D, R4)", -Thursday,,"TCS-509 (E, R5)","TCS-509 (D, R4)" -Friday,,, -Saturday,,, +DAY,3:30 - 4:25,9:00 - 9:55 +Monday,, +Tuesday,, +Wednesday,, +Thursday,,"TCS-509 (A, R2)" +Friday,"TCS-509 (B, R4)", +Saturday,, diff --git a/tt_csvs/JM12.csv b/tt_csvs/JM12.csv index 4351a31..3502b34 100644 --- a/tt_csvs/JM12.csv +++ b/tt_csvs/JM12.csv @@ -1,7 +1,7 @@ -DAY,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50 -Monday,,,"TMA-502 (E, R5)", -Tuesday,,"TMA-502 (F, R6)",, -Wednesday,,,"TMA-502 (D, R4)", -Thursday,,,"TMA-502 (C, R3)","TMA-502 (E, R5)" -Friday,"TMA-502 (E, R5)","TMA-502 (D, R4)",, +DAY,3:30 - 4:25,11:10 - 12:05,9:00 - 9:55,12:05 - 1:00 +Monday,"TMA-502 (A, R2)",,, +Tuesday,,,, +Wednesday,"TMA-502 (C, R3)",,"TMA-502 (D, R5)", +Thursday,,"TMA-502 (A, R2)",,"TMA-502 (A, R2)" +Friday,,"TMA-502 (B, R4)",, Saturday,,,, diff --git a/tt_csvs/NB22.csv b/tt_csvs/NB22.csv index b20eaa4..7d990ef 100644 --- a/tt_csvs/NB22.csv +++ b/tt_csvs/NB22.csv @@ -1,7 +1,7 @@ -DAY,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50 -Monday,,,"XCS-501 (D, R4)" -Tuesday,"XCS-501 (E, R5)","XCS-501 (E, R5)", -Wednesday,,, -Thursday,,, -Friday,,, -Saturday,,, +DAY,3:30 - 4:25,1:20 - 2:15 +Monday,"XCS-501 (B, R4)", +Tuesday,, +Wednesday,,"XCS-501 (B, R4)" +Thursday,, +Friday,, +Saturday,, diff --git a/tt_csvs/NJ13.csv b/tt_csvs/NJ13.csv index 85646cf..5c08abb 100644 --- a/tt_csvs/NJ13.csv +++ b/tt_csvs/NJ13.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,12:00 - 13:00,16:50 - 17:50 -Monday,,, -Tuesday,,, -Wednesday,,,"TMA-502 (F, R6)" -Thursday,,"TMA-502 (E, R5)", -Friday,"TMA-502 (F, R6)",, -Saturday,,, +DAY,9:00 - 9:55,12:05 - 1:00 +Monday,"TMA-502 (D, R5)", +Tuesday,, +Wednesday,"TMA-502 (B, R4)", +Thursday,,"TMA-502 (C, R3)" +Friday,, +Saturday,, diff --git a/tt_csvs/None.csv b/tt_csvs/None.csv index 29ff246..58ff984 100644 --- a/tt_csvs/None.csv +++ b/tt_csvs/None.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,14:50 - 15:50,13:50 - 14:50 +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,3:30 - 4:25,2:15 - 3:10,12:05 - 1:00 Monday,,,,,,, -Tuesday,,,,,"Library (D, R4)",, -Wednesday,,,,,"Library (F, R6)",, -Thursday,,,,,"Library (F, R6)",, -Friday,,"Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)" -Saturday,"Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)","Library (F, R6)" +Tuesday,,,,,,, +Wednesday,,,,,,, +Thursday,,,,,"Library (A, R2)","Library (A, R2)","Library (C, R3)" +Friday,,"Library (C, R3)",,"Library (C, R3)","Library (D, R5)","Library (C, R3)","Library (D, R5)" +Saturday,"Library (D, R5)","Library (D, R5)","Library (D, R5)","Library (D, R5)","Library (D, R5)","Library (D, R5)","Library (D, R5)" diff --git a/tt_csvs/PA21.csv b/tt_csvs/PA21.csv index 5994e5e..7edb43e 100644 --- a/tt_csvs/PA21.csv +++ b/tt_csvs/PA21.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,12:00 - 13:00,16:50 - 17:50 -Monday,,,"XCS-501 (F, R6)","XCS-501 (F, R6)" -Tuesday,"XCS-501 (D, R4)",,, -Wednesday,"XCS-501 (F, R6)","XCS-501 (D, R4)",, -Thursday,,,, -Friday,,,, -Saturday,,,, +DAY,11:10 - 12:05,9:00 - 9:55,1:20 - 2:15,2:15 - 3:10,12:05 - 1:00 +Monday,"XCS-501 (D, R5)",,,,"XCS-501 (D, R5)" +Tuesday,,"XCS-501 (C, R3)","XCS-501 (A, R2)",, +Wednesday,,,,"XCS-501 (D, R5)","XCS-501 (D, R5)" +Thursday,,,,, +Friday,,,,, +Saturday,,,,, diff --git a/tt_csvs/PK02.csv b/tt_csvs/PK02.csv index f13390f..31adc1f 100644 --- a/tt_csvs/PK02.csv +++ b/tt_csvs/PK02.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,13:50 - 14:50 -Monday,"TCS-531 (E, R5)",,,,,"TCS-531 (D, R4)" -Tuesday,,"TCS-531 (F, R6)",,,"TCS-531 (D, R4)", -Wednesday,"TCS-531 (C, R3)",,"TCS-531 (C, R3)","TCS-531 (F, R6)",,"TCS-531 (F, R6)" -Thursday,"TCS-531 (F, R6)","TCS-531 (D, R4)",,,, -Friday,"TCS-531 (E, R5)",,,"TCS-531 (C, R3)",, -Saturday,,,,,, +DAY,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,3:30 - 4:25,12:05 - 1:00 +Monday,,,,,"TCS-531 (D, R5)" +Tuesday,"TCS-531 (C, R3)",,,, +Wednesday,,,,"TCS-531 (D, R5)", +Thursday,,"TCS-531 (C, R3)","TCS-531 (A, R2)",,"TCS-531 (A, R2)" +Friday,"TCS-531 (B, R4)",,,, +Saturday,,,,, diff --git a/tt_csvs/PM14.csv b/tt_csvs/PM14.csv index b39adfa..6f70d19 100644 --- a/tt_csvs/PM14.csv +++ b/tt_csvs/PM14.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50,13:50 - 14:50 -Monday,,,"PMA-502 (F, L1)","PMA-502 (F, L1)","PMA-502 (F, L2)","PMA-502 (F, L2)" -Tuesday,"PMA-502 (A, L2)","PMA-502 (A, L2)","PMA-502 (A, L1)","PMA-502 (A, L1)",, -Wednesday,,,"PMA-502 (A, L1)","PMA-502 (A, L1)","PMA-502 (D, L2)","PMA-502 (D, L2)" -Thursday,"PMA-502 (B, L2)","PMA-502 (B, L2)","PMA-502 (B, L1)","PMA-502 (B, L1)",, -Friday,,,,,, -Saturday,,,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,12:05 - 1:00 +Monday,,,, +Tuesday,"PMA-502 (A, L2)","PMA-502 (B, L2)","PMA-502 (B, L2)","PMA-502 (A, L2)" +Wednesday,"PMA-502 (B, L2)",,,"PMA-502 (B, L2)" +Thursday,"PMA-502 (D, L2)",,,"PMA-502 (D, L2)" +Friday,"PMA-502 (A, L2)",,,"PMA-502 (A, L2)" +Saturday,,,, diff --git a/tt_csvs/RD09.csv b/tt_csvs/RD09.csv index 7b7c89c..2c8a891 100644 --- a/tt_csvs/RD09.csv +++ b/tt_csvs/RD09.csv @@ -1,7 +1,7 @@ -DAY,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50,13:50 - 14:50 +DAY,11:10 - 12:05,2:15 - 3:10,12:05 - 1:00,1:20 - 2:15 Monday,,,, -Tuesday,"PCS-506 (F, L1)","PCS-506 (F, L1)","PCS-506 (E, L3)","PCS-506 (E, L3)" -Wednesday,,,"PCS-506 (F, L3)","PCS-506 (F, L3)" +Tuesday,,"PCS-506 (D, L2)",,"PCS-506 (D, L2)" +Wednesday,"PCS-506 (B, L2)",,"PCS-506 (B, L2)", Thursday,,,, Friday,,,, Saturday,,,, diff --git a/tt_csvs/RS11.csv b/tt_csvs/RS11.csv index b37c0ba..7940b8f 100644 --- a/tt_csvs/RS11.csv +++ b/tt_csvs/RS11.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00 -Monday,"PCS-503 (A, L2)","TMA-502 (D, R4)","PCS-503 (A, L1)","PCS-503 (A, L1)" -Tuesday,,"TMA-502 (E, R5)","TMA-502 (D, R4)", -Wednesday,"TMA-502 (E, R5)","TMA-502 (C, R3)",, -Thursday,"PCS-503 (F, L2)","PCS-503 (F, L2)","PCS-503 (A, L1)","PCS-503 (A, L1)" -Friday,,,"TMA-502 (B, R2)", -Saturday,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,12:05 - 1:00 +Monday,"PCS-503 (C, L2)","PCS-503 (C, L2)","PCS-503 (C, L2)",,"PCS-503 (C, L2)" +Tuesday,,,,"TMA-502 (C, R3)","TMA-502 (C, R3)" +Wednesday,,"PCS-503 (A, L2)","PCS-503 (A, L2)",, +Thursday,"PCS-503 (D, L2)","PCS-503 (D, L2)","PCS-503 (D, L2)",,"PCS-503 (D, L2)" +Friday,"PCS-503 (B, L4)","PCS-503 (A, L2)","PCS-503 (A, L2)",,"PCS-503 (B, L4)" +Saturday,,,,, diff --git a/tt_csvs/SJ16.csv b/tt_csvs/SJ16.csv index 9896b9d..5599596 100644 --- a/tt_csvs/SJ16.csv +++ b/tt_csvs/SJ16.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50 -Monday,,"TCS-509 (A, R1)",,,"TCS-509 (E, R5)" -Tuesday,,"TCS-509 (C, R3)",,, -Wednesday,,,"TCS-509 (F, R6)","TCS-509 (B, R2)","TCS-509 (F, R6)" -Thursday,"TCS-509 (A, R1)",,,"TCS-509 (A, R1)", -Friday,"TCS-509 (C, R3)","TCS-509 (A, R1)",,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,3:30 - 4:25,12:05 - 1:00 +Monday,"TCS-509 (B, R4)",,"TCS-509 (D, R5)",, +Tuesday,,,"TCS-509 (D, R5)","TCS-509 (C, R3)", +Wednesday,,"TCS-509 (D, R5)","TCS-509 (D, R5)",, +Thursday,,"TCS-509 (A, R2)",,, +Friday,,"TCS-509 (A, R2)",,,"TCS-509 (A, R2)" Saturday,,,,, diff --git a/tt_csvs/SP06.csv b/tt_csvs/SP06.csv index eec3de0..2568ee6 100644 --- a/tt_csvs/SP06.csv +++ b/tt_csvs/SP06.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,16:50 - 17:50,14:50 - 15:50 -Monday,"TCS-503 (A, R1)","TCS-503 (E, R5)",,, -Tuesday,"TCS-503 (B, R2)","TCS-503 (E, R5)","TCS-503 (B, R2)","TCS-503 (F, R6)", -Wednesday,"TCS-503 (B, R2)","TCS-503 (F, R6)","TCS-503 (A, R1)",,"TCS-503 (E, R5)" -Thursday,,"TCS-503 (C, R3)","TCS-503 (B, R2)",, -Friday,,"TCS-503 (B, R2)","TCS-503 (A, R1)",, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,3:30 - 4:25,12:05 - 1:00 +Monday,"TCS-503 (D, R5)","TCS-503 (B, R4)",,, +Tuesday,"TCS-503 (B, R4)",,,"TCS-503 (C, R3)", +Wednesday,"TCS-503 (A, R2)",,"TCS-503 (B, R4)",, +Thursday,"TCS-503 (A, R2)",,,, +Friday,"TCS-503 (D, R5)",,,,"TCS-503 (C, R3)" Saturday,,,,, diff --git a/tt_csvs/SS03.csv b/tt_csvs/SS03.csv index d29d670..60f9d50 100644 --- a/tt_csvs/SS03.csv +++ b/tt_csvs/SS03.csv @@ -1,7 +1,7 @@ -DAY,08:00 - 09:00,09:00 - 10:00,11:00 - 12:00,12:00 - 13:00,16:50 - 17:50,14:50 - 15:50 -Monday,,"TCS-502 (C, R3)",,,"TCS-502 (D, R4)", -Tuesday,,,"TCS-502 (E, R5)","TCS-502 (B, R2)",,"TCS-502 (D, R4)" -Wednesday,,"TCS-502 (F, R6)","TCS-502 (F, R6)","TCS-502 (B, R2)",, -Thursday,"TCS-502 (C, R3)",,"TCS-502 (F, R6)",,,"TCS-502 (F, R6)" -Friday,"TCS-502 (A, R1)",,,,, -Saturday,,,,,, +DAY,11:10 - 12:05,9:55 - 10:50,9:00 - 9:55,1:20 - 2:15,12:05 - 1:00 +Monday,,"TCS-502 (A, R2)",,, +Tuesday,"TCS-502 (D, R5)",,"TCS-502 (D, R5)",, +Wednesday,,"TCS-502 (B, R4)",,"TCS-502 (C, R3)","TCS-502 (A, R2)" +Thursday,"TCS-502 (B, R4)","TCS-502 (C, R3)",,, +Friday,,,"TCS-502 (C, R3)",, +Saturday,,,,, diff --git a/tt_csvs/VD25.csv b/tt_csvs/VD25.csv index e6c2de6..66d4415 100644 --- a/tt_csvs/VD25.csv +++ b/tt_csvs/VD25.csv @@ -1,7 +1,7 @@ -DAY,11:00 - 12:00,12:00 - 13:00,14:50 - 15:50,13:50 - 14:50 -Monday,,,, -Tuesday,,,"PCS-503 (F, L3)","PCS-503 (F, L3)" -Wednesday,"PCS-503 (E, L1)","PCS-503 (E, L1)","PCS-503 (D, L3)","PCS-503 (D, L3)" -Thursday,"PCS-503 (D, L1)","PCS-503 (D, L1)","PCS-503 (D, L2)","PCS-503 (D, L2)" -Friday,,,, -Saturday,,,, +DAY,2:15 - 3:10,1:20 - 2:15 +Monday,, +Tuesday,, +Wednesday,, +Thursday,, +Friday,"PCS-503 (B, L2)","PCS-503 (B, L2)" +Saturday,, From 5584ad3f432afa818fde006c90c2a513161ff7e4 Mon Sep 17 00:00:00 2001 From: Prachi Sah Date: Sat, 1 Mar 2025 16:42:05 +0530 Subject: [PATCH 2/3] merging with refactor_main_code --- GA/chromosome.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/GA/chromosome.py b/GA/chromosome.py index 69c7daf..74d4afe 100644 --- a/GA/chromosome.py +++ b/GA/chromosome.py @@ -339,13 +339,7 @@ def _generate_weekly_schedule(self) -> tuple: def create_timetable(self, num_weeks: int) -> tuple: timetable = {} for week in range(1, num_weeks + 1): - self.lab_availability_matrix = copy.deepcopy( - self.initial_lab_availability_matrix - ) - ( - weekly_schedule, - _, - self.teacher_availability_matrix, - ) = self._generate_weekly_schedule() + self.lab_availability_matrix = copy.deepcopy(self.initial_lab_availability_matrix) + (weekly_schedule,_,self.teacher_availability_matrix,) = self._generate_weekly_schedule() timetable[f"Week {week}"] = weekly_schedule return timetable, self.teacher_availability_matrix, self.lab_availability_matrix From 3630f627e6535a2a5042ffbc67fa663c4b8917db Mon Sep 17 00:00:00 2001 From: Prachi Sah Date: Sat, 1 Mar 2025 22:13:54 +0530 Subject: [PATCH 3/3] Weekly Workload --- GA/__init__.py | 16 ++++++++++------ GA/chromosome.py | 1 - 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/GA/__init__.py b/GA/__init__.py index 5087838..647e70f 100644 --- a/GA/__init__.py +++ b/GA/__init__.py @@ -43,8 +43,8 @@ def __init__(self, config: TimetableConfig): def update_teacher_workload(self, best_teacher_matrix): teacher_workload = { - teacher: sum(sum(day) for day in availability) - for teacher, availability in best_teacher_matrix.items() + teacher: sum(sum(1 for slot in day if not slot) for day in availability) + for teacher, availability in best_teacher_matrix.items() } return teacher_workload @@ -111,9 +111,12 @@ def _generate_timetable(self, teacher_matrix): mutated = [TimeTableMutation().mutate_schedule_for_week(ch) for ch in crossover_chromosomes] if self.config.prev_mutated: mutated.extend(self.config.prev_mutated) - - best_chromosome = max(selected, key=selected.get, default=None) - best_chromosome = timetable.get(best_chromosome) + best_chromosome, best_score = None, -1 + for key, score in selected.items(): + score = int(score) + if score > best_score and key in timetable: + best_score = score + best_chromosome = timetable[key] if best_chromosome: updated_teacher = update_teacher_availability_matrix(teacher_matrix, best_chromosome) @@ -121,7 +124,8 @@ def _generate_timetable(self, teacher_matrix): def run(self): initial_teacher = copy.deepcopy(self.teacher_availability) - best_chromosome, updated_teacher = None, None + updated_teacher = copy.deepcopy(initial_teacher) + best_chromosome = None self.config.prev_selected = None self.config.prev_mutated = None diff --git a/GA/chromosome.py b/GA/chromosome.py index 0c9204d..bca52d5 100644 --- a/GA/chromosome.py +++ b/GA/chromosome.py @@ -140,7 +140,6 @@ def _assign_subject_and_teacher( if not assigned_teacher: selected_subject = "Library" - assigned_teacher = "None" assigned_teacher = None assigned_room = assigned_classroom