He Xinyue's Project Portfolio Page
Project: BudgetBaby
BudgetBaby is a desktop budget tracking application used to manage finances. The user interacts with it using a Command Line Interface (CLI), and it has a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 10 kLoC.
Summary of Contribution
Given below are my contributions to the project.
-
New Feature: Developed financial records related commands
add-fr
,edit-fr
anddelete-fr
commands- What it does: allows the user to add, edit and delete financial records from the budget tracker.
- Justification: These features are fundamental to the product, as financial records are the main items stored in the budget tracker. The management of financial records are tasks which are likely to be carried out by users on a daily basis.
-
New Feature: Implemented
view-month
command- What it does: allows users to view any specific month’s associated data and financial records.
- Justification: This feature is essential to our budget tracker, as users are likely to view financial records and related information of a past month frequently when managing their finances and reviewing their spending habits. This command alters all information displayed in the GUI. Adding this command requires a comprehensive understanding of most models in the project, as well as the overall logic flow from GUI to Logic to Model. This command made use of Observer Pattern and the overall implementation was challenging as it affects many components of the project.
- Highlights: Although it is just one single command, the implementation effort goes beyond the command itself. In order to introduce the concept of
Month
into the project, a whole new layer of models including bothUniqueMonthList
andMonth
which containsFinancialRecordList
will need to be added to the project. ImplementingMonth
related features also introduce many complications in other basic features regardingFinancialRecord
, asFinancialRecord
now needs to be added to their respectiveMonth
and there are much more constraints which need to be taken into consideration, for example, if theFinancialRecord
will violate the restrictions we set for aMonth
.
-
Code Contribution RepoSense Report
-
Enhancement:
- Wrote additional tests for existing features to increase coverage (Pull requests #216)
-
Project management:
- Set up project organisation, repository and issue tracker
- Set up and wrap up project milestones
v1.1
-v1.4
on Github - Managed releases
v1.3 trial
,v1.3
andv1.4
(3 releases) on GitHub - Create 30+ issues on project issue tracker.
-
Documentation:
-
User Guide:
-
Developer Guide:
- Added design details for Model component of the project #89
- Added implementation details for financal record related feature #256 and added AddFrActivityDiagram.png
- Added implementation details for month related feature #256 and added ViewMonthSequenceDiagram.png and ViewMonthActivityDiagram.png
-
Volunteered to make cosmetic changes to all documentations #243, #246
-
-
Community: