Ong Wei Sheng - Project Portfolio Page
Overview
easyLog helps home-based business owners better manage their item inventory and orders through a carefully optimized
Command Line Interface(CLI). easyLog can manage logistics related matters faster than using just pen and paper.
Summary of Contributions
The following are different sections to my contributions.
Features implemented
The features that I have implemented are the following:
- App Initialization.
- Structure to process user input through
Parser
, ItemsParser
and OrdersParser
classes.
- Structure for model components(classes that handle and manipulate related data inputted by the user)
- Orders add feature.
- Loading, creating and saving of save data.
- Generation of receipt when an order done.
- Logging class that provides the logging for easyLog.
Code contributed
RepoSenes code contribution:
Link to RepoSense
Enhancements implemented
The enhancements that I have implemented are the following:
- Allowed users to continue inputting item number and quantity to input into the order while executing orders add
command when encountering an error due to formatting errors instead of exiting the command causing confusion.
- Implementing
ItemsParser
and OrdersParser
class so that the Parser
class does not need to handle all user
inputs, which minimizes bugs due to the possible overlapping of commands related to items and orders features.
- Ensured all exceptions are caught, even unknown exceptions that we do not have custom exceptions and code to handle,
such that the program does not crash or quit unexpectedly unless the user closes the app/program in correctly.
Contributions to user guide
I contributed to the following sections in the user guide:
- Table of contents
- Section 2.3.2. (Orders add feature)
- Section 2.4. (Storage related features)
- Contributed to the overall formatting and proofreading of the User Guide.
Contributions to developer guide
I contributed to the following sections in the developer guide:
- Section 1. (Introduction)
- Section 2.1. (Architecture design)
- Section 2.2. (EasyLog Component design)
- Section 2.3. (Ui component design)
- Section 2.4. (Parser component design)
- Section 2.7. (Storage component)
- Section 3.1. (App Initialization implementation)
- Section 3.2. (Processing of user inputs implementation)
- Section 3.3. (Loading of data implementation)
- Section 3.8. (Orders Done and generation of receipts implementation)
- Section 3.9. (Exit command and creating and/or saving of save data implementation)
- Appendix B (User stories)
Contributions to team-based tasks
I contributed to the following team-based tasks in the project:
- Setting up the GitHub team org/repo.
- Proofread and improved all code whenever necessary.
- Setting up tools e.g., GitHub, Gradle.
- Maintaining the issue tracker e.g. adding the necessary tags, assigning issues to the correct group member, closing
issues when completed.
- Managed releases
v1.0
- v2.1
(3 releases) on GitHub.
- Updating user/developer docs that are not specific to a feature.
- Setup CI to work properly on GitHub to allow more errors e.g., checkstyle errors, compile errors to be automatically
caught and has to be resolved first before merging of pull requests are allowed.
Review/mentoring contributions
- Reviewed, approved and merged all PRs. (Links to PR here
PRs not shown on this link here is before I started to use the review feature when merging PRs).
- Helped group members to plan and implement their features. Answered any questions that they may have when
implementing their features.
Contributions beyond the project team
Link to contributions here.