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 user login and logout commands.

    • What it does: This feature allows the user to login and logout of the application.
    • Justification: This feature is important because it allows the user to secure their data and prevent unlawful access to the data through the GUI.
    • Highlights: Since this feature is based on a new entity, it required the creation of the User model, which stores the various fields needed for the user commands. As the user should not be able to execute most of the commands without logging in, the blocking of the execution of the commands was also implemented.
    • Credits: The implementation of the User model was adapted from the AB3 Person model.
    • Related pull requests: #115 #124 #139
  • New Feature: Added the user update command.

    • What it does: This feature allows the user to update their account details.
    • Justification: This feature is important because it allows the user to update their details to secure their data.
    • Related pull request: #201
  • Major Enhancement: Added Customer ID field to the Customer model.

    • What it does: This enhancement allows the user to identify customers by their ID instead of the index of the displayed UI list.
    • Justification: This enhancement allows the user to identify customers by their ID, which will be stored in the delivery linked to the customer.
    • Highlights: This enhancement required the creation of the class-level variable customerCount in the Customer model, which complicates the testing of the model as the customerId created does not match the expected customerId during the early stage of implementation.
    • Related pull request: #110
  • Enhancements to existing features:

    • Added JUnit tests for all features implemented by me.
    • Bug fixing in V1.3. Related pull request: 442
  • Bug fixing:

    • Updated customer edit such that whenever a Customer is edited, deliveries associated with the Customer will be updated with the latest customer details as well. This prevents outdated and incorrect information from being shown to the user. Related pull request: #482
  • Code contributed: RepoSense link

  • Contributions to team-based tasks:

    • Managed release of v1.3.trial on GitHub
    • Created and uploaded demo for v1.3
    • Added the sections About this User Guide and Navigating the User Guide in UserGuide.md (Pull request #298)
    • Added value proposition of HomeBoss in DeveloperGuide.md (Pull request #71)
    • Updated the details of Acknowledgements, NFRs, Glossary and Effort in DeveloperGuide.md (Pull requests #455 #457)
  • Documentation:

    • User Guide:
      • Added/Updated documentation for the features login, logout, update, help, exit, clear, customer add, customer find (Pull requests #298 #315)
      • Added the sections About this User Guide and Navigating the User Guide (Pull request #298)
    • Developer Guide:
      • Added value proposition of HomeBoss (Pull request #71)
      • Added implementation details and diagrams for the features login, logout, customer add (Pull requests #177 #191)
      • Updated the details of Acknowledgements, NFRs, Glossary and Effort (Pull requests #455 #457)
      • Updated the class diagrams for User, Customer and Delivery (Pull request #492)
  • Community:

    • PRs reviewed: As of 13th November, I have reviewed 49 PRs (GitHub)
    • Reported bugs for other teams during PE Dry Run: reported 12 bugs posted as issues