MoneyMoover is a CLI application for managing and transferring international currencies, optimized for use via a Command Line Interface (CLI) while still having the features of other money management applications. Our app will help students to track their expenses and income in order to stay within their budgets, so that they have enough money to travel. It will also help them convert to foreign currencies so they can see how much they have to spend overseas.
Code Contributed: RepoSense Link
I am in charge of implementing the Ui Class
which is used to mainly handle the User Interface aspect of the application, including reading the input, printing message and printing formatted string.
-
Instead of letting users to call
System.out.println
,System.out.printf
orin.nextLine()
directly, all developers in the team are expected to use the UI class. We have aprintFarewell()
andprintGreeting()
method which is to print the corresponding messages. -
Another reason why we need the UI class is for abstraction. For instance, in one of the PED issue, a user tries to break the code by inserting a lot of spaces. The
getUserInput()
method helps to remove these unnecessary spaces so that the command given can be properly parsed by the commands.
I am responsible for writing the BalanceCommand
class that extends the abstract Command
class. This class is used to show the balance in a specific account if specified, or all the accounts.
I am in charge of writing the AddCommand
class for the project. This class is mainly used to empower the users to add funds into the account based on the specified currency and the account if any.
I am in charge of writing a class that is used to validate the amount that is read in by the user.
Unlike the AddCommand
and BalanceCommand
in 3.2 and 3.3., the Validator
class is an important utility class that is used to validate the amount provided by the user.
The validateAmount()
method takes in a string and determines if the amount contains any alphabetical character in it or lies outside the range of 0 to 10 million dollars. If it does, an error will be thrown. Otherwise, we will return the corresponding BigDecimal
value.
This class is important as it helps to prevent many errors, such as reading in more than 2 decimal places which should not be possible or using a very huge number that might cause overflow, of which are commonly raised as issues during the PED.
- I set up the GitHub organisation for my team.
- I helped to maintain the GitHub issues for our team.
- I helped to install GSON to be used as a storage for our project.
PR 27, PR 28, PR 37, PR 38, PR 50, PR 83, PR 183
Issue 16, Issue 21, Issue 34, Issue 36
In terms of the UG, I am responsible for writing the AddCommand
and BalanceCommand
aspect of the UG.
I contributed to the DG by adding the UI Class and added in the UML diagram.
I have also contributed to the DG by adding in the documentation for the BalanceCommand, and coming up with a sequence diagram for it.