Declan's Project Portfolio Page
Project: ReadyBakey
ReadyBakey is a desktop app for small bakers. 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 Contribution: RepoSense link
Enhancements Implemented
- Data toggling of order / person data
- What it does: Displays only one list of data (order or person) at a time and toggles between lists based on the user’s command.
- Justification: Declutters the UI by only showing one list that is relevant to the user’s interests. Immediate toggling to show relevant data is also important without a specific command to do so - any command related to orders will show order data, and any command related to persons will show person data.
- Highlights: This feature affects all CommandResults as they now need to be assigned a type to indicate which data list to display to the user. It was challenging as it required understanding how the different components worked together to display the initial Persons list, before coming up with a solution to tweak this setup to include another list of data, and the functionality to toggle between them.
- Sorted list functionality in Model
- What it does: Allows for the sorting of persons or orders through a comparator wherever required.
- Justification: There are various features, exiting and potential, that could leverage on a sorting function to enhance their results. Specifically, this was required in the FindIncompleteOrders command.
- Highlights: Challenging to implement as it introduced SortedList as a return type when previously the application only worked with FilteredList. This meant relying on polymorphism to use the parent interface, ObservableList, in place of where previously FilteredList was expected.
- Find and sort by date incomplete orders before a given date
- What it does: Highlights and sorts by date incomplete orders before a given date.
- Justification: The user can use this simple command to get important information that pertains to punctual order delivery.
- Highlights: Challenging to implement as it required using both FilteredLists and SortedLists.
- CSS changes to enhance the application’s theme
UG Contributions
- Added feature guides for
addo
,listo
,deleteo
,incompleteo
, and natural dates - Resolved bugs related to Quick Start,
findo
, and command case-sensitivity requirement - Update User Guide’s naming, formatting, and organisation of features
DG Contributions
- DataTogglingActivityDiagram
- FindIncompleteOrdersSequenceDiagram
Team-based Tasks
- Renamed product to Readybakey to better suit the new target user profile
- Maintained issue tracker
- Release management for V1.1
- Informal demo of V1.2 (Google doc link)
- Added screenshots of features
- Added explanations of features
- Informal demo of V1.3 (Google doc link)
- Updated guide for some features based on the changes made in V1.3
- Update UG for V1.3
- Went through features to update their user guide based on the changes made in V1.3
Review/mentoring contributions
- Caught violation of SLAP
- Helped debug cause of test failures
- Caught naming error
- Clarified Natural Date’s capabilities
Contributions beyond the project team
- Participation in PE-D to help HackNet spot bugs in V1.3
- Helped classmate who had issues launching jar application (Forum issue here)
- Helped classmate who had issues with Gradle Checkstyles (Forum issue here)