PROJECT: AddressBook - Level 3


Overview

Pet Store Helper is a desktop application designed for owners of pet stores to help them manage their store and operations. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 15 kLoC.

Summary of contributions

Major enhancements

  • Display: Added a command to switch between different displays.

    • What it does: Allows the user to switch between different displays of the program, such as to view pets, schedule, etc.

    • Justification: This is the fundamental command behind the user interface of the program, which is necessary to view different parts of the program.

    • Highlights: The need to support display for multiple types of different systems made the implementation of this command difficult. Implementation was further complicated by the need to ensure that the UI remains constantly updated upon any changes to data in the system.

  • Calendar: Added a calendar view of slots.

    • What it does: Allows the user to view the slots kept track of by the system to be shown in the form of a calendar.

    • Justification: This feature improves the usability of the program significantly because such a view allows many more slots to be seen at once, as opposed to when slots out listed one-by-one. Apart from that, from a quick glance, the relative durations and timings apart between slots can be seen.

    • Highlights: Implementation was challenging as it required a non-trivial way of laying out the positions of each slot. It also required an in-depth knowledge of the various components in JavaFX, as well as their interactions with each other.

 
 

Minor enhancements

  • Refactored slots-related commands (#22, #25, #63)

  • Organized date and time related methods into a single class (#45)

Code contribution

My code contribution can be viewed here.

Other contributions

  • Documentation:

    • User Guide:

      • Added screenshots in the User Guide to illustrate the various types of display of the program.

      • Wrote sections as indicated in Contributions to the User Guide.

    • Developer Guide:

      • Integrated information from other various guides into the developer guide.

      • Came up with instructions for manual testing.

      • Wrote sections as indicated in Contributions to the Developer Guide.

  • Community:

    • PRs reviewed (with non-trivial review comments): #13, #24, #66, #107

    • Some parts of the display feature I wrote was made use of by several other class mates (#66, #137)

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.

Sections of the User Guide written by me include:

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.

Sections of the Developer Guide written by me include: