Skip to content

Commit 8b7bf3e

Browse files
authored
Merge branch 'master' into branch-Add-Meeting
2 parents aeb2147 + 0e1846b commit 8b7bf3e

54 files changed

Lines changed: 403 additions & 509 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
![Ui](docs/images/Ui.png)
44

5-
* Modduke is a integrated addressbook with scheduler functionalities targeted at NUS Students<br>
5+
* ModDuke is a integrated addressbook with scheduler functionalities targeted at NUS Students<br>
66
Example usages:
77
* as a one stop place to keep track of contact details related to NUS's modules e.g. Professors, project group mates
88
* as a calendar to keep track of project meetings
@@ -13,7 +13,7 @@
1313
* It is **written in OOP fashion**. It provides a **reasonably well-written** code base **bigger** (around 6 KLoC) than what students usually write in beginner-level SE modules, without being overwhelmingly big.
1414
* It comes with a **reasonable level of user and developer documentation**.
1515
* It is named `ModDuke` because it was initially created with similar functionality of the `Duke iP`, while modifying its functionality to suit NUS students.
16-
* For the detailed documentation of this project, see the **[ModDuke Product Website](https://github.com/AY2021S1-CS2103-F10-2/tp)**.
16+
* For the detailed documentation of this project, see the **[ModDuke Product Website](https://ay2021s1-cs2103-f10-2.github.io/tp/)**.
1717
* Our group is extending the functionality of the application to specifically serve NUS students managing many projects from different modules.
1818

1919
* This project is based on the AddressBook-Level3 project created by the [SE-EDU initiative](https://se-education.org).

docs/DeveloperGuide.md

Lines changed: 143 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -234,29 +234,48 @@ _{Explain here how the data archiving feature will be implemented}_
234234

235235
### Product scope
236236

237-
**Target user profile**:
237+
**Target user profile**
238238

239-
* has a need to manage a significant number of contacts
239+
Anybody → Students → University Students → NUS Students → NUS Students handling multiple projects
240+
241+
* needs to keep track of contacts for various people (Professors, TA, Groupmates)
242+
* needs to schedule school-related appointments
243+
* needs to keep track of school-related appointments
240244
* prefer desktop apps over other types
241245
* can type fast
242246
* prefers typing to mouse interactions
243247
* is reasonably comfortable using CLI apps
244248

245-
**Value proposition**: manage contacts faster than a typical mouse/GUI driven app
249+
**Value proposition**:
246250

251+
* seamless contact management which is faster than a typical mouse/GUI driven app
252+
* convenient scheduling of project meetings and consultations, making planning a work week effortless
253+
* effective visualisation of schedules and meetings with the application's timeline dashboard
247254

248255
### User stories
249256

250257
Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`
251258

252-
| Priority | As a …​ | I want to …​ | So that I can…​ |
253-
| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- |
254-
| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App |
255-
| `* * *` | user | add a new person | |
256-
| `* * *` | user | delete a person | remove entries that I no longer need |
257-
| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list |
258-
| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident |
259-
| `*` | user with many persons in the address book | sort persons by name | locate a person easily |
259+
| Priority | As a …​ | I want to …​ | So that I can…​ |
260+
| -------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
261+
| `* * *` | New user | See usage instructions | Have easy reference when I forget how to use the App |
262+
| `* * *` | NUS Student | Add contacts of people around me | Find them quickly and ensure that I don’t lose anyone's contact information |
263+
| `* * *` | NUS Student | Delete a contact | Remove old or unwanted contacts |
264+
| `* * *` | NUS Student | Edit an existing contact | Change their contact details if it has changed |
265+
| `* * *` | NUS Student | View my entire list of contacts | Select who I want to contact |
266+
| `* * *` | NUS Student | Clear all contacts | Reset my contacts |
267+
| `* * *` | NUS Student | Label my contacts based on the individual's relationship with me (e.g. TA, Professor, Classmate) | Easily identify the contacts relevant to my query |
268+
| `* * *` | NUS Student | Create meetings for events such as projects or assignments | I can keep track of commitments and upcoming work |
269+
| `* * *` | NUS Student | Add relevant contacts to a meeting | Keep track of who is participating in the meeting and their contact information |
270+
| `* * *` | Forgetful NUS Student | Assign a meeting a timeslot and date | Track exactly when I am supposed to meet |
271+
| `* * *` | NUS Student with many meetings | View all scheduled meetings | Have an overview of all my meetings |
272+
| `* * *` | NUS Student | Create consultations with professors | Track when I have set up meetings with professors and TA’s |
273+
| `* * *` | NUS Student | Add contacts to a consultation | Keep track of which professor I am consulting and access his/her contact details easily |
274+
| `* * *` | NUS Student | Assign a consultation a timeslot and date | Keep track of when my upcoming consultations are |
275+
| `* * *` | NUS Student taking many modules | Create modules | Add new modules whenever needed |
276+
| `* * *` | NUS Student taking many modules | View relevant groups of contacts by modules | I can easily keep track of contact details of individuals in different modules |
277+
| `* * ` | NUS Student | Hide private contact details | Minimize chances of someone else seeing them by accident |
278+
| `* ` | Student who likes to personalise stuff | Customise the layout of the App | I can organise relevant information in personalised way that I find easy to access |
260279

261280
*{More to be added}*
262281

@@ -396,6 +415,119 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
396415

397416
Use case ends.
398417

418+
**UC07: Clear Contacts**
419+
420+
**MSS**
421+
422+
1. User makes request to clear all contacts
423+
2. Modduke clears all contacts
424+
425+
Use case ends.
426+
427+
**UC08: Create Meeting**
428+
429+
**MSS**
430+
431+
1. User makes request to create a meeting
432+
2. Modduke accepts request and creates meeting
433+
434+
Use case ends.
435+
436+
**Extensions**
437+
438+
* 1a. Meeting Name is missing.
439+
440+
* 1a1. Modduke shows an error message.
441+
442+
Use case ends
443+
444+
* 1b. Meeting with the same name already exists.
445+
446+
* 1b1. Modduke shows an error message.
447+
448+
Use case ends.
449+
450+
**UC09: Set Time/Date for Meeting**
451+
452+
**MSS**
453+
454+
1. User makes request to edit a specific meeting
455+
2. Modduke accepts request and makes changes to meeting
456+
457+
Use case ends.
458+
459+
**Extensions**
460+
461+
* 1a. Meeting Name is missing.
462+
463+
* 1a1. Modduke shows an error message.
464+
465+
Use case ends.
466+
467+
* 1b. Meeting with the same name already exists.
468+
469+
* 1b1. Modduke shows an error message.
470+
471+
Use case ends.
472+
473+
**UC10: View all Meeting**
474+
475+
**MSS**
476+
477+
1. User makes request to show all meetings
478+
2. Modduke accepts request and displays all meetings
479+
480+
Use case ends.
481+
482+
**UC11: Create Consult**
483+
484+
**MSS**
485+
486+
1. User makes request to create a consult
487+
2. Modduke accepts request and creates consult
488+
489+
Use case ends.
490+
491+
**Extensions**
492+
493+
* 1a. Consult Name is missing.
494+
495+
* 1a1. Modduke shows an error message.
496+
497+
Use case ends
498+
499+
* 1b. Consult with the same name already exists.
500+
501+
* 1b1. Modduke shows an error message.
502+
503+
Use case ends.
504+
505+
**UC12: Set Time/Date for Consult**
506+
507+
**MSS**
508+
509+
1. User makes request to edit a specific consult
510+
2. Modduke accepts request and makes changes to consult
511+
512+
Use case ends.
513+
514+
**Extensions**
515+
516+
* 1a. Consult Name is missing.
517+
518+
* 1a1. Modduke shows an error message.
519+
520+
Use case ends.
521+
522+
* 1b. Consult with the same name already exists.
523+
524+
* 1b1. Modduke shows an error message.
525+
526+
Use case ends.
527+
528+
529+
530+
*{More to be added}*
399531

400532
### Non-Functional Requirements
401533

@@ -426,7 +558,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli
426558
* **Meeting**: A general purpose appointment between students
427559

428560

429-
430561
--------------------------------------------------------------------------------------------------------------------
431562

432563
## **Appendix: Instructions for manual testing**

docs/Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@ source "https://rubygems.org"
55
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
66

77
gem 'jekyll'
8+
gem "jekyll-remote-theme"
9+
810
gem 'github-pages', group: :jekyll_plugins
911
gem 'wdm', '~> 0.1.0' if Gem.win_platform?

docs/Gemfile.lock

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ GEM
2424
http_parser.rb (~> 0.6.0)
2525
ethon (0.12.0)
2626
ffi (>= 1.3.0)
27+
eventmachine (1.2.7)
2728
eventmachine (1.2.7-x64-mingw32)
2829
execjs (2.7.0)
2930
faraday (1.0.1)
3031
multipart-post (>= 1.2, < 3)
32+
ffi (1.12.2)
3133
ffi (1.12.2-x64-mingw32)
3234
forwardable-extended (2.6.0)
3335
gemoji (3.0.1)
@@ -204,6 +206,8 @@ GEM
204206
jekyll-seo-tag (~> 2.1)
205207
minitest (5.14.1)
206208
multipart-post (2.1.1)
209+
nokogiri (1.10.9)
210+
mini_portile2 (~> 2.4.0)
207211
nokogiri (1.10.9-x64-mingw32)
208212
mini_portile2 (~> 2.4.0)
209213
octokit (4.18.0)
@@ -236,16 +240,17 @@ GEM
236240
tzinfo (1.2.7)
237241
thread_safe (~> 0.1)
238242
unicode-display_width (1.7.0)
239-
wdm (0.1.1)
240243
zeitwerk (2.3.0)
241244

242245
PLATFORMS
246+
ruby
243247
x64-mingw32
244248

245249
DEPENDENCIES
246250
github-pages
247251
jekyll
248-
wdm (~> 0.1.0)
252+
jekyll-remote-theme
253+
jekyll-theme-midnight
249254

250255
BUNDLED WITH
251256
2.1.4

docs/UserGuide.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Modduke is a **desktop app for managing contacts, optimized for use via a Comman
5959
</div>
6060

6161

62-
### Adding a contact: `contact add`
62+
### Adding a contact : `contact add`
6363

6464
Adds a contact to Modduke.
6565

@@ -93,13 +93,13 @@ Examples:
9393
* `contact edit John Doe p/91234567 e/johndoe@example.com` Edits the phone number and email address of John Doe to be `91234567` and `johndoe@example.com` respectively.
9494
* `contact edit Roy Chan n/Betsy Crower` Edits the name of Roy Chan to be `Betsy Crower` and clears all existing tags.
9595

96-
### Clear all contacts: `contact clear`
96+
### Clearing all contacts : `contact clear`
9797

98-
Deletes all existing contacts
98+
Deletes all existing contacts.
9999

100100
Format: NA
101101

102-
Note: Once cleared, contacts are permanently deleted
102+
Note: Once cleared, contacts are permanently deleted.
103103

104104
### Viewing all contacts : `contact list`
105105

@@ -109,30 +109,30 @@ Format: `contact list`
109109

110110
### Creating a Module : `module add`
111111

112-
Creates a Module with a given name and members
112+
Creates a Module with a given name and members .
113113

114-
Format: `module add [n/MODULE_NAME] [m/MEMBER_NAMES]`
114+
Format: `module add n/MODULE_NAME [m/MEMBER_NAMES]`
115115

116116
Note: A Module can have more than 1 member separated by “,” but can only have one name. Members can be optional.
117117

118118

119-
### Add a tag to a user: `label add`
119+
### Adding a tag to a user : `label add`
120120

121121
Adds a label to a contact
122122

123-
Format: ` label add [c/CONTACT_NAME][t/TAG_NAMES]`
123+
Format: ` label add c/CONTACT_NAME [t/TAG_NAMES]`
124124

125125
* Only 1 contact name can be used at a time but multiple tags can be added.
126126
* Tag names are to be separated by a ",".
127127

128128
Examples:
129129
* `label add c/Jay t/2103, teamproject`
130130

131-
### Schedule a meeting : `meeting add`
131+
### Scheduling a meeting: `meeting add`
132132

133133
Schedules a meeting at a given date and time with specified members and a provided meeting name
134134

135-
Format: `meeting add [n/MEETING_NAME] [d/MEETING_DATE] [t/MEETING_TIME] [m/MEMBERS]`
135+
Format: `meeting add n/MEETING_NAME d/MEETING_DATE t/MEETING_TIME m/MEMBERS`
136136

137137
* Creates a meeting with the provided meeting name
138138
* All the fields must be provided
@@ -142,7 +142,7 @@ Format: `meeting add [n/MEETING_NAME] [d/MEETING_DATE] [t/MEETING_TIME] [m/MEM
142142
Examples:
143143
* `meeting add n/CS2103 weekly meeting d/2020-09-20 t/10:00 m/Jay, Roy, Jerryl, Yeeloon, Ekam`
144144

145-
### Edit a meeting : `meeting edit`
145+
### Editing a meeting: `meeting edit`
146146

147147
Edits a given meeting. Listed below are the meeting details that can be changed:
148148
1. Name
@@ -160,9 +160,9 @@ Format: `meeting edit MEETING_NAME [n/NEW_NAME] [d/NEW_DATE] [t/NEW_TIME] [cD/CO
160160
Examples:
161161
* `meeting edit CS2103 Meeting n/CS2103 Team Project Meeting d/2020:09:27 t/14:00 cD/Ekam, Jay cA/Bob`
162162

163-
### List all Meetings : `meeting list`
163+
### Listing all Meetings : `meeting list`
164164

165-
Views all of the existing meetings
165+
Views all of the existing meetings.
166166

167167
Format: NA
168168

@@ -172,22 +172,22 @@ View all the existing consults
172172

173173
Format: `list`
174174

175-
### Creating New Consultation: consult add
175+
### Creating a Consultation : `consult add`
176176

177177
Creates a new consultation with given ConsultName.
178178

179-
Format: `consult add n/CONSULT_NAME [d/CONSULT_DATE] [t/CONSULT_TIME] [m/MEMBERS]`
179+
Format: `consult add n/CONSULT_NAME d/CONSULT_DATE t/CONSULT_TIME m/MEMBERS`
180180

181181
* CONSULT_NAME is a required field.
182182
* [d/CONSULT_DATE], [t/CONSULT_TIME], [m/MEMBERS] are optional fields
183183
* Multiple members can join one consultation.
184184
* [d/CONSULT_DATE] is in the YYYY:MM:dd format and [t/CONSULT_TIME] is in the HH:mm format.
185185

186-
### Edit the details of a consult: consult edit
186+
### Editing a Consultation : `consult edit`
187187

188188
Edits any of the details of a consult
189189

190-
Format: `consult edit CONSULT_NAME [n/NEW_NAME] [d/NEW_DATE] [t/NEW_TIME] [cD/CONTACTS] [cA/CONTACTS]`
190+
Format: `consult edit CONSULT_NAME [n/NEW_NAME] [d/NEW_DATE] [t/NEW_TIME] [cD/CONTACTS] [cA/CONTACTS]`
191191

192192
* [n/NEW_NAME], [d/NEW_DATE], [t/NEW_TIME], [cD/CONTACTS] and [cA/CONTACTS] are all optional fields,
193193
* At least one of the optional fields must be provided.

docs/_config.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
title: "Modduke"
2-
theme: minima
2+
plugins:
3+
- jemoji
4+
- jekyll-remote-theme
5+
remote_theme: jekyll/minima
6+
minima:
7+
skin: solarized
38

49
header_pages:
510
- UserGuide.md
@@ -11,5 +16,4 @@ markdown: kramdown
1116
repository: "ay2021s1-cs2103-f10-2/tp"
1217
github_icon: "images/github-icon.png"
1318

14-
plugins:
15-
- jemoji
19+

src/main/java/seedu/address/commons/core/Messages.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class Messages {
77

88
public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command";
99
public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s";
10+
public static final String MESSAGE_INVALID_PERSON_DISPLAYED = "The person provided is not in your contacts";
1011
public static final String MESSAGE_INVALID_PERSON_DISPLAYED_INDEX = "The person index provided is invalid";
1112
public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!";
1213

0 commit comments

Comments
 (0)