Project: Around the World in $80

Around the World in $80 (AWE) is a desktop application that splits bills between different contacts. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java. Given below are my contributions to the project. RepoSense link

Features

  • New Feature: Constructed the creategroup feature for AWE.
    • What it does: Allows user to create a new travel group with the command line interface.
    • Justification: This feature is crucial as the user should be able to create groups to record travel expenses.
    • Contribution: Built the entire framework for this feature.
  • New Feature: Constructed the groupeditname, groupaddcontact, groupremovecontact, groupaddtag and groupremovetagfeatures for AWE.
    • What it does: Allows user to modify existing group attributes with the command line interface.
    • Justification: This feature is important as the user should be able to modify attributes in travel groups after creating them. The prevents the need for deleting a re-creating a group.
    • Contribution: Built the entire framework for this feature.
  • New Feature: Developed storage functionalities for creategroup and deletegroup feature.
    • What it does: Allows group data to be saved upon creation or deletion of group.
    • Justification: This feature is crucial as the changes to travel groups should be automatically saved.
    • Highlights: This implementation ensures that the most up-to-date group data is saved into /data/awe.json with each command.
    • Contribution: Pieced together the basic framework provided by @ramapriyan912001 to develop fully functional storage abilities for creategroup and deletegroup.

Others

  • Project management
    • Managed releases: v1.2b
  • Documentation:
    • User Guide:
      • Added documentation for the features create group, group add tag, group remove tag, group add contact, group remove contact, and group edit name
      • Added details for About the Document, Command Format, FAQ
      • Added Final Word section
    • Developer Guide:
      • Created table of contents for ease of navigation.
      • Rearranged all user stories to ensure they follow decreasing order of priority.
      • Added use cases for Add a Person, Clear All Entries and Create Travel Group.
      • Added details for implementation of creategroup, groupeditname features, including sequence and activity diagrams.
      • Added details for manual testing of creategroup, groupeditname,group add tag, group remove tag, groupaddcontact, groupremovecontact commands.
      • Added use cases for addcontact, clearalldata, creategroup, help, groupeditname, groupaddtag, group remove tag, group add contact, group remove contact commands.
      • Wrote the code for the sequence diagram of creategroup, upon which a bulk of the other sequence diagrams were based on. Refer to the sequence diagram in the Diagram Contributions to Developer Guide section.
  • Major bug fixes:
    • severity.HIGH groupremovecontact does not delete the group even when removing the last member of the group. #341
      • Bug description: The groupremovecontact command removes the final person in the group, leaving AWE with a group that has no members. (Pull request: #360)
    • severity.HIGH groupeditname causes AWE to become unresponsive. #314
      • Bug description: The groupeditname causes AWE to become unresponsive upon trying to change a specific group name to another group name that already exists within AWE. (Pull request: #360)
  • Community:

Diagram Contributions to Developer Guide

Create Group Activity Diagram
Fig 1. Create Group Activity Diagram

Create Group Sequence Diagram
Fig 2. Create Group Sequence Diagram, upon which a bulk of the other sequence diagrams are based on

Create Group Reference Sequence Diagram
Fig 3. Reference diagram for the Create Group Sequence Diagram

Create Group Sequence Diagram
Fig 5. Group Edit Name Sequence Diagram