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}

Enhancement Added: DeleteMeeting

External behavior


Start of Extract [from: User Guide]

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
  • Deletes meeting with person at the specified INDEX. The index refers to the index number shown in the meetings tab

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.

Implementation


Start of Extract [from: Developer Guide]

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.

Enhancement Added: FindMeeting

External behavior


Start of Extract [from: User Guide]

Locating meetings by name: findmeeting

Finds meetings whose names contain any of the given keywords.
Format: (fm)findmeeting KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g hans will match Hans

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Name of meeting or the name of person user is meeting is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Meetings matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • findmeeting John
    Returns meetings with John and John Doe

  • findmeeting Study Shopping
    Returns any meeting having names Study or Shopping

  • findmeeting Shopping Study John
    Returns any meeting having John as the person to meet and any meetings having names Study and Shopping

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.

Implementation


Start of Extract [from: Developer Guide]

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.

Enhancement Added: ListMeeting

External behavior


Start of Extract [from: User Guide]

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.

Implementation


Start of Extract [from: Developer Guide]

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