Project: Salesy

Salesy is a desktop program that helps food vendors in NUS manage details of their clients and suppliers. It is optimised for CLI users so that tasks can be done faster by typing in commands. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • New Feature:
    1. DeleteTaskCommand (Pull Request #102)
    • This command deletes a Task from Salesy.
    • Added the DeleteTaskCommandParser class to parse the user input for the creation of DeleteTaskCommand.
    • Added testcase for DeleteTaskCommand and DeleteTaskCommandParser (Pull Request #124)
  1. UpdateTaskCommand (Pull Request #107)
    • This command updates a Task detail in Salesy on a specified Index according to the specified description, deadline, and tags.
    • Used UpdateTaskDescriptor to represent updates done on a Task.
    • Added the UpdateTaskCommandParser class to parse the user input for the creation of UpdateTaskCommand.
    • Added testcase for UpdateTaskCommand and UpdateTaskCommandParser (Pull Request #124
  2. GUI Button to increase/decrease supply item and TextField to specify the amount (Pull Request #150)
    • Implemented buttons in the GUI to increase and decrease supply item count by the specified amount.
    • Implemented text field in the GUI to specify the amount.
    • Modified GUI, and also SupplyItem to accommodate this by saving the specified amount.
    • Created handler method to handle increase/decrease of supply item during click events.
  • Code contributed: RepoSense link

  • Project management:
    • Reviewed PR thoroughly to ensure that all bugs are caught before merge and all features work as documented.
    • Periodically checked the inner working of components and how they interact with each other to catch any possibility of unintended behavior or possible improvement.
    • Ensure correctness of Javadoc for created methods.
  • Contribution to team-based Tasks
    • to be added soon
  • Enhancements to existing features:
    • Improved index management for Task and SupplyItem in ModelManager class to work according to the functionality of FilteredList (Pull Request #150).
    • Added more method in ModelManager class for more functionality in processing the data (Pull Request #102).
    • Put requireNonNull in some methods where it has previously not been used and could cause problems (Pull Request #124).
    • Used FXCollections.unmodifiableObservableList in lists that are not supposed to be modified, to ensure immutability of certain data (Pull Request #124).
    • Created tests for Task and TaskList class (Pull Request #124).
    • Added warning log if inventory data can not be saved (Pull Request #151).
  • Documentation:
    • User Guide:
      • to be added soon
    • Developer Guide:
      • to be added soon
  • Review/Mentoring contributions: