Project: Travelling BusinessMan

Travelling BusinessMan is a desktop application that manages notes and clients across multiple countries and timezones for businessmen who travel a lot and have many international clients. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 24 kLoC.

Given below are my contributions to the project.

  • New features:
    • Updated help window display and contents (Pull requests #117, #317)
    • Added option to close help window using the Esc key (Pull request #133)
    • Created the NoteCard UI component to view client and country notes in a user-friendly way and implemented a better GUI display for country note view and country note view c/COUNTRY (Pull request #247)
    • Co-authored pull request #197 to implement GUI testing and integrate into GitHub Continuous Integration workflow
      • Credits: Address Book 4’s codebase was referenced
    • Added ContractExpiryDate field to Client (Pull request #191)
    • client suggest by/contract command
    • Implemented sorting for client list for SuggestCommand purposes (Pull request #221)
    • Helped with designing the TBM logo

  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.1 - v1.4 (4 releases) on GitHub
    • Created walking skeleton for v1.2 (Pull request #115)

  • Enhancements to existing features:
    • Refactored all instances of person to client (Pull request #116)
    • Updated checkstyle to better enforce code quality (Pull requests #128, #216 (Co-authored))
    • Implemented defensive truncation of the window size and position read from user preferences to ensure the application renders on screen properly even if preferences.json is edited (Pull request #352)
    • Consistently increased test coverage in pull requests (Pull requests #191, #197 (Co-authored), #203 (Co-authored), #206, #258, #271, #274, #355)
    • Checked and polished code quality for the logic package (Pull request #362)
    • Cleaned up and standardized test code (Pull request #271)

  • Documentation:
    • User Guide:
      • Added documentation for the features country note, clear, and exit #31
      • Defined a new syntax for commands with multiple parameters that require at least one parameter to be supplied #257
      • Added screenshots and descriptions under Appendix C: Expected Command Behaviour Screenshots for the commands help, client list, and client find #351
      • Updated the FAQ #351
    • Developer Guide:
      • Added the list of user stories and labelled their priorities #38
      • Added the use case for Clearing all entries from TBM #53
      • Added the use case for Noting down information about a client #351
      • Co-authored implementation section with UML diagrams for client suggest #204 #351
      • Updated UML diagrams for sections Model component, Inner workings, and Storage component #351
      • Updated activity diagram under implementation section of Switching between displaying Country Note List Panel, the Client View, and the default view #351

  • Community:
  • Tools:
    • Added a GitHub action to automatically generates and commits images of UML diagrams when .puml files are changed (Pull requests #135, #141)
    • Helped to integrate TestFX for GUI testing into the team’s GitHub Continuous Integration workflow (Pull request #197 (Co-authored))