tp

Product website

View on GitHub

User Guide

Table of contents

Introduction

Financial Planner is a Command Line Interface (CLI) application for managing your finances conveniently. It is optimized for use via the CLI and leverages your expertise in CLI and your ability to type fast and gives you a one-stop interface to access a plethora of features to manage your finances.

Quick Start

  1. Ensure that you have Java 11 or above installed.
  2. Download the latest version of Financial Planner from here.
  3. Copy the file to the folder you want to use as the home folder for Financial Planner.
  4. Open a command terminal, cd into the folder you put the jar file in, and use the java -jar tp.jar command to run the application.
  5. Refer to the Features section below for details of each command.

Features

Notes about the command format

Notes about naming convention

Notes about program limitations

Important: Data is automatically loaded on start up and saved when exited. You must exit the program using the exit command in order to save your data.

Add cashflow

Add income: add income

Adds an income source to the Financial Planner.

Format: add income /a AMOUNT /t TYPE [/r DAYS] [/d DESCRIPTION]

Income Types
salary
investments
allowance
others

Example of usage: add income /a 5000 /t salary /r 30 /d work

Example output:

You have added an Income
   Type: Salary
   Amount: 5000.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: work
to the Financial Planner.
Balance: 5000.00

Add expense: add expense

Adds an expense to the Financial Planner

Format: add expense /a AMOUNT /t TYPE [/r DAYS] [/d DESCRIPTION]

Expense
dining
entertainment
shopping
travel
insurance
necessities
others

Example of usage: add expense /a 300 /t necessities /r 30 /d groceries

Example output:

You have added an Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: groceries
to the Financial Planner.
Balance: 4700.00

List

List all: list

Lists all cashflows.

Format: list

Example of usage: list

Example output:

You have 4 matching cashflows:
1: Expense
   Type: Dining
   Amount: 30.00
   Description: Genki Sushi
2: Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: groceries
3: Income
   Type: Allowance
   Amount: 500.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
4: Income
   Type: Investments
   Amount: 1000.00
Balance: 1170.00

List income: list income

Lists all incomes.

Format: list income

Example of usage: list income

Example output:

You have 3 matching cashflows:
1: Income
   Type: Allowance
   Amount: 500.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
2: Income
   Type: Investments
   Amount: 1000.00
3: Income
   Type: Salary
   Amount: 100.00
Income Balance: 1600.00

List expense: list expense

Lists all expenses.

Format: list expense

Example of usage: list expense

Example output:

You have 3 matching cashflows:
1: Expense
   Type: Dining
   Amount: 30.00
   Description: Genki Sushi
2: Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: groceries
3: Expense
   Type: Others
   Amount: 0.23
Expense Balance: 330.23

List recurring: list recurring

Lists all recurring cashflows.

Format: list recurring

Example of usage: list recurring

Example output:

You have 4 matching cashflows:
1: Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: groceries
2: Income
   Type: Salary
   Amount: 5000.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: work
3: Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023
   Description: groceries
4: Income
   Type: Allowance
   Amount: 500.00
   Recurring every: 30 days, date added: Nov 04 2023, recurring on: Dec 04 2023

Delete cashflow: delete

Deletes a cashflow from the Financial Planner.

Format: delete INDEX [/r]

Example of usage: delete 1 /r

Example output:

You have removed future recurrences of this cashflow.
Updated cashflow:
Income
   Type: Salary
   Amount: 5000.00
   Description: work

Example of usage: delete 1

Example output:

You have removed an Income
   Type: Salary
   Amount: 5000.00
   Description: work
from the Financial Planner.
Balance: -1130.00

Delete income: delete income

Deletes an income from the Financial Planner.

Format: delete income INDEX [/r]

Example of usage: delete income 2 /r

Example output:

You have removed future recurrences of this cashflow.
Updated cashflow:
Income
   Type: Allowance
   Amount: 500.00
   Description: parents

Example of usage: delete income 2

Example output:

You have removed an Income
   Type: Allowance
   Amount: 500.00
   Description: parents
from the Financial Planner.
Balance: 5170.00

Delete expense: delete expense

Deletes an expense from the Financial Planner.

Format: delete expense INDEX [/r]

Example of usage: delete expense 2 /r

Example output:

You have removed future recurrences of this cashflow.
Updated cashflow:
Expense
   Type: Insurance
   Amount: 800.00
   Description: ntuc income

Example of usage: delete expense 2

Example output:

You have removed an Expense
   Type: Insurance
   Amount: 800.00
   Description: ntuc income
from the Financial Planner.
Balance: -330.00

Delete recurring: delete recurring

Deletes a recurring cashflow from the Financial Planner.

Format: delete recurring INDEX [/r]

Example of usage: delete recurring 2 /r

Example output:

You have removed future recurrences of this cashflow.
Updated cashflow:
Expense
   Type: Insurance
   Amount: 800.00
   Description: ntuc income

Example of usage: delete recurring 1

Example output:

You have removed an Expense
   Type: Necessities
   Amount: 300.00
   Recurring every: 30 days, starting from: Oct 30 2023
   Description: groceries
from the Financial Planner.
Balance: -830.00

Find cashflow: find

Finds a cashflow using keywords

Format: find <keyword>

Example of usage: find buy coffee

Viewing balance: balance

View user’s current balance.

Format: balance

Example of usage: balance

Example output:

Balance: 3790.00

Budget

Setting a budget: budget set

Sets a monthly budget.

Format: budget set /b BUDGET

Example of usage: budget set /b 500

Example output:

A monthly budget of 500.00 has been set.

Updating budget: budget update

Updates initial budget to a new value. Current(remaining) budget will be updated accordingly. If new initial budget is lower(higher), the new current budget will be lower(higher) by the same amount.

Format: budget update /b BUDGET

Example of usage: budget update /b 1000

Example output:

Budget has been updated:
Old initial budget: 500.00
Old current budget: 500.00
New initial budget: 1000.00
New current budget: 1000.00

Resetting budget: budget reset

Resets current budget to initial budget if they are different.

Format: budget reset

Example of usage: budget reset

Example output:

Budget has been reset to 1000.00.

Deleting budget: budget delete

Deletes existing budget.

Format: budget delete

Example of usage: budget delete

Example output:

Budget has been deleted.

Viewing budget: budget view

View existing budget.

Format: budget view

Example of usage: budget view

Example output:

You have a remaining budget of 1000.00.

Displaying overview: overview

Displays an overview of user’s financials.

Format: overview

Example of usage: overview

Example output:

Here is an overview of your financials:
Total balance: 5450.00
Highest income: 5000.00    Category: Salary
Highest expense: 50.00    Category: Others
Remaining budget for the month: 50.00

Reminders:
No reminders added yet.

Wishlist:
No goals added yet.

Viewing Watchlist: watchlist

View your current watchlist with stocks that you are interested in with the exchanges shown as well

Default watchlist: AAPL, GOOGL

These stocks will be added to the watchlist automatically if:

Format: watchlist

Example of usage: watchlist

Example of output:

Format of watchlist output:

Symbol Market Price Daily High Daily Low Equity Name Last Updated
Ticker Symbol
(Abbreviation for Company ‘s Stocks)
Exchange at which the stock is traded Current latest price of stock (before closing) Intraday Highest trading price Intraday Lowest trading price Name of equity product Last time at which the information of the stocks was updated by the API

Adding Stock to Watchlist: addstock

Add a stock that you are interested in monitoring into your personal WatchList

Format: addstock /s STOCKCODE

Example of usage: addstock /s META

Example of output:

You have successfully added:
Meta Platforms Inc - Class A
Use Watchlist to view it!

Deleting Stock from Watchlist: deletestock

Delete a stock that you are no longer interested in monitoring from your personal WatchList

Format: deletestock /s STOCKCODE

Example of usage: deletestock /s META

Example of output:

You have successfully deleted: 
Meta Platforms Inc - Class A
Use watchlist command to view updated Watchlist

watchlist.json

You are able to read the watchlist.json populated by the Financial Planner to see the stock prices even when the application is not running

Example file content of watchlist.json:

Editing of watchlist.json

WARNING: Do not edit the json file unless you are familiar with the format of the JSON file. Incorrect format of JSON file may lead to:

Adding stock

If you would like to add stock directly using the file, do provide accurate (we do not check for accuracy of information due to free nature of api) information for only the symbol (in uppercase) and stockName as shown below. If the format is not followed, the stock might not be loaded to watchlist upon start up.

View Reminder List: reminderlist

View your current reminder list with reminders that you have added.

Format: reminderlist

Example of usage: reminderlist

Example of output:

Here is your reminder list:
1. Reminder 
   Type: debt
   Date: Dec 11 2023
   Status: Not Done
   Left Days: 28
2. Reminder 
   Type: loan
   Date: Dec 18 2023
   Status: Not Done
   Left Days: 35

Add reminder: addreminder

Adds a reminder to the Financial Planner.

Format: addreminder /t TYPE /d DATE

Example of usage: addreminder /t debt /d 11/12/2023

Example output:

You have added Reminder 
   Type: debt
   Date: Dec 11 2023
   Status: Not Done
   Left Days: 28

Delete reminder: deletereminder

Deletes a reminder from the Financial Planner.

Format: deletereminder INDEX

Example of usage: deletereminder 1

Example output:

You have deleted Reminder 
   Type: debt
   Date: Dec 12 2023
   Status: Not Done
   Left Days: 29

Mark reminder as done: markreminder

Marks a reminder as done in the Financial Planner.

Format: markreminder INDEX

Example of usage: markreminder 1

Example output:

You have marked Reminder 
   Type: debt
   Date: Dec 12 2023
   Status: Done
   Left Days: 29

View Goal List: wishlist

View your current goal list with goals that you have added.

Format: wishlist

Example of usage: wishlist

Example of output:

Here is your wish list:
1. Goal 
   Label: car
   Amount: 5000
   Status: Not Achieved
2. Goal 
   Label: ipad
   Amount: 2000
   Status: Not Achieved

Set goal: set goal

Adds a goal to the Financial Planner.

Format: set goal /g GOAL /l LABEL

Example of usage: set goal /g 5000 /l car

Example output:

You have added Goal 
   Label: car
   Amount: 5000
   Status: Not Achieved

Delete goal: deletegoal

Deletes a goal from the Financial Planner.

Format: deletegoal INDEX

Example of usage: deletegoal 1

Example output:

You have deleted Goal 
   Label: car
   Amount: 5000
   Status: Not Achieved

Mark goal as achieved: markgoal

Marks a goal as achieved in the Financial Planner. This operation will automatically create a corresponding expense.

Format: markgoal INDEX

Example of usage: markgoal 1

Example output:

You have achieved Goal 
   Label: ipad
   Amount: 2000
   Status: Achieved
Congratulations!
You have added an Expense
   Type: Others
   Amount: 2000.00
   Description: ipad
to the Financial Planner.
Balance: -2000.00

Visualizing your cashflow: vis

Using this command to visualize your income or expenses in a pie chart, bar chart or radar chart

Format: vis /t TYPE /c TOOL

Type /t
Income Cashflows Income
Expense Cashflows Expense
Tool /c
PieChart pie
BarChart bar
RadarChart radar

Example of usage: vis /t expense /c pie

Example of output:

Displaying piechart for expense

Example of usage: vis /t income /c bar

Example of output:

Displaying barchart for income

Example of usage: vis /t income /c radar

Example of output:

Displaying radarchart for income

Exiting the program: exit

Exits the program.

Format: exit

Getting command help and example usage: help

Get command help and example usage. Specify the command to find help and example usage for exactly that command.

Format: help [COMMAND]

Example of usage: help budget

Saving the data

Data is automatically saved upon exiting the program using the exit command. Closing the program inappropriately will not save the data.

Loading the data

Existing data will be automatically loaded when the program starts up.

FAQ

Q: How do I transfer my data to another computer?

A: Copy the /data/ folder from the home folder to the other computer.

Q: Should I edit the watchlist.json file?

A: You should not edit the watchlist.json file unless you are very familiar with the format used. If you would like to edit the watchlist.json file directly to manipulate your watchlist, please follow the instructions above in the watchlist feature section. However, do note that there is risk of file corruption.

Q: How is the radar chart derived?

A: To obtain the radar chart in our application, the income/expense category with the highest amount is noted. After which, amounts of all other categories are taken as a ratio of the maximum category. The ratios are then displayed in the radar chart

Q: Why can’t I add Singapore exchange stocks or other exchange stocks using the add stock command?

A: Due to the restrictions of the free API provided, only US-exchange stocks are provided. Sorry for the inconvenience caused

Q: Why is it saying that API limit is reached, not working or something like that when I use watchlist features? 🤬

A: Due to the free nature of the API, there is a restriction in the number of requests allowed in a specific time window. Sorry for the inconvenience caused. 🥲

Command Summary

Action Format
Add income add income /a AMOUNT /t TYPE [/r DAYS] [/d DESCRIPTION]
Add expense add expense /a AMOUNT /t TYPE [/r DAYS] [/d DESCRIPTION]
Delete cashflow delete INDEX [/r]
Delete income delete income INDEX [/r]
Delete expense delete expense INDEX [/r]
Delete recurrence delete recurring INDEX [/r]
list all cashflows list
list all incomes list income
list all expenses list expense
list all recurring cashflows list recurring
Set budget budget set /b BUDGET
Update budget budget update /b BUDGET
Reset budget budget reset
Delete budget budget delete
View budget budget view
Display Overview overview
View balance balance
View Watchlist watchlist
Add to watchlist addstock /s STOCKCODE
Delete from watchlist deletestock /s STOCKCODE
Visualization vis /t TYPE /c CHART
Exit program exit
Add Reminder addreminder /t TYPE /d DATE
Delete Reminder deletereminder INDEX
Mark Reminder as Done markreminder INDEX
Add Goal set goal /g GOAL /l LABEL
Delete Goal deletegoal INDEX
Mark Goal as Achieved markgoal INDEX
List all reminders reminderlist
List all goals wishlist

Income and Expense types

Income Expense
salary dining
investments entertainment
allowance shopping
others travel
  insurance
  necessities
  others