Marcus Peh's Project Portfolio Page
Project: Around the World in $80
Around the World in $80 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, and has about 22 kLoC.
Given below are my contributions to the project. RepoSense link
Features
- New Feature: Added the ability to change between contacts and groups view.
- What it does: Allows the user to see groups / contacts with a command.
- Justification: This feature is crucial as the user should be able to view the groups and contacts created.
- Highlights: This implementation added in a new command
groups
to see all groups. It changes the commandlist
tocontacts
.contacts
allows the user to see all contacts. - RepoSense: link
- New Feature: Added the ability to find groups.
- What it does: Allows the user to find for groups with a command.
- Justification: This feature will allow the user to check if a group has been created and the details of the group.
- Highlight: This implementation added in a new command
findgroups
to find for group. It will also change the view fromcontacts
togroups
. - RepoSense: link
- New Feature: Added the ability to see the total spending per person in a trip
- What it does: Allows the user to find their expenses in a trip.
- Justification: This feature will allow the user to track their expenses and cut down spending if needed.
- Highlight: This implementation added in a new command
transactionsummary
to see expenses. - RepoSense: link
- Update: Updated the data stored in
Expense
andGroup
.- What it does: Allows for the splitting in expense between users of a group. Update
Expense
command to be more straight forward. - Justification: The data stored is crucial in keeping track of the expense. A clear and straight forward storing of expense is necessary to prevent bugs.
- Highlight: This update makes adding of expense more straightforward and split the expenses of users properly.
- RepoSense: link
- What it does: Allows for the splitting in expense between users of a group. Update
- Enhancements to existing features:
Bug Fixes
- severity.HIGH Edit person does not update groups and expenses. #158
- What happen: The command
addPerson
does not replace the instance of the old person from groups and expenses. - Pull request: #158
- What happen: The command
- severity.HIGH Commands for modifying groups will result in the entire group’s expense to be wiped. #270
- severity.MED Json files loads even when phone number of contacts is partially changed ie not all phone number of a contact is changed.
- What happen: Checks when file is loading is only done based on the name of the contact and not the entire contact info.
- Pull request: #425
Others
- Project management
- Managed releases: v1.2
- User Guide:
- Added user guide for the features
groups
,expenses
,findgroups
andtransactionsummary
. - Added FAQs.
- Added user guide for the features
- Developer Guide:
- Updated UI segment in Design with class diagram and explanation.
- Added implementation and design consideration for user interface.
- Added implementation, test cases and use cases for
findgroups
,transactionsummary
. - Added use cases for
view groups
,find person
andview expenses
.
- Testing:
- Community: