Overview

TrackO is a desktop application that helps small home-based business owners manage their orders and inventory efficiently in the form of an integrated solution built using Java with around 15 kLOC. The user interacts with the application via a CLI, and the application responds with its GUI, created with JavaFX.

Summary of Contributions

  • Code contributed: RepoSense Link

  • Enhancements implemented:

    • Feature: Delete Order Command
      • Function: Allows the user to delete an existing order in the application.
      • Purpose: Core feature of an application that manages orders.
      • Relevant pull request(s): #57
    • Feature: Delete Item Command
      • Function: Allows the user to delete an existing inventory item in the application.
      • Purpose: Core feature of an application that manages inventory.
      • Relevant pull request(s): #64
    • Feature: Edit Item Command
      • Function: Allows the user to edit an existing inventory item in the application.
      • Purpose: Core feature of an application that manages inventory.
      • Notable Implications:
        • This feature safeguards users from mistakenly editing an inventory item into one that already exists in the application and creating a duplicate in the process.
        • Implementing this feature required deep consideration of the equivalency of inventory items from the perspective of the user.
      • Relevant pull request(s): #84
    • Enhancement: Item Tag
      • Context: Tag(s) are a property of inventory items and was previously only partially implemented by a teammate.
      • Changes Made: Built upon a teammate’s enhancement by implementing tag(s) in the UI and Storage component to allow tag(s) to be displayed to the user in the GUI, and to be saved to and read from the data file, respectively.
      • Relevant pull request(s): #101
    • Enhancement: Order’s timeCreated (time of creation)
      • Context: timeCreated is the time at which an order is created and was previously only partially implemented by a teammate.
      • Changes Made: Built upon a teammate’s enhancement by implementing timeCreated in the UI and Storage component to allow timeCreated to be displayed to the user in the GUI, and to be saved to and read from the data file, respectively.
      • Relevant pull request(s): #108
    • Feature: Sort Order Command
      • Function: Allows the user to sort the displayed order list in the application based on the orders’ time of creation.
      • Purpose: Supplementary feature of an application that manages orders which provides users with further ease of use.
      • Notable Implications:
        • Wrapped the existing FilteredList within a SortedList under JavaFX collections and displayed the SortedList to the user instead. This supported both features and allowed the user to sort filtered orders as well.
      • Relevant pull request(s): #108
  • Contributions to the UG:
    • Features Section: Deleting an order, Deleting an item, Editing an item, Sorting orders
    • Relevant pull request(s): #101, #108
  • Contributions to the DG:
    • Design Section: Architecture, UI, Logic, Model, Storage
    • Implementation Section: Delete Item Feature, Edit Item Feature, Sort Orders Feature
    • Relevant pull request(s): #114, #137, #203
  • Contributions to team-based tasks:
    • Updated the DG sections on architecture and general components of the application.
  • Review/mentoring contributions::
    • Provided alternative opinions to teammates’ contributions
      • Relevant pull request(s): #105
    • Provided explanations to teammates regarding personal contributions
    • Assisted teammates in fixing bugs introduced after merging different pull requests
      • Relevant pull request(s): #128
  • Contributions beyond the project team::
    • Assisted in detecting bugs and offered solutions and insights to another project team: Practical Exam Dry Run