Ramapriyan Srivatsan Purisai Devarajan's Project Portfolio Page
Project: Around the World in $80
Around the World in $80 is a desktop application that allows group travellers to split 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, and has about 22 kLoC.
My contributions to the project can be viewed here.
Features
- New Feature: Contributed to delete group feature.
- What it does: Allows the user to delete a group with a command.
- Justification: This feature is crucial as the user should be able to delete groups once they are obsolete or if the user has made an error.
- Highlights: This implementation added in a new command
deletegroup
to delete a group by name. - Contribution: Built the entire framework for the feature including command and parser classes.
- New Feature: Contributed to create group feature.
- What it does: Allows the user to create a group with select members with a command.
- Justification: This feature is crucial as the user should be able to create groups with select members based on their travels.
- Highlights: This implementation added in a new command
creategroup
to create a group with select members. - Contribution: Adapted command format and parser. Contributed significantly to the logic for storage of groups.
- New Feature: Contributed to delete expense feature.
- What it does: Allows the user to delete an expense with a command.
- Justification: This feature is crucial as the user should be able to delete errant expense entries.
- Highlights: This implementation added in a new command
deleteexpense
to delete an expense by index position on list shown on screen. - Contribution: Built the entire framework for the feature including command and parser classes.
- New Feature: Contributed to calculate payments feature.
- What it does: Provides the users with a set of easy transactions for them to settle their debts from the trip.
- Justification: This feature is crucial as the users should be able to efficiently settle their debts in a manner that leaves no room for disputes and no room for error by manual computation.
- Highlights: This implementation added in a new command
calculatepayments
to provide users with a number of suggested transactions to settle their debts from the trip. - Contribution: Built the entire framework for the feature including command and parser classes.
- Miscellaneous:
- Introduced constraints to
editcontact
anddeletecontact
commands wherein user must be viewing a contacts page if they wish to execute these commands. - Introduced constraints to the
deleteexpense
command wherein user must be viewing an expenses page if they wish to execute this command. - Implemented classes for UI display of payments upon execution of
calculatepayments
command.
- Introduced constraints to
Testing
- Wrote automated tests for the following classes
DeleteGroupCommand
DeleteGroupCommandParser
CalculatePaymentsCommand
CalculatePaymentsCommandParser
Payment
PaymentList
Awe
ModelManager
UserPrefs
Bug Fixes
- severity.HIGH Does not take note of the difference in sign of surplus between those who are owed and those who owe: #274
- Bug description: The
calculatepayments
command does not take into account people who owe money, and only takes into account those who are owed money. - Pull request: #158
- Bug description: The
- severity.HIGH Storage of IndividualAmount class failed: #224
- Bug description: The
JsonAdaptedIndividualAmount
took in a Person parameter rather than a JsonAdaptedPerson parameter. - Pull request: #207
- Bug description: The
Others
- Project management
- Managed releases: v1.3
- Miscellaneous
- Created storage classes for expenses and groups.
- Created UI classes for displaying of payments upon the execution of the
calculatepayments
command.
- Documentation:
- User Guide:
- Documented delete group, create group, delete expense, and calculate payments features.
- Added details of
Quick Start
. - Added details of
deletegroup
,creategroup
,deleteexpense
,calculatepayments
andhelp
commands to Command Summary table. - Added significant details of the
About The Document
section.
- Developer Guide:
- Added implementation details for add contact, delete group, create group, delete expense, and calculate payments features, including sequence and activity diagrams.
- Added use cases for editing a contact, deleting a contact, deleting a travel group, deleting an expense, calculating payments, and help.
- Added manual test cases for editing a contact, deleting a contact, deleting a travel group, deleting an expense, and calculating payments.
- Created labels for issue-tracking and documentation.
- User Guide:
- Community: