Kai Chao's Project Portfolio Page
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.
- New Feature: Added the ability to delete existing stock(s) from the inventory.
(Pull request: #94)
- 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:
- Forums:
- Project management:
- Ensured team meetings cover the requirements for the week and everyone attends the meeting.
- Reviews & Merging:
- UI:
- 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.
- Created unit tests for
- 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)
- Contributions to User Guide: