Skip to content

Commit cd61bb4

Browse files
committed
Merge remote-tracking branch 'team-tp/master' into dg-more-usecases
# Conflicts: # docs/UserGuide.md
2 parents efdc683 + 2695757 commit cd61bb4

13 files changed

Lines changed: 104 additions & 49 deletions

File tree

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,20 @@
55

66
MeetBuddy is a desktop application to help manage your social life.
77

8+
**MeetBuddy** is a desktop app optimised for people who want to organise their meetings and their contacts.
9+
They can store both meetings and contacts, view the meetings scheduled for the week, and take note of which contacts
10+
they are meeting up with. It also allows users to assign notes to their meetings to keep people informed about meeting
11+
details. Furthermore, it supports automatic syncing of contacts profile photos if they have a Gravatar account. The app is
12+
targeted towards users with a daily 7am - 4pm schedule, have frequent meetings during this period, and prefer typing.
13+
14+
### Site Map
15+
16+
[User Guide](docs/UserGuide.md)
17+
18+
[Developer Guide](docs/DeveloperGuide.md)
19+
20+
[AboutUs](docs/AboutUs.md)
21+
22+
23+
824
****

docs/AboutUs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ We are a team based in the [School of Computing, National University of Singapor
3030

3131
<img src="images/maurice2n97.png" width="200px">
3232

33-
[[homepage](https://github.com/Maurice2n97)]
33+
3434
[[github](https://github.com/Maurice2n97)]
3535
[[portfolio](team/maurice2n97.md)]
3636

docs/DeveloperGuide.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ Takes up less space in the model.
310310
a whole column, or search through the slots in the column to find the slot.
311311

312312

313-
#### setTimetable
313+
#### Implementation : `setTimetable`
314314

315315
We store an SimpleObjectProperty of a localDate inside a class called timetablePrefs in the model.
316316
When we initialize the Ui components, a ReadOnlyObservableValue of this localDate is passed to the TimetableView.
@@ -494,6 +494,11 @@ Users would be better able to manage their social and academic commitments by to
494494

495495
Use case ends.
496496

497+
<<<<<<< HEAD
498+
**Use case: Viewing meetings in the timetable**
499+
500+
=======
501+
>>>>>>> 6b3cdedcdc7d066e766ef5f4d6971efdb9916ac1
497502
498503
New features on V1.2
499504
5. Assign priorities to contacts
@@ -581,10 +586,11 @@ New features on V1.2
581586
## Appendix: Non-Functional Requirements
582587

583588
1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
584-
2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
585-
3. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
586-
4. The response to any use action should become visible within 2 seconds.
587-
5. The source code should be open source.
589+
2. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
590+
3. The response to any use action should become visible within 2 seconds.
591+
4. The source code should be open source.
592+
5. There should not be noticeable lag in the UI when handling up to 100 people.
593+
588594

589595
## Appendix: Glossary
590596

docs/UserGuide.md

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,18 @@ their profile pictures.
3636

3737
* **`exit`** : Exits the app.
3838

39-
1. Refer to the [Features](#features) below (after glossary) for details of each command.
39+
1. Refer to the [Features](#features) below for details of each command.
4040

4141
--------------------------------------------------------------------------------------------------------------------
4242
## Glossary
4343

4444
* **Contact**: The set of all the persons stored in MeetBuddy, which is shown in the left part of the GUI.
4545
* **Person(s)**: Refers to the persons in the contact.
46-
* **Person Meeting**: Refers to features/models and other aspects that are
46+
* **Person Meeting**: Refers to features/models and other aspects that are |
4747
related to both persons(contact) and meetings in MeetBuddy.
48+
* **Person Meeting Connection**: Refers to the associations between people and meeting within
49+
MeetBuddy.
50+
4851

4952
--------------------------------------------------------------------------------------------------------------------
5053

@@ -82,6 +85,8 @@ there is no such day corresponding to the given month and year of the date, the
8285

8386
</div>
8487

88+
### Composition of the app
89+
8590
### Viewing help : `help`
8691

8792
Shows a message explaning how to access the help page.
@@ -105,7 +110,7 @@ MeetBuddy data are saved in the hard disk automatically after any command that c
105110

106111
Person Contact data are saved as a JSON file `[JAR file location]/data/addressbook.json`. Users are not suggested updating data directly by editing that data file.
107112
Meeting data are saved as a JSON file `[JAR file location]/data/meetingbook.json`. Users are not suggested updating data directly by editing that data file.
108-
Person Meeting Connection data are saved as a JSON file `[JAR file location]/data/connctions.json`. Users are not suggested updating data directly by editing that data file.
113+
Person-Meeting Connection data are saved as a JSON file `[JAR file location]/data/connctions.json`. Users are not suggested updating data directly by editing that data file.
109114
<div markdown="span" class="alert alert-warning">:exclamation: **Caution:**
110115
If your changes to the data file makes its format invalid, MeetBuddy will discard all data and start with an empty data file at the next run.
111116
</div>
@@ -336,6 +341,8 @@ Shows a list of all persons and meetings in MeetBuddy.
336341

337342
Format: `list`
338343

344+
## Timetable feature
345+
=======
339346
### Adding persons related for a meeting: `addptm`
340347

341348
Adds persons related to a meeting in MeetBuddy.
@@ -362,7 +369,8 @@ Format: `deletepfm INDEX p/PERSON RELATED INDEX1 [p/PERSON RELATED INDEX2]…
362369
Examples:
363370
* `deletepfm 1 p/1 p/2 p/2` Deletes the person on index 1 and 2 from the contacts related field in meeting 1.
364371

365-
##Timetable feature
372+
## Timetable feature
373+
366374

367375
### Viewing Timetable:
368376
No command is necessary. Just click on the timetable tab to switch view from meeting list to timetable. The timetable
@@ -374,12 +382,24 @@ Examples:
374382
* The length of the meeting slot is proportional to the timespan of the meeting.
375383

376384
Note that it will correctly update and display all meetings. Meetings that fall outside the range of the timetable
377-
will be filtered off. Some things to note:
385+
will be filtered off.
386+
![An Example Timetable](images/exampleTimetable.png)
387+
378388

379-
* Default when starting the application, the timetable will have the first ( leftmost column ) representing today's date.
389+
390+
Some things to note:
391+
392+
* Default when starting the application, the timetable will have the first ( leftmost column )
393+
representing today's date.
380394
* Meetings can overlap across columns.
381-
* Setting small meeting times around the edge of the timetable will cause display issues, For example, setting a meeting
382-
to 6:44-7:01 might cause display issues from the 7 - 7.01 will not display the date or time.
395+
* Setting small meeting times around the edge of the timetable will cause display issues, For example,
396+
setting a meeting
397+
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
398+
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.
400+
401+
![An Example of words being squished](images/SquishedTimetable.png)
402+
383403
* Note that you can scroll to view more slots.
384404

385405

@@ -395,6 +415,7 @@ Examples:
395415

396416
Examples:
397417
* `setTimetable 2021-04-12` Set the time table to Apr 12th, 2021. You can check it by clicking Timetable in the GUI.
418+
* `setTimetable` Sets the timetable to today's date. You can double check with the calendar.
398419

399420
--------------------------------------------------------------------------------------------------------------------
400421

docs/images/ExampleTimetable.png

524 KB
Loading

docs/images/SquishedTimetable.png

64.6 KB
Loading

docs/team/maurice2n97.md

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,56 @@ layout: page
33
title: Maurice's Project Portfolio Page
44
---
55

6-
## Project: AddressBook Level 3
6+
## Project: MeetBuddy Application
77

8-
AddressBook - Level 3 is a desktop address book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
8+
MeetBuddy is your handy desktop meeting and contacts management app,
9+
optimized for NUS students to manage their social connections and daily meetings who prefer to work with a
10+
Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI)!
11+
12+
I was in charge of Overhauling the GUI and creating functionality for users to view
13+
their meeting schedules in the form of a timetable. I also made GUI enhancements and managed the
14+
storage component.
15+
The GUI of MeetBuddy was created with JavaFX and written in Java,
16+
and I have contributed about 4+ kLoC of code across a span of 6 weeks.
917

1018
Given below are my contributions to the project.
1119

12-
* **New Feature**: Added the ability to undo/redo previous commands.
13-
* What it does: allows the user to undo all previous commands one at a time. Preceding undo commands can be reversed by using the redo command.
14-
* Justification: This feature improves the product significantly because a user can make mistakes in commands and the app should provide a convenient way to rectify them.
15-
* Highlights: This enhancement affects existing commands and commands to be added in future. It required an in-depth analysis of design alternatives. The implementation too was challenging as it required changes to existing commands.
16-
* Credits: *{mention here if you reused any code/ideas from elsewhere or if a third-party library is heavily used in the feature so that a reader can make a more accurate judgement of how much effort went into the feature}*
20+
* **Minor Feature**: Added the ability to sync contacts profile picture from Gravatar account. ([\#53()], Implement Caching improvements [\#184()])
21+
* What it does: If a contact has an email aassociated with a Gravatar account,
22+
the application gets and displays the contact's Gravatar profile picture automatically as a profile picture in MeetBuddy upon adding said contact.
23+
* Justification: This feature improves the product by making it easier to remember contacts as long as they have Gravatar accounts.
24+
25+
* **Major Feature**: Add a timetable component [\#102()] [\#99()] [\#90()]
26+
*What it does : with a setTimetable Command allowing users to switch between different
27+
starting dates of the timetable via CLI. Meetings are synced to the timetable when added/ edited or deleted.
28+
* Justification: This feature improves the product by making it easier to peruse their weekly schedules,
29+
or find free times to schedule events.
1730

18-
* **New Feature**: Added a history command that allows the user to navigate to previous commands using up/down keys.
1931

20-
* **Code contributed**: [RepoSense link]()
32+
* **Code contributed! Do check out my code!**: [RepoSense link](https://nus-cs2103-ay2021s2.github.io/tp-dashboard/?search=&sort=groupTitle&sortWithin=title&timeframe=commit&mergegroup=&groupSelect=groupByRepos&breakdown=true&checkedFileTypes=docs~functional-code~test-code~other&since=&tabOpen=true&tabType=authorship&tabAuthor=Maurice2n97&tabRepo=AY2021S2-CS2103-T16-2%2Ftp%5Bmaster%5D&authorshipIsMergeGroup=false&authorshipFileTypes=docs~functional-code~test-code~other&authorshipIsBinaryFileTypeChecked=false)
2133

2234
* **Project management**:
23-
* Managed releases `v1.3` - `v1.5rc` (3 releases) on GitHub
35+
* Managed release `v1.3` on GitHub
36+
* Managed the storage component to ensure neatness and code quality [\#57()]
37+
* Managed the GUI component to ensure neatness and code quality [\#106()]
38+
* Managed integration of Team member Yuheng's features with storage. [\#187()]
2439

2540
* **Enhancements to existing features**:
26-
* Updated the GUI color scheme (Pull requests [\#33](), [\#34]())
27-
* Wrote additional tests for existing features to increase coverage from 88% to 92% (Pull requests [\#36](), [\#38]())
41+
* Overhauled the existing GUI (Pull requests ) [\#45()][\#97()]
42+
* Wrote additional tests for new features to maintain above 90% coverage for storage component.
43+
* Implemented deletem command to delete meetings [\#54()]
44+
* Implemented APIs within meeting to handle clashing meeting checks, enhanced add meeting command.[\#75()]
45+
2846

2947
* **Documentation**:
3048
* User Guide:
31-
* Added documentation for the features `delete` and `find` [\#72]()
32-
* Did cosmetic tweaks to existing documentation of features `clear`, `exit`: [\#74]()
49+
* Added documentation for the features `Profile Picture` and `setTimetable` [\#113()]
3350
* Developer Guide:
34-
* Added implementation details of the `delete` feature.
51+
* Added implementation details of the `setTimetable` feature. [\#203()]
52+
* Updated Ui class Diagram [\#203()]
53+
* Updated Storage class Diagram.[\#203()]
54+
* Added user stories to DG [\#204]()
3555

36-
* **Community**:
37-
* PRs reviewed (with non-trivial review comments): [\#12](), [\#32](), [\#19](), [\#42]()
38-
* Contributed to forum discussions (examples: [1](), [2](), [3](), [4]())
39-
* Reported bugs and suggestions for other teams in the class (examples: [1](), [2](), [3]())
40-
* Some parts of the history feature I added was adopted by several other class mates ([1](), [2]())
4156

42-
* **Tools**:
43-
* Integrated a third party library (Natty) to the project ([\#42]())
44-
* Integrated a new Github plugin (CircleCI) to the team repo
4557

4658
* _{you can add/remove categories in the list above}_

docs/tutorials/AddRemark.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ title: "Tutorial: Adding a command"
55

66
Let's walk you through the implementation of a new command — `remark`.
77

8-
This command allows users of the AddressBook application to add optional remarks to people in their address book and edit it if required. The command should have the following format:
8+
This command allows users of the MeetBuddy application to add optional remarks to person in their address book panel and edit it if required. The command should have the following format:
99

1010
`remark INDEX r/REMARK` (e.g., `remark 2 r/Likes baseball`)
1111

docs/tutorials/RemovingFields.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ title: "Tutorial: Removing Fields"
77
>
88
> — Antoine de Saint-Exupery
99
10-
When working on AddressBook, you will most likely find that some features and fields that are no longer necessary. In scenarios like this, you can consider refactoring the existing `Person` model to suit your use case.
10+
When working on MeetBuddy you will most likely find that some features and fields that are no longer necessary. In scenarios like this, you can consider refactoring the existing `Person` model to suit your use case.
1111

1212
In this tutorial, we’ll do exactly just that and remove the `address` field from `Person`.
1313

src/main/java/seedu/address/ui/MeetingCard.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public MeetingCard(Meeting meeting, int displayedIndex) {
6464
meeting.getConnectionToPerson().stream()
6565
.sorted(Comparator.comparing(person -> person.getName().fullName))
6666
.forEach(person -> personsRelated.getChildren()
67-
.add(new Label("[" + person.getName().fullName + "]")));
67+
.add(new Label(" [" + person.getName().fullName + "]")));
6868
}
6969
}
7070

0 commit comments

Comments
 (0)