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).

Given below are my contributions to the project.

  • New Feature: Added functionality to sort the game entries after add or edit
    • What it does: Automatically sorts the list of game entries by date, with the latest dates appearing at the top.
    • Justification: This feature is very important to the user as it places the most recent games (which users would be more interested in) at the top. It also provides a sense of ordering to the app.
    • Highlights: Implementing this feature required an in-depth understanding of the execution pipeline for adding and editing game entries, as well as the internal representation of the game entries list in order to figure out the ideal place to implement sorting.
  • Code contributed: RepoSense link

  • Modifications to existing features:
    • Refactored Main and Ui components (renaming variables and classes and calling the correct new classes/methods) to suit the purpose of GameBook in v1.2 (Pull request #47)
    • Refactored test/data files to suit the purpose of GameBook in v1.2 (Pull request #71)
    • Modify behaviour of duplicate entries handling. Instead of throwing an exception when entries with the same GAME_NAME and DATE are present, I changed it to only display an alert to user as it is possible to play several games with the same GAME_NAME on the same day, and some users may also log several game entries at the same time. (Pull request #112)
    • Modified graph plotting behaviour to display data points from the latest dates. (Pull request #137)
  • Enhancements to existing features:
    • Added unit tests for Average and Median (Pull request #215)
    • Styled the graph (Pull requests #137, #142)
    • Fixed miscellaneous bugs in existing features or test cases (Pull requests #147, #212, #213, #234, #246)
  • Documentation:
    • User Guide:
      • Made an initial modification of Quick Start & FAQ to suit the purpose of GameBook in v1.1 (Pull request #12)
      • Modified miscellaneous explanations to improve clarity (Pull requests #212, #235)
      • Added explanation about auto-capitalization feature of GAME_NAME and LOCATION (Pull request #212)
      • Added several screenshots to illustrate the usage of the app (Pull request #212)
    • Developers’ Guide:
      • Updated product scope, NFR and glossary (Pull requests #29, #34)
      • Added description of implementation details for adding a game entry. (Pull requests #145, #226)
      • Refactored UiClassDiagram from AB3 (Pull requests #145, #221)
      • Made miscellaneous modifications to other UML diagrams and explanations. (Pull request #244
  • Project management:
    • Managed release v1.3(final) and v1.4 on GitHub.
  • Community:
    • PRs reviewed (with non-trivial review comments): #113, #114, #136
    • Reported 18 bugs and suggestions for another team during PE-D.
    • Conducted testing for another team