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 7.5k LoC.

Given below are my contributions to the project.

  • UI: Formatted the GUI, layout and colour scheme throughout the app
    • What was done: Improved the UI, layout of elements, and colour scheme to appeal to the usage and patronisation from NUS students.
    • Justification: The UI is pivotal in presenting to users information in a clear and readable manner, allowing them to interact with The Food Diary intuitively. Visual elements are not jarring or useless to the usage of the app.
    • Highlights: The UI theme is congruent throughout the different windows, in particular, the Main window, the Help window, the Revise window, and the View Window, are themed accordingly. The implementation required thorough trial and error to get the theme and feel of the UI right, as well as synchronise it across the different windows that can be opened in the app.
  • Overall Code Quality and Refactoring: Refactored the codebase to fit to the functionality of The Food Diary.
    • What was done: All packages, classes, and methods have been refactored to be logical and congruent with the semantics and business logic of how a Food Diary should be operated on. Also, ensured the overall code quality of new functionalities added.
    • Justification: Inheriting a codebase and customising the code to fit the business logic of our product is essential for the seamless and logical continuation of development by us or other developers.
    • Highlights: No trace of the previous app implementation remains, and classes have been designed to make logical sense to the operations of a Food Diary. Each entry features a restaurant name, rating, price, address, review and tags.
  • Help Window: Dedicated a resizable window for the Help guide that users can have local access to on the app.
    • What was done: Implemented a separate window that contains a succinct help guide with examples for users to conveniently access and learn what and how each perform performs.
    • Justification: Having access to a help guide while using the app allows new users (and testers) to quickly comprehend the set of features in the app.
    • Highlights: The help guide features 3 main sections: A succinct list of commands, all options for Food categories, and for School Location categories. The information provided is presented neatly, and a url to the full user guide is provided to users for users to get the complete guide.
  • User & Developer Guides (UG & DG): Documented down multiple sections of the UG & DG, and touched-up the whole UG & DG during finalisation for submission.
    • Highlights: UG: Documented User Interface rationale; neatened the syntax and presentation of all features. DG: Furnished Ui Class diagram; furnished activity and sequence diagrams for edit and help commands/features; summarised all challenges and design rationales on behalf of the team for the TP: The Food Diary; cleaned up the entire DG for final submission.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 - v1.4 (3 releases) on GitHub
  • Enhancements to existing features:
    • Refactored the code base to fit a Food Diary. #69
    • Enhanced the Help Window. #83
    • Updated the GUI colour scheme (Pull requests #102, #112)
  • Documentation:
    • User Guide:
      • Added a section pertaining to the explanation of the User Interface to users. #102
      • Neatened the syntax and presentation of each feature and the corresponding command to make it consistent with the usage of the command in our app. #102
      • Explained the rationale of each feature and function very clearly. #102
    • Developer Guide:
      • Added Ui Information and Class Diagram. #209
      • Added implementation details, sequence and activity diagrams, and manual testing for the edit and help feature. #212
      • Added Challenges Faced & Rationale Section aggregated from the team, throughout the entire TP process. #209
      • Cleaned up the entire DG. #224
  • Community: