XIE YAOREN's Project Portfolio Page
Project: Unisave
Unisave is a desktop finance planner app, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Given below are my contributions to the project.
- Code Contributed: RepoSense Link
- New Features Added:
- New Features 1: Added addExpense Command – It allows users to add an expense to the current expense book. (Pull requests: #72 #52 #233)
- Justification:
- It has a very user-friendly command as it allows user to quickly recording their expenses. With the optional
Date
andDescription
field, it saves a lot of hassles for users. - With the optimization of
Date
, users can use single number to indicate the date of expenses. Eg. 1 refers to yesterday.
- It has a very user-friendly command as it allows user to quickly recording their expenses. With the optional
- Highlight:
- This feature required an in-depth analysis of design alternatives. The implementation is challenging as it involves a deep understanding various java concepts, such as Optional.
- This is one of the indispensable and fundamental features as it affects existing commands and commands to be added in the future.
- Justification:
- New Features 2: Added delete Command – It allows users to delete an expense that they do not want in the expense book. (Pull requests: #78)
- Justification:
- This feature improves the product significantly because it allows users to delete a wrongly added expenses or expenses that they do not want.
- Without this feature, users may find himself overwhelmed with unwanted expenses. This is one of the indispensable and fundamental features.
- Highlight:
- This feature required an in-depth analysis of design alternatives. The implementation is challenging as it required changes to existing commands.
- This is one of the indispensable and fundamental features as it affects existing commands and commands to be added in the future.
- Credits: This feature built from the “delete contact” feature in AddressBook 3.
- Justification:
- New Features 3: Added Help Command – It allows users to search for a quick summary of the command while they are using it. (Pull requests: #105 #246)
- Justification:
- I added in a clear structured table for users to refer, link to complete user guide is also available.
- This feature improves the product and increase the user experience significantly because it allows users to have a quick view of the command if they forget certain command.
- Highlight:
- This feature required an in-depth analysis of design alternatives. This feature requires a significant effort as it requires constant updates of new commands as well as changes to existing command.
- Credits: This feature built from the “help” feature in AddressBook 3.
- Justification:
- New Features 4: Added Edit Command – It allows users to edit an existing expense. (Pull requests: #233)
- Justification:
- This feature saves a lot of effort for users as it allows them to modify their current expenses, such as amount, date or description.
- This feature improves the product and increase the user experience significantly as it allows users to make amendment to current expenses without the need to delete and re-add them.
- Highlight:
- This feature required an in-depth analysis of design alternatives. This feature requires a significant effort as I need to handle different scenarios, such as added invalid value or invalid followed by valid values.
- Credits: This feature built from the “edit” feature in AddressBook 3.
- Justification:
- New Features 5: Added showStatistic Command – It allows users to have a brief overview of their expense. (Pull requests: #126 #147 #181)
- Justification:
- This feature includes various information,such as total expenses, percentage of expenses per category. They are sorted in decreasing amount and percentage.
- This feature improves the product and increase the user experience significantly as it gives users a better sense of their spending which can help them make better spending decision.
- Highlight:
- This feature required an in-depth analysis of design alternatives.
- This feature requires a significant effort as it requires a deep understanding of the model and need to extract the valuable and important information stored as well as sort them after extracted them out.
- Justification:
- New Features 1: Added addExpense Command – It allows users to add an expense to the current expense book. (Pull requests: #72 #52 #233)
- Enhancements implemented:
- Functional Code:
- Documentation: I incorporated almost all the navigation link in User Guide to make it easier for users to jump to the section they want to refer (Pull requests: #150)
- Test Code: Wrote additional tests for existing features to increase coverage by at least 5%. (Pull requests: #106 #119 #155 #235)
- Documentation:
- User Guide:
- Developer Guide:
- Contribution to team base tasks:
- Modified the user guide’s bugs identified during the PE-dry run such as the typos and confusing features. (Pull requests: #153 #225 #233)
- Modified all the CI passing error and checkstyle error in the initial project stage when we transform from addressBook to expenseBook (Pull requests: #90 #93)
- Added the missing JavaDoc (Pull requests: #170 #171)
- Review/mentoring contributions:
- Contributions beyond the project team: