Chan Chung Loong's Project Portfolio Page
Project: FoodWhere
FoodWhere is a desktop application for managing your food stall addresses and reviews. While it has a GUI, most of the user interactions happen using a CLI (Command Line Interface).
FoodWhere is written in Java, with about 10 kLoC.
Given below are my contributions to the project.
- New Features
- Implemented
Ratingclass, which adds a rating for aReviewfor critics to rate a stall from 0 to 5 inclusive. (#151) - Implemented copying of
StallandReviewdata onto the computer clipboard, which enables the user to right-click on either aStallorReviewto copy the name, address, or any other information such as tags to the system clipboard. (#169, #237)- Justification: This feature allows the user to easily edit the content without typing out the entire review if the data is very long into the command text box.
- Implemented
- Enhancements to Graphical User Interface (GUI)
- Modified user interface to have two separate lists for
StallandReview. (#46, #82, #88, #99, #126, #138, #162)- In the Stall list, the
name,address, andtagsof the Stall are listed. - In the Review list, the
nameof stall,addressof stall,dateof visit, reviewcontent,ratingandtagsare listed. - For
ratingsinReview, each rating is represented by a star which allows for quick visualisation.
- In the Stall list, the
- Justification:
- This enhancement is important as all other features implemented must be reflected correctly in both the stall list and review list.
- Modified user interface to have two separate lists for
- Enhancements to existing features
- Refactoring
Address,NameandTagintomodel.commonspackage. (#119, #224) - Justification:
- Refactoring these fields into their own common packages helped to reduce confusion as all these fields are shared by both
StallandReview, and hence, they should be in a common package rather than situated in eithermodel.stallormodel.review.
- Refactoring these fields into their own common packages helped to reduce confusion as all these fields are shared by both
- Refactoring
- Enhancements to new features
- Added error messages for any missing mandatory fields in RAddCommand and SAddCommand. (#216)
- Enhancements to validation checks and error messages
- Ensured that all validation checks and exceptions are handled properly.
- Ensured that all error messages shown to the user upon execution of an incorrect command or missing fields are correct and easy to understand, so that the user can recover from any errors and continue using the application.
- Code Contributed
- Project Management
- Assisted in approving and merging PRs of implementations done by other teammates.
- Documentation
- User Guide
- Developer Guide
- Added use cases 1 to 5, 13 and table of user stories. (#38, #259)
- Added implementation of Review class and updated User Interface UML diagrams. (#180)
- Added use case for clear command. (#259)
- Fixed numbering and formatting. (#339, #365, #378)
- Add new column in user stories to indicate features implemented in current version. (#365)
- Community
- Updated the user guide URL in the HelpWindow. (#44)
- Modify the default package name to
foodwhere. (#71) - Enable assertions and modified build.gradle to create the correct JAR filename. (#81, #184)
- Reviewed PRs with non-trivial review comments. (#95, #346, #351)
- Reported bugs and suggestions for other team in the same CS2103/T class. (PE-Dry Run)
- Improve test coverage of project. (#329)
- Answered questions or helped out to solve tasks posted by others in forum. (Forum)
- Set up GitHub Projects as an issue tracker to track project progress. (GitHub Projects)
- Create the product demo video as part of our submission requirements.
- Edit JavaDocs to adhere to coding standards. (#369, #380)
- Tools
- IntelliJ IDEA
- JavaFX Scene Builder