-
Notifications
You must be signed in to change notification settings - Fork 247
[CS2113-F13-3] NUSplanner #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
b86f624
f2be2cd
4999005
f8a8bae
8054e60
9b2e804
fdedcb5
c6ed908
c4a1298
54bd7a2
c27df2a
a49f77d
360a8ac
1918260
6590b1b
d7fdab9
0aa3573
49d8aa5
eff9915
1b5cc38
76e48bf
a3885ca
247c815
a8367ec
d3bac33
e2bde0f
95886c7
1280905
3a5d99e
dc68025
f85cd73
ad74d1f
c903e00
a459e03
d189560
674f8d0
a1498f6
39a4a10
cf8ba7e
a82124b
61656b0
0b5b635
1c0dea0
87e92f2
c01453a
c343fc5
8884dff
19ec44b
7b0a477
a9b0282
e33e8bd
2f88ed4
7085812
b3e3811
7916aa0
6516760
0f7a5c4
7585b7a
836552d
68c0526
f97a851
7d0f4e4
639c2ad
88af201
3f142f1
77fa44f
0944323
cdb9452
f70d968
ff4f95c
61e1789
ab0ca15
9878743
06908d4
ba1dd89
f4eb847
69e60c7
4eee560
e9d07f0
3825840
0654f7f
0fc2e7d
a706f9d
a11071a
774f70e
77031cf
be5fdb6
43bfc87
9450295
1c87415
070ffd0
dd51c1f
dc00d86
5a1891a
fcecd7f
2311efe
82b1b65
5b661d4
7d98c42
3eabd47
f408da2
7e7911e
4701b7d
1961a15
e998df7
37b97bb
47053b3
7bf9fcd
7a09187
bb4236a
e19aaa1
36e73d5
b831b81
6663b8b
5a6507d
23ffc20
1b7df87
1ed978c
9637558
8dceec5
a6d6cf9
6969864
72024ac
d22554e
2c047cb
ee9e60f
59b38ea
b7260bc
bbb880c
2fd9521
d16b709
e59d7c9
d27050e
070a04d
4d19f01
0f5d9ec
8d4cad1
f5c0c59
27dd3cf
c648a13
b572e7d
4a05c38
b31483a
6c86cf6
e653aa2
b3956e0
a83d1e7
a3763b6
34d16cb
6d93d2c
e3fec20
c015f50
2c18266
273c8dd
97460a1
03b457b
8985172
3fac01f
7d6e336
ac48405
bb2d476
72a6d79
0e2e920
4b65bea
4df408d
e2be67e
cac7cee
735775a
88e26ca
be613e5
46ddbc0
5ce7838
196045e
36bff11
4b8b5d2
95c21f9
b90850d
b006743
e3c0251
b89df4e
0daa9b4
2fdd1a7
9b65b02
c03ae13
9d769c1
c21b129
3c3312c
ad7f280
c980031
0bbcd10
f11a5a8
40a892e
4a737e6
dbcaf83
3a01779
cf1f2f1
282e2f4
53b6954
8caa365
7b9ba20
c1b5a1e
c95b55a
950768d
2013391
388e016
ca1ae8e
1d5609d
7a48c5f
3f339a7
c78ad9b
0f75cc6
9cd4004
ae4c73a
91deaeb
f2d5a93
8153ab0
7269867
e5d55a2
21d3bb9
f6e41a0
53bf4cf
4f1ed59
1c82ebd
10a17cf
ae2dc6d
bc4ee1a
4cf784b
4c8b288
96b743e
c169467
5fdd245
7a2ca7d
1e713f1
168c4df
0f4389d
eb3260f
ae94fe0
ca9c97f
238e8bc
12d8089
9d88701
9908e0f
6ee537c
0715981
743edf3
d9ced7e
59df5b3
7e0e8c8
d1f8e0b
a77443f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,9 @@ | ||
| # About us | ||
|
|
||
| Display | Name | Github Profile | Portfolio | ||
| --------|:----:|:--------------:|:---------: | ||
|  | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
| Display | Name | Github Profile | Portfolio | ||
| --------|:---------:|:--------------:|:---------: | ||
|  | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) | ||
|  | Sel Gomez | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md) |
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| @startuml | ||
| hide circle | ||
| hide footbox | ||
| hide members | ||
| allowmixing | ||
|
|
||
|
|
||
| !define UI_COLOR #1D8900 | ||
| !define STORAGE_COLOR #A38300 | ||
| !define PARSER_COLOR #9D0012 | ||
| !define DUKE_COLOR #FF6A14 | ||
| !define EVENTLIST_COLOR #82DE09 | ||
| !define USER_COLOR #000000 | ||
| skinparam MinClassWidth 60 | ||
| skinparam actorStyle awesome | ||
| skinparam packageStyle Rectangle | ||
| skinparam DefaultTextAlignment center | ||
|
|
||
| skinparam Class { | ||
| FontColor #FFFFFF | ||
| BorderThickness 1 | ||
| BorderColor #FFFFFF | ||
| StereotypeFontColor #FFFFFF | ||
| FontName Arial | ||
| } | ||
| package NUSPlanner{ | ||
| class UI UI_COLOR | ||
| class Parser PARSER_COLOR | ||
| class Storage STORAGE_COLOR | ||
| class Duke DUKE_COLOR | ||
| class EventList EVENTLIST_COLOR | ||
| } | ||
|
|
||
| actor :user: | ||
| file SaveFile | ||
| user .down.> UI | ||
| UI -right-> Parser | ||
| Duke -> UI | ||
| Duke ----> Storage | ||
| Parser -down-> EventList | ||
| EventList ..> Storage | ||
| Storage .> SaveFile | ||
| Storage ..> EventList | ||
| @enduml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| @startuml | ||
| hide footbox | ||
| hide circle | ||
|
|
||
| -> ":Storage" : loadEvents() | ||
| activate ":Storage" | ||
| ":Storage" -> ":EventListStorage" : loadEvents() | ||
| activate ":EventListStorage" | ||
| ":EventListStorage" ->":EventListAdapter" : gson.fromJson(fileReader, ArrayList.class) | ||
| activate ":EventListAdapter" | ||
| ":EventListAdapter" -> ":ArrayList<Event>" : ArrayList<Event>() | ||
| activate ":ArrayList<Event>" | ||
| ":EventListAdapter" -> ":EventListAdapter" : read() | ||
| loop events in file | ||
| ":EventListAdapter" -> ":EventListAdapter" : readEvent() | ||
| ":EventListAdapter" --> ":ArrayList<Event>" : Event | ||
| end | ||
| ":ArrayList<Event>" --> ":EventListAdapter" : :ArrayList<Event> | ||
| deactivate ":ArrayList<Event>" | ||
| ":EventListAdapter" --> ":EventListStorage" : :ArrayList<Event> | ||
| deactivate ":EventListAdapter" | ||
| ":EventListStorage" --> ":Storage" : :ArrayList<Event> | ||
| deactivate ":EventListStorage" | ||
| <-- ":Storage" : :ArrayList<Event> | ||
| deactivate ":Storage" | ||
| destroy ":ArrayList<Event>" | ||
| @enduml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| @startuml | ||
| hide circle | ||
| hide footbox | ||
|
|
||
| -> ":Storage" : loadModules() | ||
| activate ":Storage" | ||
| Alt modulesLoaded | ||
| ":Storage" --> ":Storage" : :HashMap<String, NusModule> | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this should be a solid arrow since it's a method invocation? |
||
| <-- ":Storage" : :HashMap<String, NusModule> | ||
| else else | ||
| ":Storage" -> ":NusModuleLoader" : loadModules() | ||
| activate ":NusModuleLoader" | ||
| ":NusModuleLoader" -> ":ModuleAdapter" : ModuleAdapter() | ||
| activate ":ModuleAdapter" | ||
| ":ModuleAdapter" -> ":HashMap<String, NusModule>" : HashMap<String, NusModule>() | ||
| activate ":HashMap<String, NusModule>" | ||
| ":ModuleAdapter" -> ":ModuleAdapter" : read() | ||
| loop module in NusMods.json | ||
| ":ModuleAdapter" -> ":ModuleAdapter" : readModule() | ||
| ":ModuleAdapter" --> ":HashMap<String, NusModule>" : Module | ||
| end | ||
| ":HashMap<String, NusModule>" --> ":ModuleAdapter" : ":HashMap<String, NusModule>" | ||
| deactivate ":HashMap<String, NusModule>" | ||
| ":ModuleAdapter" --> ":NusModuleLoader" : ":HashMap<String, NusModule>" | ||
| deactivate ":ModuleAdapter" | ||
| ":NusModuleLoader" --> ":Storage" : ":HashMap<String, NusModule>" | ||
| deactivate ":NusModuleLoader" | ||
| <-- ":Storage" : ":HashMap<String, NusModule>" | ||
| deactivate ":Storage" | ||
| destroy ":HashMap<String, NusModule>" | ||
| end | ||
|
|
||
|
|
||
|
|
||
|
|
||
| @enduml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| @startuml | ||
| hide footbox | ||
| -> ":Storage" : saveToFile(EventList) | ||
| activate ":Storage" | ||
| ":Storage" -> ":EventListStorage" : saveToFile(EventList) | ||
| activate ":EventListStorage" | ||
| ":EventListStorage" -> ":EventListAdapter" : gson.toJson(eventList.getFullList()) | ||
| activate ":EventListAdapter" | ||
| ":EventListAdapter" -> ":EventListAdapter" : write() | ||
| activate ":EventListAdapter" | ||
| loop Event in ArrayList<Event> | ||
| ":EventListAdapter" -> ":EventListAdapter" : writeEvent() | ||
| end | ||
| deactivate ":EventListAdapter" | ||
| ":EventListAdapter" --> ":EventListStorage" : String | ||
| deactivate ":EventListAdapter" | ||
| opt File does not exist | ||
| ":EventListStorage" -> ":File" : new File() | ||
| activate ":File" | ||
| ":File" --> ":EventListStorage" | ||
| deactivate ":File" | ||
| end | ||
| ":EventListStorage" -> ":FileWriter" : taskWriter.write(gsonData) | ||
| activate ":FileWriter" | ||
| ":FileWriter" --> ":File" : String | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this should be a solid arrow since it's a method invocation? |
||
| activate ":File" | ||
| ":File" --> ":FileWriter" | ||
| deactivate ":File" | ||
| ":FileWriter" --> ":EventListStorage" | ||
| deactivate ":FileWriter" | ||
| ":EventListStorage" --> ":Storage" | ||
| deactivate ":EventListStorage" | ||
| <-- ":Storage" | ||
| deactivate ":Storage" | ||
|
|
||
| @enduml | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| @startuml | ||
| hide circle | ||
| skinparam packageStyle Rectangle | ||
| skinparam classAttributeIconSize 0 | ||
|
|
||
| package Storage{ | ||
| class "<<interface>>\nStorage"{ | ||
| +saveToFile(EventList):void | ||
| +loadEvents():ArrayList<Schedule> | ||
| +loadModules():HashMap<String, NusModule> | ||
| } | ||
|
|
||
| class "<<interface>>\nEventListStorage"{ | ||
| +saveToFile(EventList):void | ||
| +loadEvents():ArrayList<Schedule> | ||
| } | ||
| class JsonEventListStorage { | ||
| } | ||
| class EventListAdapter{ | ||
| } | ||
|
|
||
|
|
||
|
|
||
| class "<<interface>>\nNusModuleLoader"{ | ||
| +loadModules():HashMap<String, NusModule> | ||
| } | ||
|
|
||
| class JsonNusModuleLoader{ | ||
| } | ||
|
|
||
| class ModuleAdapter{ | ||
| } | ||
|
|
||
|
|
||
| class StorageManager{ | ||
|
|
||
| } | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| "<<interface>>\nStorage" --|> "<<interface>>\nNusModuleLoader" | ||
| "<<interface>>\nStorage" --|>"<<interface>>\nEventListStorage" | ||
|
|
||
| StorageManager --> "1""<<interface>>\nNusModuleLoader" | ||
| StorageManager --> "1""<<interface>>\nEventListStorage" | ||
| StorageManager .down.> "<<interface>>\nStorage" | ||
|
|
||
| JsonEventListStorage .up.|> "<<interface>>\nEventListStorage" | ||
| JsonEventListStorage -down-> "1" EventListAdapter | ||
|
|
||
| JsonNusModuleLoader .up.|> "<<interface>>\nNusModuleLoader" | ||
| JsonNusModuleLoader -down-> "1" ModuleAdapter | ||
|
|
||
| } | ||
| package gson{ | ||
| class TypeAdapter{ | ||
| } | ||
| } | ||
|
|
||
|
|
||
| EventListAdapter --|> TypeAdapter | ||
| ModuleAdapter --|> TypeAdapter | ||
|
|
||
| @enduml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| @startuml | ||
|
|
||
| class User { | ||
| -semester | ||
| +getSemester() | ||
| +setSemester() | ||
| } | ||
|
|
||
| class UserUtility { | ||
| -user | ||
| +getUser() | ||
| } | ||
|
|
||
| @enduml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| @startuml | ||
| ":Actor" -> ":Parser" : parseAddCommand() | ||
| ":Parser" -> Parser : addFormatChecker() | ||
| alt event has end date | ||
| alt event is recurring | ||
| Parser -> ":EventList" : addEvent() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> ":Event" : new Event() | ||
| Event --> EventList | ||
| EventList -> ":EventList" : canAddNewEvent() | ||
| EventList --> Parser | ||
| else event is non-recurring | ||
| Parser -> EventList : addEvent() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> Event : new Event() | ||
| Event --> EventList | ||
| EventList --> Parser | ||
| end | ||
| else event does not has end date | ||
| alt event is recurring | ||
| Parser -> EventList : addEvent() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> Event : new Event() | ||
| Event --> EventList | ||
| EventList --> Parser | ||
| else event is non-recurring | ||
| Parser -> EventList : addEvent() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> Event : new Event() | ||
| Event --> EventList | ||
| EventList --> Parser | ||
| end | ||
| end | ||
| Parser -> ":Ui" : addSuccessMsg() | ||
| ":Ui" --> Parser | ||
| Parser --> ":Actor" | ||
| hide footbox | ||
| @enduml | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps you include the activation bar using There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Additionally, remember to include the cross when you are no longer using the object/ it is deleted. |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| @startuml | ||
| ":Actor" -> Parser : parseAddCommand() | ||
| ":Parser" -> Parser : addFormatChecker() | ||
| Parser -> NusmodConverter : loadModules() | ||
| NusmodConverter --> Parser : HashMap<String, NusModule> nusmodules | ||
| Parser -> NusModule : getLesson() | ||
| NusModule --> Parser : List<Lesson> lessons | ||
| loop lesson: Lessons | ||
| loop week: lesson.getWeeks() | ||
| Parser -> Parser : findDateOfWeek() | ||
| Parser -> EventList : addEvent() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> EventList : convertToTimeInfo() | ||
| EventList -> Event : new Event() | ||
| Event --> EventList | ||
| EventList -> EventList : canAddNewEvent() | ||
| EventList --> Parser | ||
| end | ||
| end | ||
| Parser --> Actor | ||
| hide footbox | ||
| @enduml | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similarly as above, you can include an activation bar by using |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this correct? I was under the assumption that when your arrow is drawn to a class, you are calling a method in that class. Is
fromJson()a method in:EventListAdapter?