Nicholas Ee'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 add expenses in groups.
- What it does: Allows the user to log their expenses within the specified group.
- Justification: This feature is crucial as the user should be able to log various expenses into respective groups.
- Highlights: This implementation added in a new command
expense
to add expenses to groups. - RepoSense: link
- New Feature: Added the ability to track expenses for everyone in the group to be calculated later on.
- What it does: Allows users to easily split their expenses.
- Justification: This feature is crucial as users should be able to easily split their expenses with the use of a command.
- Highlights: This implementation adds in hashmaps into expenses and groups to track total expenses.
- RepoSense: link
- New Feature: Added the ability to exclude people from an expense.
- What it does: Allows users to be excluded from an expense.
- Justification: This feature is crucial as users should be able to be excluded from an expense if they did not participate in the activity.
- Highlights: This implementation adds in the ability for the user to exclude individuals from an expense which will result in the expense not being split among excluded members.
- RepoSense: link
- New Feature: Added the ability to include individual payments in an expense.
- What it does: Allows users to enter special payments for individuals within an expense.
- Justification: This feature is crucial as users should be able to enter payments made by an individual which are not meant to be split among the other members of the group.
- Highlights: This implementation adds individual payments to the specified person only and subtracts it from the total cost so it will not be split among other members.
- RepoSense: link
- Enhancements to Existing Feature:
Bug Fixes
- severity.HIGH Ensure that the input for expenses cannot be negative. #150
- What happened: Negative inputs were able to inputted when using
addexpense
. - Pull request: #179
- What happened: Negative inputs were able to inputted when using
- severity.HIGH Entering a large number for
addexpense
results in the app crashing #324- What happened: The value of a large expense was being converted into scientific notation and thus could not saved properly.
- Pull request: #359
- severity.MED Error message for
addexpense
is wrong #310- What happened: Entering a group that does not exist shows an error message that the payer is not part of the group rather than indicating that the group does not exist.
- Pull request: #359
Others
- Project management
- Testing
- Wrote all test cases for the following classes:
AddExpenseCommand
AddExpenseCommandParser
Expense
model related classesFindExpenseCommandParser
- Wrote all test cases for the following classes:
- Documentation:
- User Guide:
- Added documentation for the feature
expenses
- Adjusted diagram sizes.
- Added figure numbers for all diagrams.
- Added documentation for the feature
- Developer Guide:
- Added use cases for
edit a person
,add expense
anddelete a person
. - Added implementation, test cases and use cases for
add expense
. - Added non-functional requirements.
- Updated model diagram.
- Added design considerations for
add expense
.
- Added use cases for
- User Guide:
- Community: