Jeffrey Tan's Project Portfolio Page
Project: CLI-nic
CLI-nic is a desktop application to help medical product sales managers keep track of medical products and storage. It is optimized for these managers to update product conditions and access critical product information quickly via fast typing. It is written in Java, and has about 21 kLoC.
Given below are my contributions to the project.
- Major Enhancement: Enhancement to add command (Pull requests: #112, #113)
- What it does: Allows the user to insert new Suppliers/Warehouses into the CLI-nic Supplier/Warehouse List
respectively.
The user can add:- Name, Phone, and Remark (Optional) attributes to both Suppliers and Warehouses
- In addition, an Email attribute to Suppliers and an Address attribute to Warehouses
- Justification: This is an important feature, and it is a must-have. It is the first touch for most users and allows the user to effectively keep track of medical products and storage.
- Highlights: This feature is now able to add different entities such as Suppliers and Warehouses
as opposed to the initial implementation where only Persons are allowed. This allowed for more
flexibility in the development of features and usage of the application. As such, the codes for parser
and test codes were mostly rewritten.
Credits: This feature was adapted from AddressBook-Level3
- What it does: Allows the user to insert new Suppliers/Warehouses into the CLI-nic Supplier/Warehouse List
respectively.
- Major Enhancement: Refactoring of AddressBook-Level3 to accommodate CLI-nic use case (Pull request: #100)
- What it does: Acts as the initial codebase for team to allow for the easier building of features into CLI-nic.
- Justification: This is an essential update, the process can be tedious and time-consuming but it helped
minimised the refactoring that each member has to do which could require more time to resolve and
synchronise.
Credits: The refactoring is done on the codebase provided by AddressBook-Level3
- New Feature: Adaptation and integration of autocomplete (Pull requests: #223, #228)
- What it does: Suggests updated autocompleted commands for user in real time as they key in the command they would like to execute.
- Justification: This is a good-to-have feature which can help improve user experience as they would be able to achieve the intended outcome more quickly.
- Highlights: To implement auto-complete, a new UI class had to be created and integrated with
the existing UI classes. The integration with commandHistory feature was the most time-consuming yet
fulfilling component as they have largely overlapping codes especially in the UI classes. There were a
number of bugs while dealing with JavaFX but they were resolved in the final implementation where the
various features were successfully integrated with the codebase for production.
Credits: This feature was adapted from past student ShaunNgTX
- Minor Enhancement: Fix bugs for the CLI-nic (Pull requests: #130, #131, #141, #158, #160, #165, #172, #212)
- What it does: Restricts user from performing invalid actions and improve user experience
- Justification: This is an essential update, as invalid actions would affect the functionality of CLI-nic. Unresolved UI bugs may reduce usability of CLI-nic.
- Challenges: There were many UI related bugs which it took quite some time to learn about the various components followed by stepwise trial-and-error to fix.
-
Code contributed: RepoSense link
- Project management:
- In charge of Documentation and UI Design
- Tracked GitHub issues
- Contributed to releases v1.0 - v1.4 (6 releases) on GitHub
- Enhancements to existing features:
- Did the first mock-up for CLI-nic’s UI using Adobe Photoshop (Pull request: #83)
- Designed and replaced App Logo (Pull request: #114)
- Made major changes to the UI to include drop-down for products (Pull request: #131)
- Updated the GUI color scheme and added new themes (Pull request: #131)
- Housekeeping to ensure codebase and documentations’ format and language are up-to-date (Pull requests: #144, #231, #247)
- Documentation:
- User Guide:
- Developer Guide:
- Added
add
feature implementation details (Pull requests: #139, #154) - Added
autoComplete
implementation details and user stories (Pull request: #228) - Added Activity, Class and Sequence UML Diagrams (Pull request: #154)
- Added Manual Testing Instructions for Developer Guide (Pull request: #154)
- Added Command Prefix table (Pull request: #154)
- Added
- Community:
- Tools:
- Integrated a third party library (PlantUML Github Action) (Pull request: #145)
Credits for workflow to: qwoprocks
- Integrated a third party library (PlantUML Github Action) (Pull request: #145)