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 add and delete items from stalls in FoodNotes.
    • PR(s): #62
    • What it does: Allows the user to add items to a stall.
    • Justification: This feature improves the product significantly because it allows the user to add items to a stall, which is a core feature of FoodNotes.
    • Highlights: This enhancement affects existing commands and commands to be added in the future as any change to the fields of a stall or item will change how it is added. It required an in-depth analysis of design alternatives, for example how to handle reviews in other features, as it is not compulsory for items to have reviews in FoodNotes.
    • Credits: The ability format of parameters was adapted from the AddCommand class in the original AB3.
  • New Feature: Added the ability to sort stalls by location or rating in FoodNotes.
    • PR(s): #101
    • What it does: Allows the user to sort stalls by location or rating.
    • Justification: This feature improves the product significantly because it allows the user to sort stalls, which is a core feature of FoodNotes.
    • Highlights: This enhancement required the creation of new comparator classes such as StallLocationComparator and StallRatingComparator to handle the sorting of different types of search queries.
  • Bug fixing: Fixed UI bugs in FoodNotes.
    • PR(s): #207
    • What it does: Fixed UI bugs in FoodNotes.
    • Justification: This feature improves the product significantly because it provides convenience and thus allows the user to have a better user experience when using FoodNotes.
    • Highlights: This enhancement affects existing commands and commands to be added in the future as any change to the fields of a stall or item will change how the UI is rendered. For example, how the view of the UI changes when a new command is added in the future.
    • Credits: This design is adapted from the original AB3 UI.
  • Code contributed:
    • View my code contributions on RepoSense here.
  • Project management:
    • Set up Github team organization and project repo.
    • Set up CodeCov for continuous integration.
    • Decided and improved on the workflow to follow for reviewing PRs.
  • Enhancements to existing features:

    • Enhancement: Enhanced UI component of AB3 for FoodNotes.
      • PR(s): #114, #117, #126, #132
      • What it does: Refactored the UI component of AB3 to suit the needs of FoodNotes.
      • Justification: This feature improves the product significantly because it provides convenience and thus allows the user to have a better user experience when using FoodNotes.
      • Highlights: This enhancement affects existing commands and commands to be added in the future as any change to the fields of a stall or item will change how the UI is rendered. For example, how the view of the UI changes when a new command is added in the future.
      • Credits: This design is adapted from the original AB3 UI.
  • Documentation:
    • Developer Guide:
      1. Add in User Stories
      2. Add Sequence and Activity Diagram for AddItemCommand.
        • PR(s): #87
        • Added UML diagrams for AddItemActivityDiagram, AddItemSequenceDiagram
      3. Add Class Diagram for Model Class
        • PR(s): #87
        • Updated UML diagrams for BetterModelClassDiagram, ModelClassDiagram
    • User Guide:
      1. Update Table of Contents and hyperlinks in UserGuide.
  • Community: