Zhu Zikun - Project Portfolio Page
Overview
easyLog helps home-based business owners better manage their item inventory and orders through a carefully designed
Command Line Interface (CLI). The features of easyLog fit together to form a cohesive whole, solve the needs and wants
of a clearly specified and narrowed down target user (i.e., home-based business owners) and are optimized for fast
typists.
Summary of Contributions
Code contributed
My overall code contribution can be
found here
.
Major Enhancements Implemented
I have implemented large
parts of the final working version of items add, items stats and
items update (in descending order). I have also implemented the full final version of items clear and orders clear
. I also wrote exhaustive exceptions to deal with all possible “unusual” but not entirely unexpected situations for items add, items update, items clear,
items stats and orders clear features.
Most major enhancements made by me are for items add and orders clear.
- items add
- I checked whether the item description consists of purely empty spaces. If so, a relevant error message will be
shown to notify that item descriptions cannot be empty.
- I designed
items add command to keep asking the users for a valid item unit price
and item stock. If an invalid input is given, a specific error message will be shown to the users before they
retry. This is to be consistent with orders add feature which keeps asking for a pair of valid of item index
and item stock.
- I used BigDecimal rather than float or double as float or double are less suitable for
monetary calculations due to loss of significance.
- I rounded all item prices and store them in exactly 2 decimal places (e.g., 10.555 -> 10.56 and 10.554 -> 10.55).
- orders clear
- After clearing all orders, items belonging to these orders are added back to the item inventory.
Contributions to team-based tasks
- I checked other teammates’ code in terms of code quality and suggested changes, if any.
- I proofreaded others groupmates work in the documentation and propose changes, if any.
- I created relevant GitHub issues with an appropriate task definition and assignment.
- I made some code base for other members to implement their features easily.
Review/mentoring contributions
- I reviewed some pull requests mostly for documentation changes.
- I proposed relevant features during meetings.
- I helped my teammates by answering their questions in all aspects during the course of this module.
- I coordinated the group to make it work even better together.
Contributions beyond the project team
- I reported Developer Guide bugs for another team during a tutorial lesson.
- I reported bugs by testing another group’s jar file and propose changes to their User Guide during the Practical Exam
(Dry Run).
- I answered some questions in the course forum and helped friends from another team for tutorial questions.
Contributions to the User Guide
Our user guide can be found here.
I have written the following parts: Introduction, items add, items update, items clear, items stats, orders clear and FAQ.
Contributions to the Developer Guide
Our developer guide can be found here.
I have written the following parts: Introduction, Model Component, items update, Documentation, Testing and Dev Ops.