Nanette's Project Portfolio Page
Project: Foster Family
This is a desktop application for managing animal foster families. Our target audience are the foster managers of animal shelters who currently do not have a good logistical workflow to keep track of their fosterers. The user interacts with it using a CLI, and it has a 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: Added the ability to sort the fosterers list in the main window.
- What it does: Sorts the list of fosterers alphabetically by name (uppercase letters come before lowercase letters).
- Justification: This feature improves the product because it allows the foster manager to retrieve information efficiently at a glance, without having to type
the
findcommand if the name of the fosterer is known. - Highlights: This feature requires the use of a comparator, specified based on the person’s name. It can be easily extended in the future to account for new sorting criteria.
- Pull requests: #73
- Enhancements to existing features: Allow for new fields like
housing,availability,animalNameandanimalTypeto be added with a fosterer entry.- What it does: Allows the foster manager to enter more essential attributes related to a fosterer when the
addcommand is executed. - Justification: In the previous implementation, the foster manager can only add name, email, phone number and address which is not well-suited for the
needs of the target user since crucial information like housing type should also be taken into account, given the context of managing fosterers for cat and dog shelters.
- Highlights: This feature requires tweaks to the existing
Personclass, and also new classes to encapsulate the new attributes. Furthermore, the implementation was also challenging when coming up with methods to check if the combination of data / data inputted is valid are implemented since there were multiples cases to consider. Constant changes were made to improve on the checks and usefulness of error messages.
- Highlights: This feature requires tweaks to the existing
- Pull requests: #63, #73, #82
- What it does: Allows the foster manager to enter more essential attributes related to a fosterer when the
- Other enhancements to existing features:
- Updated the UI for the person card such that the new fields are displayed according to the draft UI. (Pull requests: #63)
- Implemented checks to ensure that the fosterer entries are valid before they can be added. (Pull requests: #63, #73, #82)
- Implemented error messages to guide the users on how to rectify the errors which resulted in an invalid fosterer entry. (Pull requests: #63, #73, #82)
- Improved on duplicate persons check such that it is now case-insensitive and multiple spaces between words will be ignored. (Pull requests: #91)
- Documentation:
- User Guide:
- Added documentation for the feature
add, through both the main window and profile page - Added documentation for the feature
sort - Added documentation for the feature
undo,resetandreset confirm - Added technical terms section for better readability
- Modified the
editsection by separating it into two separate features - editing through the main window and editing through the profile page, for better readability - Updated and maintained the command summary
- Did cosmetic tweaks to existing documentation
- Added documentation for the feature
- Developer Guide:
- Added implementation details of the
addfeature. - Added sequence diagram for
addfeature - Added activity diagram for
addfeature - Added implementation details of the
sortfeature - Added sequence diagram for
sortfeature - Added user stories and use cases related to
add,sortandundo - Added non-functional requirements and manual testing of
addandsort - Added planned enhancements for:
- Phone number input
- Guide Users on How To Rectify / Preventing the Corruption of Data File
- Notes feature as a separate command
- Specificity of error messages
- Added implementation details of the
- Pull requests: #30, #48, #65, #73, #82, #91, #98, #144, #147, #149, #161
- User Guide:
- Project management:
- Helped to set up the GitHub team org/repo, codecov and the project website
- Kept track of deliverables and deadlines
- Helped to maintain the issue tracker for milestones
- Helped with demo video
- Community: