Project: Game Book

GameBook is a desktop app designed for gamblers to track their gambling games. It is optimized for use via a Command Line Interface (CLI), but still possesses the benefit of a Graphical User Interface (GUI).

Our project is a brown-field project. We adapted from the existing AddressBook3 (GitHub Link) application to build our software.

Below lists my major contributions to the project.

Code Contributed: RepoSense Link

Team-based Tasks

  • Set up the organisation group and repository.
  • Set up links to code coverage tools and CI.
  • Provided an inspiration for the context of the project.
  • Participated in reviewing of PRs.

Enhancements and Adaptation from AddressBook

  • Handled the commands unit of the software
    • add, delete, edit, list, and exit commands for initial adaptation in v1.2. [#41].
    • Refactored /tag parameter. [#98]
    • find command for adaptation in v1.3. [#113]
  • Refactored the macroscopic structure of components. [#126]
    • Enforced separation and abstraction between Model and Logic components.
    • Enforced dependency-inversion principle by making both Parser and Model subclasses depend on an abstraction.
    • Enforced further information hiding between interacting components of Parser and Model.
    • A large scale refactoring given that the test suite depended on many of the changed components.
  • Continuously managed and updated test suite. [#66, #75, #220]

Documentation

  • User Guide
    • Adjusted parameters to edit command.
    • Although not included in the PDF, created a sidebar for navigation after much toil through HTML and CSS technology.
    • Participated in review, proofreading, and general editing.
  • Developer Guide
    • Updated Logic component. Adapted sequence diagrams from AddressBook3 to our version.
    • Add use cases
    • Created a sidebar for navigation
    • Participated in review, proofreading, and general editing.

Review/Mentoring Contributions

  • Reviewed Pull Requests
    • Link to PRs approved by me
    • PRs with significant feedback: [#91, #175, #216, #225, #226]
    • Provided tips on concepts including, but not limited to, Git, GitHub, Gradle.