Haritha Divakaran - Project Portfolio Page

PROJECT: Professor Assistant Console (PAC)

Overview

Pac is a event scheduler used by professors which helps to keep track of events. The user interacts with it using a Command Line Interface (CLI). It is written in Java, and has about 4.5k LOC.

Summary of Contributions

Major enhancement 1: added the ability to view events in a calendar

Major enhancement 2: added the ability to add date and time to events

What it does: Allows the user to add date and time to an event in the format: yyyy-mm-dd HHmm, and displays it to user in this format: E, MMM dd yyyy HHmm (displays the day of the week, and the name of the month) for easier viewing.

Justification: This feature allows the user to add date and time in a pure numerical format and display it in a format which is easier, by displaying the day of the week, ie. Mon-Sun and the month name, ie. Jan-Dec.

Highlights: This enhancement was challenging as adding date and time to an event is an optional feature. Therefore, an empty string cannot be considered as a DateTimeParseException to be thrown. Thus, it required analysis of design alternatives to make sure that a wrong datetime format is indeed an exception to be thrown whereas an empty string is not. Moreover, it affected calendar implementation as not all events can be extracted for calendar view.

Major enhancement 3: added the ability to edit event particulars

What it does: Allows the user to edit event particular such as its name, datetime, venue and the event itself.

Justification: This feature improves the product significantly as it provides a convenient way to rectify the user’s mistake when typing the particulars of an event.

Highlights: This enhancement required changes to the existing EventParser. It also required more commands to be added to EventCommandInterpreter and the UI class.

Minor enhancement 1: implemented CalendarParser

Minor enhancement 2: added the ability to add Seminar

Minor enhancement 3: added the ability to list event and seminar

Code contributed: here

Other contributions:

Testing :

Necessary general code enhancements

Update document that are not specific to a feature

Maintaining issue tracker

Documentation

Community