Marcus Lee Eugene's Project Portfolio Page
Project: The Food Diary
The Food Diary - The Food Diary is a desktop app for managing food diary entries, optimized with a Command Line Interface (CLI) and packaged with a Graphical User Interface (GUI) using JavaFX. It is written in Java, and has about 8.5k LoC.
Given below are my contributions to the project.
- Revise Feature: Added the ability to allow users to quickly make corrections to existing data in the UI with shortcut keys.
- What it does: Opens up a window, showing the existing details of a FoodDiary entry and allows for quick corrections and updates without requiring the use of prefixes and command syntax in the UI.
- Justification: This feature improves the product significantly because a user can make corrections to existing data quickly, without losing previous entry details.
- Implementation: The revise feature is built upon the existing Edit command. When the user enters the revise command,
The Food Diary will get the specified entry from the model’s
getFilteredEntryList()
. Then it will pass the entry to command result in theMainWindow.java
. From there,MainWindow#handleRevise
will execute andReviseWindow.java
will project the details of the entry into a pop up window for revision. Upon revise completion, edit command will be executed and changes will be updated. There are some codes in place which allows for the TAB, ESC and Ctrl-S / Command-S key to be used to quickly iterate through text fields, close the window and save revisions respectively. - Pull requests: #96, #100, #103, #184
- View Feature: Added the ability to allow users to open an expanded view for entries that are very lengthy.
- What it does: Opens up a window, showing the details of a specified FoodDiary entry in a full expanded view. Allows the user to read through reviews that are too lengthy to be shown in the main UI window.
- Justification: This feature allows users to view entry reviews that are too lengthy to be shown in the entry card. All the data are projected onto the view window UI and also separates reviews within the entry for easier view.
- Implementation: When the user enters the view command, The Food Diary will get the specified entry from the model’s
getFilteredEntryList()
. Then it will pass the entry to command result in theMainWindow.java
. From there,MainWindow#handleView
will execute andReviseWindow.java
will project the details of the entry into a pop up window for view. - Pull requests: #68, #76, #87, #93
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.2.1
,v1.3.0
andv1.4.0
(3 releases) on GitHub - Tracked team’s tasks using project board and setting deadlines
- Managed releases
- Documentation:
- User Guide:
- Added documentation for
revise
,view
andedit
- Product description
- Added documentation for
- Developer Guide:
- Implementation and design considerations for
view
- Design considerations for
revise
- Added component details for the Model architecture
- Added command details and user stories for the features
view
,clear
,revise
- Instructions for manual testing: View an entry, Clear all entries
- Implementation and design considerations for
- User Guide:
- Contributions to team-based tasks:
- Set up Github team repo
- Set up Github actions
- Maintain issue tracker
- Release management
- Merged pull requests
- Refactored model, logic and test codes from AB3 to fit FoodDiary
- Worked on Revise and View features and UI enhancements
- Review/mentoring contributions:
- Contributions beyond the project team: