Samuel Mui's Project Portfolio Page
Project: FoodNotes
FoodNotes is a desktop address book application used to record reviews on food stalls and menus. 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.
- New Feature: Added the ability to sort stalls by average price in FoodNotes. (PRs #113, #115)
- What it does: Allows the user to sort stalls by average price in ascending order to find the cheapest stalls.
- Justification: This feature improves the product significantly because it allows the user to find the cheapest stalls easily, our target users who are students are likely to be more budget conscious and would find this feature useful.
- Highlights: This enhancement required the creation of a new
Comparator
class,StallPriceComparator
, to handle the sorting of stalls in the model by average price. It also required a new method,getAveragePrice
, in theStall
class to dynamically calculate the average price of the stall when necessary and a newPrice
class to represent the price of each menu item.
- New Feature: Added the ability to add/delete reviews for menu items in FoodNotes. (PR #66)
- What it does: Allows the user to review menu items in a stall or remove a review from an item.
- Justification: This feature improves the product significantly because it allows the user to review items in a stall, helping users to remember their thoughts on the menu item.
- Highlights: This enhancement required the creation of a new
ItemReview
class to represent the review of a menu item. The review makes use of theRating
class to represent the rating of the item which uses star ratings for improved user-friendliness.
- Code contributed:
- Contributions to team-based tasks:
- Project management:
- Released v1.3.trial along with the jar file on GitHub.
- Released v1.4 along with the jar file on GitHub.
- Enhancements to existing features:
- Adapted the existing storage features to support the new classes that are added into FoodNotes, by writing new
storage components such as
JsonAdaptedItemReview
,JsonAdaptedStallReview
andJsonSerializableMenu
(PRs #83, #90). This was particularly challenging because the existing storage components were not designed to support the nested nature of our new classes, whereAddressBook
contains a list ofStall
objects which itself contains a list ofItem
objects. - Wrote additional tests for the storage components, increasing coverage from 54% to 58% (PR #124)
- Adapted the existing storage features to support the new classes that are added into FoodNotes, by writing new
storage components such as
- Documentation:
- User Guide:
- Developer Guide:
- Community: