Project: HomeBoss

HomeBoss is a desktop application used for managing deliveries for home business owners. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 19 kLoC.

Given below are my contributions to the project.

  • New Feature: Added the Delivery model

    • What it does: This feature allows the user to store deliveries in the application
    • Justification: This feature is important because it allows the user to store their deliveries in the application as our application is centered around managing deliveries.
    • Highlights: This required the creation of the Delivery model, which stores the various fields needed for the delivery commands. As the delivery commands are based on the Delivery model, the creation of the Delivery model was the first step in the implementation of the delivery commands.
    • Related Pull Requests: #114
  • New Feature: Added the ability to list deliveries with filter and sort functionalities

    • What it does: Allows the user to list deliveries with a filter and sort their deliveries
    • Justification: This feature improves the product significantly because it allows the user to view their deliveries in a more organised manner.
    • Highlights: This required two separate lists to be created, one for the filtered deliveries and one for the sorted deliveries. The filtered deliveries list is created by iterating through the original list and adding deliveries that match the filter criteria. The sorted deliveries list is created by sorting the filtered deliveries list using a comparator. The filtered deliveries list is then displayed to the user.
    • Related Pull Requests: #158 , #202
  • New Feature: Added Delivery View

    • What it does: Allows the user to view a delivery in detail
    • Justification: This feature improves the product significantly because it allows the user to view their deliveries with details.
    • Highlights: This required a new class to be created to handle the view delivery command. The view delivery command takes in the id of the delivery to be viewed and displays the delivery details including the date, address, delivery status and more to the user.
    • Related Pull Requests: #158
  • Major Enhancement: Enhanced UI List to show Deliveries

    • What it does: Allows the user to view their deliveries in the UI List.
    • Justification: This feature improves the product significantly because it allows the user to view their deliveries in the UI List as the current implementation only allows customers to be listed out.
    • Highlights: This required changing the data structure used to represent an item in the list to be more general rather than directly using a specific model. This allows the UI List to be used for both customers and deliveries.
    • Related Pull Requests: #130
  • Code Contributed: RepoSense link

  • Contributions to team-based tasks:

    • Managed and facilitated team meetings and discussions.
    • Managed issues and pull requests on GitHub.
    • Managed release of v1.3 on GitHub.
    • Checked code quality of team members' pull requests.
  • Documentation

    • User Guide:
      • Added the sections for the features for "View a list of Deliveries" and "View details of a Delivery", (Pull request #310)
      • Added the sections "FAQ" and "Command Summary" in UserGuide.md (Pull request #228 , #289)
    • Developer Guide:
      • Modified Model class diagram and created separate class diagrams for different models. (Pull request #180)
      • Added the sections, Use Cases for User, List of Deliveries, View Details of a Delivery, User Stories and Planned Enhancements (Pull request #95)
      • Added User Stories (Pull request #68 , #272)
      • Added Planned Enhancements (Pull request #440)
  • Community:

    • PRs Reviewed: As of 12th November, I have reviewed 101 PRs (Github)
    • Reported bugs for other teams during PE Dry Run: reported 26 bugs posted as issues