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 the unpool 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:
    • Maintained issue tracker for the team by assigning tasks and linking pull requests.
    • Ensure consistent java documentation at parts of the project.
    • PRs reviewed (with non-trivial review comments): #57 #100 #117 #218 #237
  • Enhancements to existing features:
    • Updated add and edit 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 and edit 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.
  • 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 and edit commands to match newly added fields of TripDay and TripTime.
      • Added documentation for pool and unpool commands.
    • Developer Guide:
      • Added documentation for pool and unpool commands (Pull requests #234).
      • Added UML sequence and activity diagrams for pool and unpool commands (Pull requests #234).
      • Added instructions for manual testing documentation for pool and unpool commands (Pull requests #277).
      • Added Effort Appendix section (Pull requests #280).
      • Updated glossary to contain descriptions of words that require an elaboration on.
  • Contributions beyond the project team: