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
  • 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:
      • Added documentation for the add command (Pull requests: #75, #154)
      • Added documentation for autoComplete feature (Pull request: #228)
    • 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)
  • Community:
    • PRs reviewed (with non-trivial comments): (Pull requests: #133, #138, #142, #156, #175)
    • Reported bugs for other teams in the class (Pull request: AY2021S1-CS2103-F09-1)
    • Written Test Cases for tests broken by refactoring (Pull request: #100)
  • Tools: