diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index f5f39f82bcd..25054c5d0e1 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -141,10 +141,18 @@ The `Storage` component,
Classes used by multiple components are in the `seedu.addressbook.commons` package.
+
## **Implementation**
This section describes some noteworthy details on how certain features are implemented.
+
+
+:information_source: **Note:**
+For simplicity, some details such as parsing (`parseIndex`, `parseName`, etc) have been omitted from the implementation details below.
+
+
+
### Add tutor feature
The "Add Tutor" feature allows users to add a new tutor to the address book. Below, we provide an example usage scenario and a detailed description of how the add tutor mechanism behaves at each step.
diff --git a/docs/diagrams/AddScheduleSequenceDiagram.puml b/docs/diagrams/AddScheduleSequenceDiagram.puml
index d4e4505b630..9f67e30fa50 100644
--- a/docs/diagrams/AddScheduleSequenceDiagram.puml
+++ b/docs/diagrams/AddScheduleSequenceDiagram.puml
@@ -8,12 +8,11 @@ participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":AddSchedule\nCommandParser" as AddScheduleCommandParser LOGIC_COLOR
participant "add-s:AddSchedule\nCommand" as AddScheduleCommand LOGIC_COLOR
participant "result:CommandResult" as CommandResult LOGIC_COLOR
-
+participant "s:Schedule" as Schedule MODEL_COLOR
end box
box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
-participant "s:Schedule" as Schedule MODEL_COLOR
end box
[-> LogicManager : execute("add-s 1\nst/2023-09-15T09:00\n et/2023-09-15T11:00")
activate LogicManager
@@ -36,7 +35,7 @@ create AddScheduleCommand
AddScheduleCommandParser -> AddScheduleCommand
activate AddScheduleCommand
-AddScheduleCommand -> AddScheduleCommandParser
+AddScheduleCommand --> AddScheduleCommandParser : add-s
deactivate AddScheduleCommand
@@ -46,7 +45,7 @@ deactivate AddScheduleCommandParser
AddScheduleCommandParser -[hidden]-> AddressBookParser
destroy AddScheduleCommandParser
-AddressBookParser --> LogicManager
+AddressBookParser --> LogicManager : add-s
deactivate AddressBookParser
LogicManager -> AddScheduleCommand : execute()
diff --git a/docs/diagrams/AddTutorSequenceDiagram.puml b/docs/diagrams/AddTutorSequenceDiagram.puml
index 51d86072dd8..6ba0d4b83dc 100644
--- a/docs/diagrams/AddTutorSequenceDiagram.puml
+++ b/docs/diagrams/AddTutorSequenceDiagram.puml
@@ -8,7 +8,7 @@ participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":AddTutorCommandParser" as AddTutorCommandParser LOGIC_COLOR
participant "person:Person" as Person MODEL_COLOR
participant "d:AddTutorCommand" as AddTutorCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box
box Model MODEL_COLOR_T1
@@ -67,12 +67,12 @@ create CommandResult
AddTutorCommand -> CommandResult
activate CommandResult
-CommandResult --> AddTutorCommand
+CommandResult --> AddTutorCommand : r
deactivate CommandResult
-AddTutorCommand --> LogicManager : result
+AddTutorCommand --> LogicManager : r
deactivate AddTutorCommand
-[<--LogicManager
+[<--LogicManager : r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/ChangeThemeSequenceDiagram.puml b/docs/diagrams/ChangeThemeSequenceDiagram.puml
index f5d6b929ef1..c0a150dfd71 100644
--- a/docs/diagrams/ChangeThemeSequenceDiagram.puml
+++ b/docs/diagrams/ChangeThemeSequenceDiagram.puml
@@ -2,7 +2,7 @@
!include style.puml
skinparam ArrowFontStyle plain
box Ui UI_COLOR_T1
-participant ":MainWindow" as Ui UI_COLOR
+participant ":Ui" as Ui UI_COLOR
end box
box Logic LOGIC_COLOR_T1
@@ -10,7 +10,7 @@ participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":ThemeCommandParser" as ThemeCommandParser LOGIC_COLOR
participant "c:ThemeCommand" as ThemeCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box
[-> Ui :
@@ -55,13 +55,13 @@ create CommandResult
ThemeCommand -> CommandResult
activate CommandResult
-CommandResult --> ThemeCommand : result
+CommandResult --> ThemeCommand : r
deactivate CommandResult
-ThemeCommand --> LogicManager : result
+ThemeCommand --> LogicManager : r
deactivate ThemeCommand
-LogicManager --> Ui : result
+LogicManager --> Ui : r
deactivate LogicManager
Ui -> Ui : handle\nChange\nTheme()
diff --git a/docs/diagrams/EditScheduleSequenceDiagram.puml b/docs/diagrams/EditScheduleSequenceDiagram.puml
index 65446cac3ba..db542c11595 100644
--- a/docs/diagrams/EditScheduleSequenceDiagram.puml
+++ b/docs/diagrams/EditScheduleSequenceDiagram.puml
@@ -8,12 +8,12 @@ participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":EditSchedule\nCommandParser" as EditScheduleCommandParser LOGIC_COLOR
participant "e:EditSchedule\nDescriptor" as EditScheduleDescriptor LOGIC_COLOR
participant "d:EditSchedule\nCommand" as EditScheduleCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
+participant "s:Schedule" as EditedSchedule MODEL_COLOR
end box
box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
-participant "editedSchedule:Schedule" as EditedSchedule MODEL_COLOR
end box
[-> LogicManager : execute("edit-s 1\n st/2023-09-15T09:00")
@@ -58,28 +58,40 @@ deactivate AddressBookParser
LogicManager -> EditScheduleCommand : execute()
activate EditScheduleCommand
+EditScheduleCommand -> Model ++ : getFilteredPersonList()
+return
+
create EditedSchedule
EditScheduleCommand -> EditedSchedule ++
+return s
+EditScheduleCommand -> Model ++ : hasSchedule(s)
return
-EditScheduleCommand -> Model ++ : hasSchedule(editedSchedule)
+
+EditScheduleCommand -> Model ++ : getAddressBook()
return
-EditScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, editedSchedule)
+
+loop number of schedules in model
+ EditScheduleCommand -> EditedSchedule : isClashing(s)
+ activate EditedSchedule
+ EditedSchedule --> EditScheduleCommand
+ deactivate EditedSchedule
+end
+
+EditScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, s)
return
EditScheduleCommand -> Model ++ : updateFilteredScheduleList()
-deactivate Model
-
-deactivate Model
+return
create CommandResult
EditScheduleCommand -> CommandResult
activate CommandResult
-CommandResult --> EditScheduleCommand
+CommandResult --> EditScheduleCommand : r
deactivate CommandResult
-EditScheduleCommand --> LogicManager : result
+EditScheduleCommand --> LogicManager : r
deactivate EditScheduleCommand
-[<--LogicManager
+[<--LogicManager : r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/EditTutorSequenceDiagram.puml b/docs/diagrams/EditTutorSequenceDiagram.puml
index bc67eaa0a50..d953eddd790 100644
--- a/docs/diagrams/EditTutorSequenceDiagram.puml
+++ b/docs/diagrams/EditTutorSequenceDiagram.puml
@@ -7,12 +7,12 @@ participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":EditTutorCommandParser" as EditTutorCommandParser LOGIC_COLOR
participant "d:EditTutorCommand" as EditTutorCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
+participant "e:Person" as EditedPerson MODEL_COLOR
end box
box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
-participant "e:Person" as EditedPerson MODEL_COLOR
end box
[-> LogicManager : execute("edit-t 1 n/New Name")
@@ -52,7 +52,7 @@ activate EditTutorCommand
create EditedPerson
EditTutorCommand -> EditedPerson ++
-return
+return e
EditTutorCommand -> Model ++ : hasPerson(e)
return
@@ -73,12 +73,12 @@ create CommandResult
EditTutorCommand -> CommandResult
activate CommandResult
-CommandResult --> EditTutorCommand
+CommandResult --> EditTutorCommand : r
deactivate CommandResult
-EditTutorCommand --> LogicManager : result
+EditTutorCommand --> LogicManager : r
deactivate EditTutorCommand
-[<--LogicManager
+[<--LogicManager : r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/FindTutorSequenceDiagram.puml b/docs/diagrams/FindTutorSequenceDiagram.puml
index 7feb94434fd..01e1c996488 100644
--- a/docs/diagrams/FindTutorSequenceDiagram.puml
+++ b/docs/diagrams/FindTutorSequenceDiagram.puml
@@ -8,7 +8,7 @@ participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":FindTutorCommandParser" as FindTutorCommandParser LOGIC_COLOR
participant "e:NameContains\nKeywordsPredicate" as NameContainsKeywordsPredicate LOGIC_COLOR
participant "d:FindTutor\nCommand" as FindTutorCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box
box Model MODEL_COLOR_T1
@@ -66,12 +66,12 @@ create CommandResult
FindTutorCommand -> CommandResult
activate CommandResult
-CommandResult --> FindTutorCommand
+CommandResult --> FindTutorCommand : r
deactivate CommandResult
-FindTutorCommand --> LogicManager : result
+FindTutorCommand --> LogicManager : r
deactivate FindTutorCommand
-[<--LogicManager
+[<--LogicManager : r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/MarkScheduleSequenceDiagram.puml b/docs/diagrams/MarkScheduleSequenceDiagram.puml
index 44cc65b11df..04ab706c223 100644
--- a/docs/diagrams/MarkScheduleSequenceDiagram.puml
+++ b/docs/diagrams/MarkScheduleSequenceDiagram.puml
@@ -7,12 +7,12 @@ participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":MarkScheduleCommandParser" as MarkScheduleCommandParser LOGIC_COLOR
participant "d:MarkScheduleCommand" as MarkScheduleCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
+participant "e:Schedule" as EditedSchedule MODEL_COLOR
end box
box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
-participant "edited:Schedule" as EditedSchedule MODEL_COLOR
end box
[-> LogicManager : execute("mark 1 m/1")
@@ -53,9 +53,9 @@ activate MarkScheduleCommand
create EditedSchedule
MarkScheduleCommand -> EditedSchedule ++
-return
+return e
-MarkScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, editedSchedule)
+MarkScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, e)
return
MarkScheduleCommand -> Model ++ : updateFilteredScheduleList()
@@ -67,12 +67,12 @@ create CommandResult
MarkScheduleCommand -> CommandResult
activate CommandResult
-CommandResult --> MarkScheduleCommand
+CommandResult --> MarkScheduleCommand : r
deactivate CommandResult
-MarkScheduleCommand --> LogicManager : result
+MarkScheduleCommand --> LogicManager : r
deactivate MarkScheduleCommand
-[<--LogicManager
+[<--LogicManager: r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/ShowCalendarSequenceDiagram.puml b/docs/diagrams/ShowCalendarSequenceDiagram.puml
index 843746f596e..98349563dea 100644
--- a/docs/diagrams/ShowCalendarSequenceDiagram.puml
+++ b/docs/diagrams/ShowCalendarSequenceDiagram.puml
@@ -7,7 +7,7 @@ participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":ShowCalendarCommandParser" as ShowCalendarCommandParser LOGIC_COLOR
participant "d:ShowCalendarCommand" as ShowCalendarCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box
box Model MODEL_COLOR_T1
@@ -61,12 +61,12 @@ create CommandResult
ShowCalendarCommand -> CommandResult
activate CommandResult
-CommandResult --> ShowCalendarCommand
+CommandResult --> ShowCalendarCommand : r
deactivate CommandResult
-ShowCalendarCommand --> LogicManager : result
+ShowCalendarCommand --> LogicManager : r
deactivate ShowCalendarCommand
-[<--LogicManager
+[<--LogicManager : r
deactivate LogicManager
@enduml
diff --git a/docs/diagrams/UnmarkScheduleSequenceDiagram.puml b/docs/diagrams/UnmarkScheduleSequenceDiagram.puml
index 21a5b73595c..d1445a616a4 100644
--- a/docs/diagrams/UnmarkScheduleSequenceDiagram.puml
+++ b/docs/diagrams/UnmarkScheduleSequenceDiagram.puml
@@ -7,12 +7,13 @@ participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":UnmarkScheduleCommandParser" as UnmarkScheduleCommandParser LOGIC_COLOR
participant "d:UnmarkScheduleCommand" as UnmarkScheduleCommand LOGIC_COLOR
-participant ":CommandResult" as CommandResult LOGIC_COLOR
+participant "r:CommandResult" as CommandResult LOGIC_COLOR
+participant "e:Schedule" as EditedSchedule MODEL_COLOR
+
end box
box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
-participant "edited:Schedule" as EditedSchedule MODEL_COLOR
end box
[-> LogicManager : execute("unmark 1")
@@ -52,24 +53,22 @@ activate UnmarkScheduleCommand
create EditedSchedule
UnmarkScheduleCommand -> EditedSchedule ++
-return
-UnmarkScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, edited)
+return e
+UnmarkScheduleCommand -> Model ++ : setSchedule(scheduleToEdit, e)
return
UnmarkScheduleCommand -> Model ++ : updateFilteredScheduleList()
-deactivate Model
-
-deactivate Model
+return
create CommandResult
UnmarkScheduleCommand -> CommandResult
activate CommandResult
-CommandResult --> UnmarkScheduleCommand
+CommandResult --> UnmarkScheduleCommand: r
deactivate CommandResult
-UnmarkScheduleCommand --> LogicManager : result
+UnmarkScheduleCommand --> LogicManager : r
deactivate UnmarkScheduleCommand
-[<--LogicManager
+[<--LogicManager: r
deactivate LogicManager
@enduml
diff --git a/docs/images/AddScheduleSequenceDiagram.png b/docs/images/AddScheduleSequenceDiagram.png
index ca05b9f6a1e..f2508ea6764 100644
Binary files a/docs/images/AddScheduleSequenceDiagram.png and b/docs/images/AddScheduleSequenceDiagram.png differ
diff --git a/docs/images/AddTutorSequenceDiagram.png b/docs/images/AddTutorSequenceDiagram.png
index d84b5da250d..32fab5bb774 100644
Binary files a/docs/images/AddTutorSequenceDiagram.png and b/docs/images/AddTutorSequenceDiagram.png differ
diff --git a/docs/images/ChangeThemeSequenceDiagram.png b/docs/images/ChangeThemeSequenceDiagram.png
index 5dfb9a2d38e..e549da575c0 100644
Binary files a/docs/images/ChangeThemeSequenceDiagram.png and b/docs/images/ChangeThemeSequenceDiagram.png differ
diff --git a/docs/images/EditScheduleSequenceDiagram.png b/docs/images/EditScheduleSequenceDiagram.png
index aa116a2c826..cd36fa1b3ef 100644
Binary files a/docs/images/EditScheduleSequenceDiagram.png and b/docs/images/EditScheduleSequenceDiagram.png differ
diff --git a/docs/images/EditTutorSequenceDiagram.png b/docs/images/EditTutorSequenceDiagram.png
index 298a4ecbdf2..16227f61872 100644
Binary files a/docs/images/EditTutorSequenceDiagram.png and b/docs/images/EditTutorSequenceDiagram.png differ
diff --git a/docs/images/FindTutorSequenceDiagram.png b/docs/images/FindTutorSequenceDiagram.png
index 7af364388ca..68d291137af 100644
Binary files a/docs/images/FindTutorSequenceDiagram.png and b/docs/images/FindTutorSequenceDiagram.png differ
diff --git a/docs/images/MarkScheduleSequenceDiagram.png b/docs/images/MarkScheduleSequenceDiagram.png
index 6c94dfe1719..bf53dcf09c6 100644
Binary files a/docs/images/MarkScheduleSequenceDiagram.png and b/docs/images/MarkScheduleSequenceDiagram.png differ
diff --git a/docs/images/ShowCalendarSequenceDiagram.png b/docs/images/ShowCalendarSequenceDiagram.png
index b334ed5a5e6..0a0dca57c0b 100644
Binary files a/docs/images/ShowCalendarSequenceDiagram.png and b/docs/images/ShowCalendarSequenceDiagram.png differ
diff --git a/docs/images/UnmarkScheduleSequenceDiagram.png b/docs/images/UnmarkScheduleSequenceDiagram.png
index 2240a648640..36ac0183b3b 100644
Binary files a/docs/images/UnmarkScheduleSequenceDiagram.png and b/docs/images/UnmarkScheduleSequenceDiagram.png differ