Project: Warenager

Warenager is an inventory management application to help warehouse managers of small scale companies keep track of stocks in their warehouse. It optimizes inventory management tasks for warehouse managers including but not exhaustive of updating, searching and sorting stocks via Command Line Interface (CLI), while still having the benefits of a Graphical User Interface (GUI).

Given below are my contributions to the project.

  • Code Contribution
    • Here is the link to my code on the tP Code Dashboard.
  • Enhancements implemented
    • New Feature: Added the ability to delete existing stock(s) from the inventory. (Pull request: #94)
      • What it does: Allows the user to delete the chosen stock(s).
      • Justification: This feature enables the user to delete any unwanted or unused stock, so that the storage will not be clogged up with outdated stock.
      • Highlights: Multiple stocks are able to be deleted in one input for faster usage. Status of the deletion will be shown to the user, informing them which stocks are being successfully deleted and which are not.
    • New Feature: Added the ability to generate a unique serial number for each newly added stock. (Pull requests: #89, #92)
      • What it does: Allows the user to perform commands using serial numbers.
      • Justification: This feature eliminates any confusion that can arise when users reuse field attributes when adding a new stock. Users can then differentiate field inputs clearly when using Warenager commands.
      • Difficulty: This feature is hard to implement due to the unfamiliarity of Jackson and JSON formats, and the deeply abstracted storage classes to replicate.
    • New Feature: Added the ability to display various statistics through a pie chart. (Pull requests: #137, #144)
      • What it does: Allows the user to view relevant statistics for their entire inventory.
      • Justification: Often statistics are needed for inventory evaluation. The quick overview that this feature provides will help the user obtain the required data for analysis.
      • Highlights: Statistics are being updated after each command is executed, making it faster to view statistics instead of having the input the command lines again.
    • New Feature: Added the ability to clear data in Warenager. (Pull request: #213)
      • What it does: Allows the user to clear all the data in Warenager with one command input.
      • Justification: If the user wants to reset all the data in Warenager, without such a clear command, the user have to manually delete every single stock in Warenager. Serial numbers cannot be resetted via deleting of stocks too.
  • Community
    • Reviews & Merging:
      • Ensured code quality when reviewing pull requests, before approving merge.
      • Reviewed and tested teammates’ pull requests.
      • Merged reviewed and approved pull requests, and ensured that the review was thorough.
    • Bugs:
      • Fixed Ui enter button and icon not displaying correctly issue (Pull request #136)
      • Fixed Integer out of range bug for integer inputs (Pull request #213)
    • Forums:
      • Provided opinions for peers’ pull requests and gave suggestions (examples: #93, #151, #159 #177, #191)
    • Project management:
      • Ensured team meetings cover the requirements for the week and everyone attends the meeting.
  • UI:
    • Created base light theme for Warenager. (Pull request: #182)
    • Added tabbing feature to toggle between tabs easily through CLI. (Pull request: #255)
  • Testing:
    • Created unit tests for delete feature and parser. (Pull requests: #118, #180)
    • Created unit tests for stats feature and parser. (Pull request: #180)
    • Created unit tests for clear feature and parser. (Pull request: #213)
    • Created unit tests for tab feature. (Pull requests: #255, #310)
    • Created unit tests for exit feature and parser. (Pull request: #310)
    • Created unit tests for serial number classes that include: JsonAdaptedSerialNumberSet, JsonSerialNumberSetsBookStorage, JsonSerializableSerialNumberSetsBook (Pull request: #282)
    • Created unit tests for other classes that include: StockBookParser, ModelManager, StockBook, UserPrefs, AccumulatedQuantity, SerialNumber, SerialNumberSet, UniqueSerialNumberSetList, CommandResult (Pull requests: #213, #310)
    • Created utility classes for testutil that include: SerialNumberSetsBookBuilder, StockUtil, TypicalSerialNumberSets, StockBookBuilder (Pull request: #213):
    • Reviewed other team members’ tests and ensure the tests are adequate and working.


  • Documentation:
    • Contributions to User Guide:
      • Converted the draft user guide content to markdown file format. (Pull request: #41)
      • Updated the documentation for delete feature. (Pull requests: #103, #256)
      • Updated the documentation for stats feature. (Pull requests: #146, #256)
      • Updated the documentation for clear feature. (Pull request: #256)
      • Updated the documentation for tab feature. (Pull request: #256)
      • Added definitions and label notations guide, and FAQ section. (Pull request: #183)


    • Contributions to Developer Guide:
      • Updated NFR. (Pull request: #54)
      • Added use cases for delete feature. (Pull request: #105)
      • Added use cases for stats feature. (Pull request: #146)
      • Added use cases for clear feature. (Pull request: #273)
      • Added use cases for tab feature. (Pull request: #273)
      • Added test cases for delete feature. (Pull request: #105)
      • Added test cases for stats feature. (Pull request: #273)
      • Added test cases for clear feature. (Pull request: #273)
      • Added test cases for tab feature. (Pull request: #273)
      • Added test cases for saving data feature. (Pull request: #273)
      • Added test cases for generating serial number feature. (Pull request: #161)
      • Added implementation details of the stats feature. (Pull request: #161)
      • Added UML diagrams for stats feature. (Pull request: #161)
      • Added implementation details of the delete feature. (Pull request: #282)
      • Added UML diagrams for delete feature. (Pull request: #282)
      • Added UML diagram for storage class. (Pull request: #273)