Project: PetCode

PetCode is a software app that aims to facilitate better working experience and boost business management efficiency for pet sale coordinators.

Given below are my contributions to the project.

  • Functionality: Added the order package to the model component. (Pull request: #82)
    • What it does: Added an Order class and its subcomponents.
    • Justification: These models lay the foundation so that existing and added operations/commands could be performed using these models.
    • Highlights: Some of the SOLID principles of OOP are applied in these classes.
  • Functionality: Extended person to different categories. (Pull request: #82)
    • What it does: Extended the Person class into Buyer, Supplier, and Deliverer, with their respective attributes.
    • Justification: These models lay the foundation so that existing and added operations/commands could be performed on them.
    • Highlights: Some of the SOLID principles of OOP are applied in these classes.
  • New Feature: Added a popup window for adding command. (Pull request: #159)
    • What it is about: Added a popup window with prompt text for adding buyers with orders and suppliers with pets, without the need to input any prefixes.
    • Justification: There is repetitive entering of multiple indexes when the users want to add a buyer with orders or to add a supplier with pets, which is very demanding in terms of memorisation.
    • Highlights: The popup window is designed to improve the user experience (UX), with keyboard shortcuts and prompt texts. It also shows how UI, model and logic components can be linked.
  • New Feature: Extended the EditCommand (Pull request: #205)
    • What it does: Extended the EditCommand to EditBuyerCommand, EditDelivererommand and EditSupplierCommand.
    • Justification: Buyer, Deliverer and Supplierr can have different attributes. Making a separate EditCommand for each of them allows customised editing even more distinct attributes are added to them in the future.
    • Highlights: This makes use of polymorphism.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.3 on GitHub (Link to v1.3 release)
    • Recorded and managed the majority of the meeting discussions in the meeting minutes in the Google Drive folder.
    • Created and assigned issues to team members on GitHub.
    • Created labels and categorised issues on GitHub.
  • Enhancements to existing features:
    • Updated the style of GUI and its layout. (Pull request: #142)
    • Categorised all Java classes into their respective packages. (Pull request: #205)
    • Wrote additional tests to increase test coverage.
    • Fixed several bugs. (Pull requests: #325, #362)
  • Documentation:
    • User Guide:
      • Added documentation for the feature: Adding a person with a popup window. (Pull request: #159)
      • Added documentation for the feature: Editing attributes of a contact. (Pull request: #205)
      • Added documentation for the feature: Listing contacts or items. (Pull request: #207)
      • Proofread the whole UG. (Pull requests: #356, #364, #365)
    • Developer Guide:
      • Updated the UI component. (Pull request: #180)
      • Added implementation of Display of person list. (Pull request: #180)
      • Added implementation of Pop-up window for add command. (Pull request: #204)
  • Community:
    • PRs reviewed (with non-trivial comments): #156, #352.
    • Reported bugs and suggestions for other teams in the class: #165, #170, #178, #186, #195.
  • Tools:
    • Used JavaFX and Scene Builder to modify the UI.
    • Used PlantUML to add more UML diagrams in the developer guide.