Project: Food Diary

The Food Diary caters to food-passionate NUS students who would ideally benefit from keeping records of food options tasted in the vicinity of NUS. The Food Diary has pre-set data that will allow students to save time and effort when finding places to eat around the NUS vicinity.

Given below are my contributions to the project.

  • New Feature 1: Allowed a user to add the Category of their food place in Food Diary.
    • The Category are restricted to a certain set using enum so that the users will not misuse the application.* A tagCateogry class was implemented to inherit from Tag so that the class tag can be reused for other instances.
    • The Category are placed in presentable tags for better UI. The color of these category tags were changes to blue to fit with the NUS color theme.
    • The feature is complete as many food categories that were available in NUS are accounted for. Moreover, the error message thrown clearly states to users what are the acceptable categories.
    • The most challenging part of this was accounting for all testcases that were made previously. The changes made from the previous code in AB3 involved the Tag class that was replaced with these tag categories. Many other aspects had to be accounted for too, e.g previous Storage in various Json files.
  • New Feature 2: Giving Food Diary the NUS context by allowing them to tag a food place by School.
    • The additional implementation of this brought about a lot of changes to the implemented Tag class that was initially used for Categories. This taught the lesson for the need of abstraction so that classes can be reused.
    • Apart from the revamp of previously implemented Tag class to Tag Category, the other challenges faced were similar to during the implementation of Categories.
    • The feature is complete as all buildings with eateries have been added to the application.
    • The enhancement was set to orange to be on the same theme as NUS colors.
    • The feature is meant to set the NUS context; Thus, no additional schools are allowed to be added. The restriction was implemented via the use of an enum class.
  • Code contributed: RepoSense link

  • Enhancements to existing features: Giving Food Diary the NUS context by populating the preset data to eateries in NUS.
    • This involved finding food places all around NUS as a group.
    • The challenge was putting them into storage. This was tedious as every food place was an entry that required the different sections, for example, review, categories and name, to be encapsulated into its own object. This was done to ensure none of the preset entries violated the restrictions set by our application.
  • Enhancements to Presentation of product:
    • This was challenging as it involved understanding every component clearly. It was a valuable learning experience of JavaFx to know which components were responsible for the different aspects of the application. The clear knowledge was required to meet the goal of the expected UI.
  • Documentation in User Guide:
    • Format User Guide.
    • Added in different Schools and Categories that a user can add by alphabetical order.
    • Included implementations of some commands.
    • After Practical Examination Dry Run, handled all the enhancements and issues with respect to User Guide.
    • This involved replicating different commands in the application to insert screenshot from the finalized application.
  • Documentation in Developer Guide:
    • Format Developer Guide so that it is standardized for team members and they know where to insert their allocated sections.
    • Build Diagrams for Architecture Diagram and Architecture Sequence Diagram.
    • Build Logic Class Diagram.
    • Added in Revise Activity and Sequence Diagrams.
    • Inserted different use cases for List, Parse and Exit commands.
    • Revised Developer Guide while bringing up different Use Cases for team members to discuss and see where some Use Cases (e.g add Category) will be most fitting in.
  • Contributions to Team-Based Tasks:
    1. Setting up the GitHub team org/repo
    2. Necessary general code enhancements: * Removing Address Book from the code. * Coming up with Food Diary Logo. * Setting up Figma for teammates to share with a fix set of templates with for the different diagrams to standardise our diagrams.
    3. Maintaining the issue tracker
      • Tagging the issues with correct milestones and assignees.
    4. Closing our milestone v1.3 before the deadline.
    5. Updating user/developer docs that are not specific to a feature e.g. documenting the target user profile
  • Reviewing Contributions:
  • Contributions beyond the project team:
    • Took notes of the bugs I have identified during the testing of our team project. Tested the same bugs during PED for the other group, to share my learning.
    • Group for PED: T12-2, number of bugs reported: 13.