Skip to content

Commit dbdc1c0

Browse files
committed
Merge remote-tracking branch 'team-tp/master' into ppp-update
2 parents 1f85a9e + e883bfd commit dbdc1c0

2 files changed

Lines changed: 59 additions & 33 deletions

File tree

docs/DeveloperGuide.md

Lines changed: 52 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ The *Sequence Diagram* below shows how the components interact with each other f
6868

6969
<img src="images/ArchitectureSequenceDiagram.png" width="574" />
7070

71-
A similar *Sequence Diagram* exists for meeting related commands like `editm 1`.
72-
73-
<img src="images/ArchitectureSequenceDiagramMeeting.png" width="574" />
74-
7571
The sections below give more details of each component.
7672

7773
### UI component
@@ -112,11 +108,6 @@ Given below is the Sequence Diagram for interactions within the `Logic` componen
112108
<div markdown="span" class="alert alert-info">:information_source: **Note:** The lifeline for `DeleteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.
113109
</div>
114110

115-
Given below is another Sequence Diagram for interactions within the `Logic` component for the more complicated command `execute("showm1")` API call.
116-
117-
![Interactions Inside the Logic Component for the `showm 1` Command](images/ShowPersonsInMeetingSequenceDiagram.png)
118-
<div markdown="span" class="alert alert-info">:information_source: **Note:** The lifeline for `ShowMeetingCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.
119-
</div>
120111

121112
### Model component
122113

@@ -204,6 +195,58 @@ suppose we want to search for a meeting with name "lecture" and with priority 1.
204195
The predicate to filter the meeting list is simply: meeting contains "lecture" in its name `AND`
205196
meeting has priority 1.
206197

198+
### Show contacts in meeting (author: hengyiqun)
199+
The command `showm` leverages on the PersonMeetingConnection as well as the FilteredPersonList for filtering.
200+
Specifically, a predicate, PersonInMeetingPredicate, is used to filter out persons who are in the specified meeting.
201+
The predicate can be extended to include people who are in groups that are within the meeting. This would involve
202+
the use of three streams - one stream for contacts directly associated with the meeting, one stream for all the groups
203+
of a person of interest, and a last stream for all groups in the meeting.
204+
This has been implemented, but a reduced version is currently used to show only contacts that are directly associated
205+
with the meeting. The expanded version will be introduced subsequently.
206+
207+
Given below is a Sequence Diagram for interactions within the `Logic` component for the `execute("showm1")` API call.
208+
209+
![Interactions Inside the Logic Component for the `showm 1` Command](images/ShowPersonsInMeetingSequenceDiagram.png)
210+
<div markdown="span" class="alert alert-info">:information_source: **Note:** The lifeline for `ShowMeetingCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram.
211+
</div>
212+
213+
### Find persons in group (author: hengyiqun)
214+
The command `findpg` leverages the filtering capabilities of the FilteredList for persons.
215+
A predicate is used to compute if a user input keyword is part of a group.
216+
217+
### Edit meeting (author: hengyiqun)
218+
The command `editm` makes use of existing API to edit an existing meeting. As the initial meeting still exists in
219+
the MeetingBook, editing the meeting name will cause the application to register a clashing meeting (i.e. it clashes
220+
with itself due to the same start time and end time). A duplicate meeting will also be registered if only the
221+
priority of the meeting is edited, because only the name, start time and end time of a meeting are required to be
222+
unique. As such, additional API, `clashesExceptOne` has been implemented to ensure that meetings are not checked
223+
against itself for clashes and duplicates.
224+
225+
Below shows a general *Sequence Diagram* for `editm 1`. Details for timetable conflicts and duplicates have been
226+
deliberately left out for brevity.
227+
228+
![Sequence Diagram for the `editm 1` Command](images/ArchitectureSequenceDiagramMeeting.png)
229+
<div markdown="span" class="alert alert-info">
230+
231+
### Notes feature (author: hengyiqun)
232+
(Coming Soon : v1.5 has already been implemented, but will only be introduced in subsequent iterations)
233+
234+
The note feature has been implemented to help the user insert and delete personal notes.
235+
This feature is introduced with the intention to help users manage their personal notes, and to make
236+
MeetBuddy a more attractive one-stop application for users to manage their contacts, store their meeting
237+
information, and also keep track of various personal notes. While this feature has already been implemented,
238+
it will only be made available in subsequent iterations, after the storage is made more mature for handling notes.
239+
240+
Just like the AddressBook for managing contacts and MeetingBook for managing meeting information, a NoteBook
241+
was implemented for users to store personal notes. The NoteBook is implemented with a Command Pattern.
242+
243+
The user input command is first passed to the LogicManager class, which then makes use of the MeetBuddyParser
244+
for deciding the type of command. Commands can be related to contacts, meetings, notes or timetable. This is decided
245+
based on the command word. A specific command parser, such as AddNoteCommandParser, will be called which return
246+
a Command such as AddNoteCommand. This command will be executed by the Logic Manager, before encapsulating
247+
the result as a CommandResult object for passing back to the Model. The Ui component may then be invoked to display
248+
the results (e.g. the notes) to the user.
249+
207250
### Timetable feature (author : Maurice)
208251

209252
The timetable feature will be help the user visualise the free times, as well as his/her
@@ -339,26 +382,6 @@ how the timetable is updated.
339382

340383

341384

342-
343-
### Notes feature (Cooming Soon : v1.5 has already been implemented, but will only be introduced in subsequent iterations)
344-
345-
The note feature has been implemented to help the user insert and delete personal notes.
346-
This feature is introduced with the intention to help users manage their personal notes, and to make
347-
MeetBuddy a more attractive one-stop application for users to manage their contacts, store their meeting
348-
information, and also keep track of various personal notes. While this feature has already been implemented,
349-
it will only be made available in subsequent iterations, after the storage is made more mature for handling notes.
350-
351-
Just like the AddressBook for managing contacts and MeetingBook for managing meeting information, a NoteBook
352-
was implemented for users to store personal notes. The NoteBook is implemented with a Command Pattern.
353-
354-
The user input command is first passed to the LogicManager class, which then makes use of the MeetBuddyParser
355-
for deciding the type of command. Commands can be related to contacts, meetings, notes or timetable. This is decided
356-
based on the command word. A specific command parser, such as AddNoteCommandParser, will be called which return
357-
a Command such as AddNoteCommand. This command will be executed by the Logic Manager, before encapsulating
358-
the result as a CommandResult object for passing back to the Model. The Ui component may then be invoked to display
359-
the results (e.g. the notes) to the user.
360-
361-
362385
### Person Meeting Connection feature (Written by: Chen Yuheng (Github: skinnychenpi))
363386
MeetBuddy allows users to track and record the contacts related with their meetings.
364387
#### Implementation

docs/UserGuide.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,16 +341,16 @@ Shows a list of all persons and meetings in MeetBuddy.
341341

342342
Format: `list`
343343

344-
## Timetable feature
345-
=======
346344
### Adding persons related for a meeting: `addptm`
347345

348346
Adds persons related to a meeting in MeetBuddy.
349347

350348
Format: `addptm INDEX p/PERSON RELATED INDEX1 [p/PERSON RELATED INDEX2]… ​`
351349
* The index refers to the meeting index, and it **must be a positive integer** 1, 2, 3, …​
352350
* The user must input at least one person related index field.
353-
* Person Related Index refers to the index of the contact list shown in the GUI. The index should be an integer and not out of bounds. If duplicated person index is in the input, the program will automatically remove the duplication.
351+
* Person Related Index refers to the index of the contact list shown in the GUI.
352+
The index should be an integer and not out of bounds. If duplicated person index is in the input,
353+
the program will automatically remove the duplication.
354354

355355
Examples:
356356
* `addptm 1 p/1 p/2 p/2` Adds the person on index 1 and 2 into the contacts related field in meeting 1.
@@ -396,7 +396,10 @@ Examples:
396396
setting a meeting
397397
to 6:44-7:01 might cause display issues from the 7 - 7.01 will not display the date or time. Also even though 15 minute
398398
meetings are allowed to be scheduled, the words will appear squished on the timetable. It is therefore highly
399-
recommended to set your meeting times to be `AT LEAST 30 MINS` and `AT MOST 24 characters` long.
399+
recommended to set your meeting times to be `AT LEAST 30 MINS` and meeting names`AT MOST 24 characters` long.
400+
It is recommended to avoid scheduling your meetings overlapping across 7am (for example, meetings ending at 7:01 am)
401+
to get optimum viewing functionality. A recommended way to schedule meetings is to choose a time between 7am - 5pm.
402+
400403

401404
![An Example of words being squished](images/SquishedTimetable.png)
402405

0 commit comments

Comments
 (0)