Kumaran's Project Portfolio Page
Project: StoreMando
StoreMando is an integrated platform fully customised for residents in households, residential colleges and halls, to help users manage their items effectively and efficiently. StoreMando allows users to keep track of their items’ whereabouts, quantities and expiry dates with a few simple commands. Furthermore, StoreMando also comes with an inbuilt reminder feature to help users keep track of items that are expiring. All items’ information is encapsulated clearly on our simple and clean Graphical User Interface (GUI). Our application is optimised for use via the Command Line Interface (CLI) and if users have quick fingers, StoreMando can help users manage their items in the blink of an eye.
Given below are my contributions to the project.
- New Feature: Added the ability to sort items in the list.
(Pull request #101)
- What it does: This feature allows the user to sort items in the displayed list by quantity or expiry date. For sort by expiry date, items will be sorted by items with earliest expiry date to latest expiry date. For sort by quantity, items are sorted in ascending order of quantity.
- Justification: This feature improves the product significantly because a user can view the items with expiry dates nearing and items with stocks running low. Users can thus remember to finish such items quickly or restock on such items.
- Highlights: It required an in-depth analysis of design alternatives. The implementation was challenging as I did not know how to constantly update the list while keeping its attribute final. I also had to update the list being displayed which took in a predicate to update unlike sort which required a comparator to be updated.
-
Code contributed: RepoSense link
- Project Management:
- Produced milestone v1.3 product demo demonstrating all features implemented at the end of the iteration. Video Link
- Refactoring:
- Refactored all instances of Person in StoreMando to Item (Pull request #57)
- Enhancements to Existing Features:
- Modified the add feature to include an additional optional attribute, expiry date (Pull request #75)
- Updated the ExpiryDate class to take in a LocalDate attribute which stores the expiry date of an item. (Pull request #75)
- Update implementation of reminder, list and find command so that they are executed on the displayed sublist instead of the entire inventory. (Pull request #158)
- Updated sort feature implementation and added tests for the newly created methods. (Pull request #159)
- Modified list feature to make the search case-sensitive (Pull request #201)
- Update clear feature to check the entire list instead of filtered list. (Pull request #329)
- Edit success and error messages (Pull request #336)
- Documentation:
- User Guide:
- Added the documentation for the features
add
(Pull request #75) - Added the documentation for the features
sort
(Pull request #101) - Updated the documentation for the features
reminder
(Pull request #125) - Updated command summary for the User Guide (Pull request #125)
- Changed the formatting and layout for the User Guide and added a section on Navigating User Guide (Pull request #125)
- Further formatting of User Guide and including new sections (Pull requests #180, #217, #219)
- Added the documentation for the features
- Developer Guide:
- Added NFRs to the Developer Guide (Pull request #41)
- Added Use Cases to the Developer Guide (Pull requests #43, #143)
- Update NFR, Glossary and Product Scope (Pull request #169)
- Added activity and sequence diagram for reminder and clear features as well as explaining the implementation of the features. (Pull request #221)
- Edited the implementation steps and sequence diagrams for edit, find, sort, clear and help features. (Pull request #289)
- Edit ambiguous explanations and unnecessary tips in DG (Pull request #316)
- Update DG Appendix (Pull request #327)
- About Us:
- User Guide:
- Tests:
- Community:
- Contributions beyond the project team
- Reported 11 bugs for other teams during mock PE.