Chew Hong Wei Terence's Project Portfolio Page
Project: Green Mileage Efforts
GreenMileageEfforts (GME) is a platform that helps the HR executive of any company quickly arrange carpooling among its employees in order to lower the carbon footprint of the company.
Given below are my contributions to the project.
-
Code contributed: View the code that I have contributed at my RepoSense link.
- New Feature: Added the
pool
command feature. (Pull requests #121)- What it does: Allows the user to create a pool from the list of passengers, and add it to the list of pools in the GME system.
- Justification: This feature is the core feature of the product, where pools are created and added to the pool list by the user.
- Highlights: Initially the command was implemented as the
drive
command which edits the list of passengers to include a driver with a phone number. The model was eventually updated to include a list of pools, and the logic of the pool command was required to be changed, this required an amount of refactoring of the code. Finally, towards the final iterations of the project, trip day and time validation was required to be added into the pool command, which further enhances the product.
- New Feature: Added the
unpool
command feature. (Pull requests #101, #121)- What it does: Allows the user to remove a pool from the existing list of pools.
- Justification: This feature complements the core feature of the product, as pools within the pool list could either already be completed or entered with wrong details.
- Highlights: Initially this command was implemented as the
undrive
command that edits the assigned driver of a passenger to be empty. However, after reconsidering and conceptualizing how the user would use the product, the model was updated to include a list of pools which theunpool
command would then delete from. Implementation of this command was the precursor that led to the consideration of redesigning the model to include both a pool and passenger list.
- Project management:
- Enhancements to existing features:
- Updated
add
andedit
commands to utilize the new fields added (Pull requests #52)- What it does: The enhancement allows users to add and edit passengers with the new fields of TripDay, TripTime and Price.
- Justification: TripDay, TripTime and Price fields were added to the model and thus the
add
andedit
commands were required to be updated with the new fields. - Highlights: A great amount of effort was put into ensuring that the implementation of the code was of suitable quality. This included writing additional tests to increase coverage for methods that involved the new fields (Pull requests #56). Moreover, the addition of the Price field proved to be far more challenging than expected, as it was an optional field that the user could enter. The Price field was thus implemented in a way that avoided the use of nulls as much as possible, thereby wrapping it in a java Optional.
- Updated
- Documentation:
- User Guide:
- Drafted initial version of the User Guide, added user guide introduction and quick start.
- Added documentation for the command summary and FAQ.
- Updated documentation for
add
andedit
commands to match newly added fields of TripDay and TripTime. - Added documentation for
pool
andunpool
commands.
- Developer Guide:
- Added documentation for
pool
andunpool
commands (Pull requests #234). - Added UML sequence and activity diagrams for
pool
andunpool
commands (Pull requests #234). - Added instructions for manual testing documentation for
pool
andunpool
commands (Pull requests #277). - Added Effort Appendix section (Pull requests #280).
- Updated glossary to contain descriptions of words that require an elaboration on.
- Added documentation for
- User Guide:
- Contributions beyond the project team:
- Contributed to forum discussions
- Facilitated a discussion on streams versus loops.
- Started a discussion on the use of optionals.
- Participated and responded to some forum posts.
- Reported 13 Bugs for team AY2021S2-CS2103T-W13-3.
- Contributed to forum discussions