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
Rating
class, which adds a rating for aReview
for critics to rate a stall from 0 to 5 inclusive. (#151) - Implemented copying of
Stall
andReview
data onto the computer clipboard, which enables the user to right-click on either aStall
orReview
to 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
Stall
andReview
. (#46, #82, #88, #99, #126, #138, #162)- In the Stall list, the
name
,address
, andtags
of the Stall are listed. - In the Review list, the
name
of stall,address
of stall,date
of visit, reviewcontent
,rating
andtags
are listed. - For
ratings
inReview
, 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
,Name
andTag
intomodel.commons
package. (#119, #224) - Justification:
- Refactoring these fields into their own common packages helped to reduce confusion as all these fields are shared by both
Stall
andReview
, and hence, they should be in a common package rather than situated in eithermodel.stall
ormodel.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