Project: ZooKeep

ZooKeep is a desktop app for managing animals under a zookeeper’s care, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI), created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature: Snapshot feature (#124)
    • What it does: saves a snapshot of the ZooKeepBook data at the point in time when the command is executed as a .json file with the user specified file name.
    • Justification: Zookeepers would need to frequently back up their animal data (e.g. at the end of every day) to keep track of the condition of their animals as time passes.
    • Highlights: It creates a separate folder within the data directory and ensures that any existing file in this directory will not be overridden due to execution of the command.
  • Enhancements to existing features:
    • Morphed Address class to Species class (#60)
    • Renamed AddressBook instances in code to ZooKeepBook (#90)
    • Updated the UI (#112)
    • Update help feature to have a clickable URL (#228)
  • Documentation:
    • User Guide:
      • Added documentation for all our proposed features for milestone 1.2 (#26)
      • Added additional FAQs (#207, #267)
      • Added documentation for snapshot feature to UG (#137)
      • Added expected outcomes for every command (#234)
    • Developer Guide:
      • Updated links to code within the DG (#185)
      • Updated AddressBook documentation and UML diagrams to reflect ZooKeep in Architecture, Logic and UI sections (#186, #198, #271)
      • Added documentation for snapshot feature to DG (#137, #156)
  • Tools:
    • Set up Codecov to monitor code coverage (#45)
    • Set up Codacy to enforce code quality (#56)
  • Project management:
  • Community:
    • Reviewed teammates’ PRs
    • Contributed to forum discussions (examples: 1, 2)
    • Reported typos found on various parts of module website (examples: 1, 2, 3, 4)
    • Reported broken link on module website (1)