$aveNUS is a command line interface (CLI) financial planning application that my team and I designed for CS2103T (Software Engineering) module in School of Computing, National University of Singapore (NUS).
In this project, we morphed the sample address book application into $aveNUS, an application that allows NUS students to track their financial spending with regards to food purchases. Additionally, the application provides them with the best food recommendations within their current budget as well as a savings feature to track their savings.
The table below provides a quick summary of the symbols and formatting used in this portfolio.
|
Command that can be typed into the command box |
This section provides a summary of the contributions that I have made to the team project.
I have added a savings and withdrawal feature that enables users to keep track of their savings and withdrawals from their savings account.
The savings and withdrawal feature allows users to manage their savings.
Firstly, the user must have money set in their wallet. This can be added by using the "budget" command which specifies their budget amount for a budget duration, or by calling "topup" to topup the amount of money in the wallet without a budget duration. With this, the user can then add an amount of money into their savings account by using the "save" command.
Next, if the user has money in his savings account, he/she will be able to use the "withdraw" command to transfer money from the savings account into his/her wallet.
Lastly, the user can track his/her savings and withdrawal history from the graphical user interface (GUI). The user can also keep track of his current savings account balance from the GUI.
In university, students are keen to plan for their lives after they graduate. Students would like to graduate with at least a certain amount of money in their banks so that they can either pay for their student loans, or return the amount they borrowed from their parents for paying off their school fees. To do this, they have to start saving from the time they stepped into university.
With the savings and withdrawal feature encompassed into the expenditure tracking application of $aveNUS, the application serves as a one-stop application for them to plan their finances. Students can not only track their expenditure history, but also take note of their savings and withdrawals they have made over time conveniently in one application. Thus, they will have a better understanding of their personal spending and savings behaviour, which can encourage them to take the necessary measures to make changes in these behaviours to suit their financial goals.
While implementing this feature, I had to implement new models such as Savings
, TimeStamp
, which allowed users to keep their savings in a structured manner
and track when the saving or withdrawal occurred respectively. I also implemented the model for SavingsAccount
, so that the user can reference their SavingsAccount
and make changes to it accordingly.
Storage functionality was also implemented for the user’s savings history to conveniently save the user’s savings history into their hard disk.
This functionality is persistent even when the application is restarted.
Furthermore, additional user interface classes such as ReadOnlySavingsHistory
and SavingsHistory
ensures that a user’s savings history is accurately
updated on a timely basis on the GUI.
Retrieves the list of commands previously typed by the user from the users command history.
This allows users to refer to the results display to reference the list of commands they have previously typed. If the user wishes to view the past commands he/she has entered, they can simply type "history" to see the past commands being reflected in the results display.
The command alias of "h" is also provided to allow the users to engage the same command with less typing.
This feature allows the user to conveniently refer to the list of commands he/she typed previously without the hassle of scrolling through his past commands one by one using the "UP" or "DOWN" arrow. This can speed up input as users can simply copy and paste a command that was typed many commands earlier, increasing convenience to the user.
This is especially useful since this application is a Command-Line application.
It references the Singleton class of CommandHistory
, which was implemented as a queue, and served to primarily allow users to access previously typed commands
from the command-line.
However, I enabled the user to reference the full list of commands previous type from the CommandHistory
. Now, previously typed commands are observable all at once.
This is an enhancement to the implemented command-line command history feature.
-
Project Management:
-
Documentation:
This section shows the contributions that I have made to the Savings and Withdrawals feature of the User Guide.
This section shows the additions that I have made to the Savings feature of the Developer Guide.
I have made documentation contributions to the Developer Guide regarding the 2 main features I implemented, i.e. Savings-Tracking and Withdrawal-Tracking features.
This section will only show the contribution that I have made regarding the Savings-Tracking feature of the Developer Guide to adhere to the PPP word limit.
The documentation regarding the Withdrawal-Tracking feature can be found in our Developer Guide.