Bo Kuan's Project Portfolio Page
Project: Fish Ahoy!
Fish Ahoy! Is a desktop app for managing your fish, fish tanks, and relevant tasks, optimized for use via a Command
Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Fish Ahoy! streamlines the fish keeping experience by helping you keep track of your many fishes, tanks and weekly tasks, such as feeding and cleaning.
Given below are my major contributions to the project.
-
New Feature: Added the entire task interface feature, including feeding reminders, excluding task priorities
- What it does:
- Allows users to keep track of tasks and save them to their hard disk, viewing them again after opening Fish Ahoy!
- Get feeding reminders automatically whenever they open the app and any tank have hungry fish
- Also implemented feature where feeding reminder for a tank is deleted when
tank feed
command is used
- Justification: This feature improves the product significantly because a user a major proportion of our user stories include allowing users to keep track of their fish-keeping tasks. Also, a main feature of a fish keeping app should be keeping your fish alive by reminding you to feed them.
- Highlights: This was the first feature to be added, without reference to previous implementations within our own group. This made the implementation more difficult as I could not reference the github diffs of previous feature PRs.
- Credits: Task implementation was inspired by SoConnect and fxml file was reused. However, our implementation is entirely new.
- What it does:
-
New Feature: Added a backend of the whole tank readings feature excluding some basic model files that required further enhancement
- What it does:
- Allows users to keep track of aquarium environmental readings by adding and deleting readings and saving them to the hard disk
- Justification: This is crucial for fish survival, as indicated by some user stories
- Highlights: Storage architecture of this feature did not follow that of previous features like fish, tank or task. There is one additional layer of abstraction where the complete readings are a list of individual tank readings, which then contain each tank’s respective ammonia level, pH and temperature readings. This reduces code needed and increases the ease of adding enhancements like adding more types of readings in the future.
- What it does:
-
Code contributed: RepoSense link
- Project management/ contributions to team based tasks:
-
Enhancements to existing features:
- Refactored
Person
toFish
- Changed several attributes of persons to match attributes of fishes
- Refactored
-
Documentation:
- User Guide:
- Wrote the entire draft of the user guide in doc format and transferred it to
md
format inv1.1
- Rewrote the entire
features
section of every command to tackle documentation bugs surfaced in PE-D, adding examples and more detailed usage (v1.4
) - Added
using this guide
andglossary
section inv1.4
- Ensured that additional information (), warnings () and tips () are consistent
throughout the UG. Added several useful additional information, warnings and tips also in
v1.4
- Wrote the entire draft of the user guide in doc format and transferred it to
- Developer Guide:
- Added implementation details of the feeding reminders feature.
- Refactored many origial
.puml
files to align AB3 diagrams with Fish Ahoy!
- User Guide:
- Community: