Project: ScheduBook
Schedubook is used by students to better manage and visualize their days by organizing their meetings. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 9 kLoC. This project is a product of the module, Software Engineering, CS2103T, in NUS. ScheduBook is proudly developed by my team based on AddressBook(Level4), and by SE-EDU team, whose initial address book application was created to be used for teaching Software Engineering principles.
Purpose
This project portfolio provides my contribution towards this project. It also includes the implementation and justification for each enhancement implemented, as well as proposed future enhancements and other relevant contributions.
Code contributed: [Functional code] [Test code] {give links to collated code files}
Deleting a meeting: deletemeeting
Deletes a meeting in the address book at the specified INDEX
Format: (dm)deletemeeting INDEX
| INDEX must be a positive integer |
| An overdue meeting will be automatically deleted when you open Schedubook |
Examples:
-
deletemeeting 1 -
deletemeeting 2
End of Extract
Justification
There is a need for students to properly plan their important meetings. After the addmeeting function done by group mate, Nelson, the deletemeeting feature allows student to delete meetings with existing contacts and to get rid of any unnecessary meetings.
Delete Meeting
The delete meeting command inherits from UndoableCommand which allows user to delete meeting with the following parameters: 'INDEX' of meeting in the meeting list.
Implementation:
When the deletemeeting command is called with the appropriate parameters, the instance of the Meeting object created during addmeeting
is called upon and removed.
For example,
deletemeeting 1
Deletes an object with the following parameters
INDEX: 1
The INDEX of meeting provides the name, date and location of the meeting which is used to remove it
from the meeting list.
End of Extract
Enhancement Proposed: Add delete multiple meetings
Allows user to delete multiple meetings at once whenever the user wants to remove multiple meetings that are unnecessary.
Enhancement Proposed: Delete a specific contact in group meetings
Allows user to delete a specific contact in group meetings in a case where he/she were not attending this group meeting after it has been added to Schedubook.
Locating meetings by name: findmeeting
Finds meetings whose names contain any of the given keywords.
Format: (fm)findmeeting KEYWORD [MORE_KEYWORDS]
Examples:
-
findmeeting John
Returns meetings withJohnandJohn Doe -
findmeeting Study Shopping
Returns any meeting having namesStudyorShopping -
findmeeting Shopping Study John
Returns any meeting havingJohnas the person to meet and any meetings having namesStudyandShopping
End of Extract
Justification
It serves as a navigation command which helps the user to sift through all of his/her meetings to narrow down and display only the relevant meetings.
Find Meeting
The find meeting command inherits from Command which allows users to find meeting with the following parameters: [KEYWORD] of the meeting in the meeting list.
Implementation:
When the findmeeting command is called with the appropriate parameters, a search for the instance of the Meeting object created during addmeeting
with keywords are listed.
For example,
findmeeting makan
Finds an object with the following parameters
KEYWORD: makan
The KEYWORD of meeting provides the name, date and location of the meeting which is used to list it.
If none of the meetings contains the KEYWORD, the results would show "No meetings found".
End of Extract
Enhancement Proposed: Add find person on Twitter/Facebook
Allows user to find the person he is meeting with for his twitter or facebook account to get to know the contact more.
Listing all meetings : listmeeting
You can show all the list out of your scheduled meetings after you have used findmeeting or findexactmeeting commands.
Shows a list of all meetings in the address book.
Format: (lm)listmeeting
| Meetings are always sorted according to the closest date |
End of Extract
Justification
This feature is to list down all the meetings that has been added into one single list which is arranged in order of timing.
List Meeting
The delete meeting command inherits from UndoableCommand which allows user to list meeting with the following parameters: 'lm'
Implementation:
When the listmeeting command is called, the latest MeetingList is called and shown.
For example,
lm
End of Extract
Enhancement Proposed: Add list meeting location feature
Allows the user to list all meetings at the same location so that he/she can better visualize how many times he/she has to go there for meetings.
Other contributions
-
Show total contacts in status bar (Pull requests https://github.com/CS2103AUG2017-T09-B2/main/pull/42)
-
Added splash page as a home page to the app (Pull requests https://github.com/CS2103AUG2017-T09-B2/main/pull/118)