Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into docs/user-guide
  • Loading branch information
logical-1985516 committed Apr 14, 2024
2 parents e9f2c71 + aab08c0 commit 5b9e133
Show file tree
Hide file tree
Showing 34 changed files with 1,101 additions and 227 deletions.
616 changes: 497 additions & 119 deletions docs/DeveloperGuide.md

Large diffs are not rendered by default.

128 changes: 90 additions & 38 deletions docs/UserGuide.md

Large diffs are not rendered by default.

90 changes: 90 additions & 0 deletions docs/diagrams/AddApplicationSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":AddApplicationCommandParser" as AddApplicationCommandParser LOGIC_COLOR
participant "c:AddApplicationCommand" as AddApplicationCommand LOGIC_COLOR
participant "a:Application" as Application LOGIC_COLOR
participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant "m:Model" as Model MODEL_COLOR
end box

[-> LogicManager : execute("add_app e/example@gmail.com ti/job")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("add_app e/example@gmail.com ti/job")
activate AddressBookParser

create AddApplicationCommandParser
AddressBookParser -> AddApplicationCommandParser
activate AddApplicationCommandParser

AddApplicationCommandParser --> AddressBookParser
deactivate AddApplicationCommandParser

AddressBookParser -> AddApplicationCommandParser : parse("e/example@gmail.com ti/job")
activate AddApplicationCommandParser

create AddApplicationCommand
AddApplicationCommandParser -> AddApplicationCommand
activate AddApplicationCommand

AddApplicationCommand --> AddApplicationCommandParser : c
deactivate AddApplicationCommand

AddApplicationCommandParser --> AddressBookParser : c
deactivate AddApplicationCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
AddApplicationCommandParser -[hidden]-> AddressBookParser
destroy AddApplicationCommandParser

AddressBookParser --> LogicManager : c
deactivate AddressBookParser

LogicManager -> AddApplicationCommand : execute(m)
activate AddApplicationCommand

AddApplicationCommand -> AddApplicationCommand : findPersonMatchingEmail()
activate AddApplicationCommand

AddApplicationCommand --> AddApplicationCommand : p
deactivate AddApplicationCommand

AddApplicationCommand -> AddApplicationCommand : findJobMatchingTitle()
activate AddApplicationCommand

AddApplicationCommand --> AddApplicationCommand : j
deactivate AddApplicationCommand

create Application
AddApplicationCommand -> Application : Application(p, j, PRESCREEN)
activate Application

Application --> AddApplicationCommand : a
deactivate Application

AddApplicationCommand -> Model : addApplication(a)
activate Model

Model --> AddApplicationCommand
deactivate Model

create CommandResult
AddApplicationCommand -> CommandResult
activate CommandResult

CommandResult --> AddApplicationCommand
deactivate CommandResult

AddApplicationCommand --> LogicManager : r
deactivate AddApplicationCommand

[<--LogicManager
deactivate LogicManager
@enduml
113 changes: 113 additions & 0 deletions docs/diagrams/EditJobSequenceDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":EditJobCommandParser" as EditJobCommandParser LOGIC_COLOR
participant "e:EditJobCommand" as EditJobCommand LOGIC_COLOR
participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":ModelManager" as ModelManager MODEL_COLOR
participant ":FilteredList<Job>" as FilteredList MODEL_COLOR
end box

[-> LogicManager : execute("edit_job 2 ti/Data Analyst")
activate LogicManager

LogicManager -> AddressBookParser : parseCommand("edit_job 2 ti/Data Analyst")
activate AddressBookParser

create EditJobCommandParser
AddressBookParser -> EditJobCommandParser
activate EditJobCommandParser

EditJobCommandParser --> AddressBookParser
deactivate EditJobCommandParser

AddressBookParser -> EditJobCommandParser : parse("2 ti/Data Analyst")
activate EditJobCommandParser

create EditJobCommand
EditJobCommandParser -> EditJobCommand
activate EditJobCommand

EditJobCommand --> EditJobCommandParser : e
deactivate EditJobCommand

EditJobCommandParser -> EditJobCommand
activate EditJobCommand

EditJobCommand --> EditJobCommandParser : editJobDescriptor
deactivate EditJobCommand

EditJobCommandParser --> AddressBookParser : e, editJobDescriptor
deactivate EditJobCommandParser
'Hidden arrow to position the destroy marker below the end of the activation bar.
EditJobCommandParser -[hidden]-> AddressBookParser
destroy EditJobCommandParser

AddressBookParser --> LogicManager : e, editJobDescriptor
deactivate AddressBookParser

LogicManager -> EditJobCommand : execute(m)
activate EditJobCommand

EditJobCommand -> ModelManager: getFilteredJobList()
activate ModelManager

ModelManager --> EditJobCommand
deactivate ModelManager

EditJobCommand -> FilteredList: get(2)
activate FilteredList

FilteredList --> EditJobCommand: Job
deactivate FilteredList

EditJobCommand -> EditJobCommand : createEditedJob(Job, editJobDescriptor)
activate EditJobCommand

EditJobCommand --> EditJobCommand : editedJob
deactivate EditJobCommand

EditJobCommand -> ModelManager
activate ModelManager

ModelManager -> FilteredList : setJob(Job, editedJob)
activate FilteredList

FilteredList --> ModelManager
deactivate FilteredList

ModelManager --> EditJobCommand
deactivate ModelManager

EditJobCommand -> ModelManager : updateFilteredJobList(x -> true)
activate ModelManager

ModelManager --> EditJobCommand
deactivate ModelManager

EditJobCommand -> ModelManager : replaceApplications(Job, editedJob)
activate ModelManager

ModelManager --> EditJobCommand
deactivate ModelManager

create CommandResult
EditJobCommand -> CommandResult
activate CommandResult

CommandResult --> EditJobCommand
deactivate CommandResult

EditJobCommand --> LogicManager : r
deactivate EditJobCommand

[<--LogicManager
deactivate LogicManager
@enduml
14 changes: 11 additions & 3 deletions docs/diagrams/LogicClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ package "Parser Classes" as ParserClasses{
Class XYZCommand
Class CommandResult
Class "{abstract}\nCommand" as Command

Class "{abstract}\nConfirmableCommand" as ConfirmableCommand
Class "{abstract}\nAbstractDeleteCommand" as ADCommand
Class XYZDeleteCommand

Class "<<interface>>\nLogic" as Logic
Class LogicManager
Expand All @@ -28,8 +30,9 @@ Class HiddenOutside #FFFFFF
HiddenOutside ..> Logic

LogicManager .right.|> Logic
LogicManager -right->"1" ParserClasses
LogicManager -left->"1" ParserClasses
ParserClasses ..> XYZCommand : <<create>>
ParserClasses ..>XYZDeleteCommand : <<create>>

XYZCommand -up-|> Command
LogicManager .left.> Command : <<call>>
Expand All @@ -40,7 +43,12 @@ Storage --[hidden] Model
Command .[hidden]up.> Storage
Command .right.> Model
note right of XYZCommand: XYZCommand = AddCommand, \nFindCommand, etc

ConfirmableCommand -right|> Command
ConfirmableCommand ..> Command: <<create>>
ConfirmableCommand ..> Command: <<create>>
ADCommand -down|> ConfirmableCommand
XYZDeleteCommand -up-|>ADCommand
note left of XYZDeleteCommand: XYZDeleteCommand = DeleteTagCommand, \nClearCommand, etc
Logic ..> CommandResult
LogicManager .down.> CommandResult
Command .up.> CommandResult : <<create>>
Expand Down
69 changes: 69 additions & 0 deletions docs/diagrams/ModelClassAttributeDiagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
@startuml
!include style.puml
skinparam arrowThickness 1.1
skinparam arrowColor MODEL_COLOR
skinparam classBackgroundColor MODEL_COLOR

Package Model as ModelPackage <<Rectangle>>{

Class AddressBook

Class UniquePersonList

Class Person
Class Name
Class Phone
Class Email
Class Country
Class Comment
Class Tag

Class UniqueApplicationList

Class Application
Class Status

Class UniqueJobList

Class Job
Class Title
Class Description
Class Vacancy

Class I #FFFFFF
}
AddressBook *--> "1" UniquePersonList
UniquePersonList --> "~* all" Person
Person *--> "1" Name
Person *--> "1" Phone
Person *--> "1" Email
Person *--> "1" Country
Person *--> "1" Comment
Person *--> "*" Tag

Person -[hidden]right--> I

Name -[hidden]right-> Phone
Phone -[hidden]right-> Country
Country -[hidden]right-> Email

AddressBook *--> "1" UniqueApplicationList
UniqueApplicationList --> "~* all" Application
Application *--> "1" Status

AddressBook *--> "1" UniqueJobList
UniqueJobList --> "~* all" Job
Job *--> "1" Title
Job *--> "1" Description
Job *--> "1" Vacancy

Job -[hidden]down--> I

Title -[hidden]right-> Description
Description -[hidden]right-> Vacancy

Job - Person: < applies
(Person, Job) .. Application


@enduml
52 changes: 30 additions & 22 deletions docs/diagrams/ModelClassDiagram.puml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,12 @@ Class UserPrefs

Class UniquePersonList
Class Person
Class Country
Class Email
Class Name
Class Phone
Class Status
Class Comment
Class Tag

Class UniqueApplicationList
Class Application

Class UniqueJobList
Class Job

Class I #FFFFFF
}
Expand All @@ -31,28 +30,37 @@ HiddenOutside ..> Model
AddressBook .up.|> ReadOnlyAddressBook

ModelManager .up.|> Model
Model .right.> ReadOnlyUserPrefs
Model .left.> ReadOnlyAddressBook
ModelManager -left-> "1" AddressBook
ModelManager -right-> "1" UserPrefs
Model .down.> ReadOnlyUserPrefs
Model .down.> ReadOnlyAddressBook
ModelManager -down-> "1" AddressBook
ModelManager -down-> "1" UserPrefs
UserPrefs .up.|> ReadOnlyUserPrefs

AddressBook *--> "1" UniquePersonList
UniquePersonList --> "~* all" Person
Person *--> Name
Person *--> Phone
Person *--> Email
Person *--> Country
Person *--> Status
Person *--> Comment
Person *--> "*" Tag

Person -[hidden]up--> I
UniquePersonList -[hidden]right-> I

Name -[hidden]right-> Phone
Phone -[hidden]right-> Country
Country -[hidden]right-> Email

ModelManager --> "~* filtered" Person

AddressBook *--> "1" UniqueApplicationList
UniqueApplicationList --> "~* all" Application

Application -[hidden]up--> I
UniqueApplicationList -[hidden]left-> I

ModelManager --> "~* filtered" Application

AddressBook *--> "1" UniqueJobList
UniqueJobList --> "~* all" Job

Job -[hidden]up--> I
UniqueJobList -[hidden]right-> I

ModelManager --> "~* filtered" Job

Job - Person: applies <
(Person, Job) .. Application

@enduml
Loading

0 comments on commit 5b9e133

Please sign in to comment.