Skip to the content.

MindMyMoney User Guide

Content Page

Introduction

MindMyMoney

MindMyMoney (M3) is a desktop application for managing your personal finances, optimized for use via a Command Line Interface (CLI). You can use it to track your expenditures across multiple payment methods, calculate monthly expenditure, and track your income. If you are a student looking to manage your personal finances, this application is for you!

Using the User Guide

This guide aims to equip you with the knowledge on how to set up the application and to utilise its many features. Click on the hyperlinks in the Content Page to quickly navigate the user guide! Along the guide you may encounter several icons. These icons will provide you with several useful information.

💡 Note:

⚠️Warning⚠️


Quick Start

  1. Ensure that you have Java 11 or above installed. Click here for the link to the Java 11 installer.
  2. Download the latest version of MindMyMoney.jar from here.
  3. Copy the file to the folder you want to use as the home folder for your MindMyMoney.
  4. Open a command line terminal in your home folder and run java -jar MindMyMoney.jar. The startup interface similar to the one below should appear in a few seconds.
 __  __ _         _ __  __      __  __
|  \/  (_)_ _  __| |  \/  |_  _|  \/  |___ _ _  ___ _  _
| |\/| | | ' \/ _` | |\/| | || | |\/| / _ \ ' \/ -_) || |
|_|  |_|_|_||_\__,_|_|  |_|\_, |_|  |_\___/_||_\___|\_, |
                           |__/                     |__/
<< Set a budget and stick to it >>

Welcome to MindMyMoney
What can I do for you?
  1. Type the command in the command box and press Enter to execute it. For example: typing help and pressing Enter will show a help page.
    Some example commands you can try:
    • add/e /pm cash /c Food /d Porridge /a 3 /t 12/03/2022 : Adds a $3 expenditure of the description ‘Porridge’ that was paid in cash on 12 March 2022 to your list of expenditures.
    • list /e : Lists all expenditures.
    • calculate/epm 03/2022 : Calculates the total expenditure in the month of March 2022.
    • update/e 1 /pm cash /c Food /d Chicken Rice /a 4.50 /t 12/03/2022 : Updates the first expenditure on your expenditure list to reflect a $4.50 expenditure of the description ‘Chicken Rice’ that was paid in cash on 12 March 2022.
    • delete/e 1 : Deletes the first expenditure in your expenditure list.
    • bye : Exits the application.
  2. Refer to the Features for more details of each command.


Features

The following are features of the MindMyMoney application.

Introduction to Commands

A MindMyMoney command typically contains 4 types of terms.

For Example:

💡 Note:

⚠️Warning⚠️


Expenditure

Expenditure refers to the various expenses you make.

Display help page for expenditures: help

Prints a list of commands related to expenditure.

Format: help /e

Expected Outcome:

For example: help /e
Shows the help page for expenditure related commands.

> help /e
---------------------------------------Expenditure Help Page---------------------------------------
1. Listing all Expenditures: list /e {DATE}
2. Adding an Expenditure entry: add /e /pm [PAYMENT_METHOD] /c [CATEGORY] /d [DESCRIPTION] /a [AMOUNT] /t [DATE]
3. Calculating the total expenditure in a month: calculate /epm [DATE]
4. Updating an Expenditure: update /e [NEW_INDEX] /pm [NEW_PAYMENT_METHOD] /c [NEW_CATEGORY] /d [NEW_DESCRIPTION] /a [NEW_AMOUNT] /t [NEW_DATE]
5. Removing an Expenditure entry: delete /e [INDEX]
6. Exiting the program: bye
---------------------------------------------------------------------------------------------------


Add an expenditure: add

Adds an expenditure into your expenditure list. Only one expenditure can be added per command.

Format: add /e /pm [PAYMENT_METHOD] /c [CATEGORY] /d [DESCRIPTION] /a [AMOUNT] /t [DATE]

Expected Outcome:

For example: add /e /pm cash /c Food /d Porridge /a 4.50 /t 12/03/2022
Adds a $4.50 expenditure of food item ‘Porridge’ that was paid in cash on 12 March 2022 to your expenditure list.

> add /e /pm cash /c Food /d Porridge /a 4.50 /t 12/03/2022
Successfully added: 

Description: Porridge
Amount: $4.50
Category: Food
Payment method: Cash
Date: 12/03/2022

into the account

💡 Note:

⚠️Warning⚠️


Display expenditures: list

Prints your current list of expenditures.

Format: list /e {DATE}

Expected Outcome:

For example: list /e
Lists all your expenditures.

> list /e
-----------------------------------------------
1. $300.00 was spent on Nike Shoes(Personal) using Cash [30/03/2022]
2. $20.00 was spent on Grab(Transport) using Cash [30/03/2022]
3. $3.21 was spent on Bubble Tea(Food) using Cash [30/01/1999]
4. $4.50 was spent on Porridge(Food) using Cash [12/03/2022]
-----------------------------------------------

For example: list /e 03/2022
Lists all your expenditures in March 2022.

> list /e 03/2022
-----------------------------------------------
1. $300.00 was spent on Nike Shoes(Personal) using Cash [30/03/2022]
2. $20.00 was spent on Grab(Transport) using Cash [30/03/2022]
3. $4.50 was spent on Porridge(Food) using Cash [12/03/2022]
-----------------------------------------------

For example: list /e 30/03/2022
Lists all your expenditures in 30 March 2022.

> list /e 30/03/2022
-----------------------------------------------
1. $300.00 was spent on Nike Shoes(Personal) using Cash [30/03/2022]
2. $20.00 was spent on Grab(Transport) using Cash [30/03/2022]
-----------------------------------------------

💡 Note:

⚠️Warning⚠️


Modify an expenditure: update

Modifies an expenditure on your expenditure list at the specified index.
Use the list /e command to view the indexes of your expenditures.

Format: update /e [INDEX] /pm [NEW_PAYMENT_METHOD] /c [NEW_CATEGORY] /d [NEW_DESCRIPTION] /a [NEW_AMOUNT] /t [NEW_DATE]

Expected Outcome:

For example: update /e 1 /pm cash /c Food /d chicken rice /a 5 /t 12/03/2022.
Updates the first expenditure in your list to a $5.00 expenditure on food item ‘chicken rice’ that was paid in cash on 12 March 2022.

> list /e
-----------------------------------------------
1. $300.00 was spent on Nike Shoes(Personal) using Cash [30/03/2022]
2. $20.00 was spent on Grab(Transport) using Cash [30/03/2022]
3. $3.21 was spent on Bubble Tea(Food) using Cash [30/01/1999]
4. $4.50 was spent on Porridge(Food) using Cash [12/03/2022]
-----------------------------------------------

> update /e 4 /pm cash /c Food /d chicken rice /a 5 /t 12/03/2022
Successfully set expenditure 4 to:
$5.00 was spent on chicken rice(Food) using Cash [12/03/2022]

💡 Note:

⚠️Warning⚠️


Remove an expenditure: delete

Deletes an expenditure from your expenditure list at the specified index.
Use the list /e command to view the current indexes of your expenditures.

Format: delete /e [INDEX]

Expected Outcome:

For example: delete /e 1
Deletes the first expenditure on your list.

> list /e
-----------------------------------------------
1. $300.00 was spent on Nike Shoes(Personal) using Cash [30/03/2022]
2. $20.00 was spent on Grab(Transport) using Cash [30/03/2022]
3. $3.21 was spent on Bubble Tea(Food) using Cash [30/01/1999]
4. $4.50 was spent on Porridge(Food) using Cash [12/03/2022]
-----------------------------------------------

> delete /e 1
I have removed Nike Shoes of $300.00 from the account

💡 Note:


Calculate expenditures: calculate

Shows the total expenditure breakdown for a specified day, month or year in a horizontal bar chart.

Format: calculate /epm [DATE]

Expected Outcome:

For example: calculate /epm 03/2022
Shows your total expenditure in March 2022 and breakdown of expenses.

> calculate /epm 03/2022
Total expenditure in 03/2022 is $24.50.

BREAKDOWN OF EXPENSES:
-----------------------------------------------
FOOD:          $$$$$$$$ [18.37%]
TRANSPORT:     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ [81.63%]
UTILITIES:      [0.0%]
PERSONAL:       [0.0%]
ENTERTAINMENT:  [0.0%]
OTHERS:         [0.0%]
-----------------------------------------------

💡 Note


Credit Card

Credit card refers to the various credit cards you might have.

Display help page for credit cards: help

Prints a list of commands related to credit card.

Format: help /cc

Expected Outcome:

For example: help /cc
Shows the help page for credit card related commands.

> help /cc
---------------------------------------Credit Card Help Page---------------------------------------
1. Listing all Credit Cards: list /cc
2. Adding a Credit Card: add /cc /n [CREDIT_CARD_NAME] /cb [CASHBACK] /cl [CREDIT_LIMIT]
3. Updating a Credit Card: update /cc [INDEX] /n [NEW_NAME] /cb [NEW_CASHBACK] /cl [NEW_CREDIT_LIMIT]
4. Removing a credit card: delete /cc [INDEX]
5. Exiting the program: bye
---------------------------------------------------------------------------------------------------


Add a credit card: add

Adds a credit card into your credit card list. Only one credit card can be added per command. You can then use this credit card as a payment method when adding an expenditure.

Format: add /cc /n [CREDIT_CARD_NAME] /cb [CASHBACK] /cl [CARD_LIMIT]

Expected Outcome:

For example:add /cc /n dbs /cb 2 /cl 1000
Adds your credit card of the name ‘DBS’ with a cashback of 2% and a monthly spending limit of $1000.

> add /cc /n dbs /cb 2 /cl 1000
Successfully added: 

Credit card: dbs
Cash back: 2.00%
Card limit: $1000.00

into the account

💡 Note

⚠️Warning⚠️


Display credit cards: list

Prints your current list of credit cards.

Format: list /cc

Expected Outcome:

For example: list /cc
Lists all your credit cards.

> list /cc
-----------------------------------------------
1. Name: dbs [Cashback: 2.00%] [Cashback gained: $0.00] [Card limit: $1000.00] [Balance left: $1000.00]
-----------------------------------------------


Modify a credit card: update

Modifies a credit card on your credit card list at the specified index.
Use the list /cc command to view the current indexes of your credit cards.

Format: update /cc [INDEX] /n [NEW_NAME] /cb [NEW_CASHBACK] /cl [NEW_CARD_LIMIT]

Expected Outcome:

For example: update /cc 1 /n OCBC /cb 1.5 /cl 500
Updates the first credit card on your list to have a name of ‘OCBC’ with a cashback of 1.5% and a monthly spending limit of $500.

> list /cc
-----------------------------------------------
1. Name: dbs [Cashback: 2.00%] [Cashback gained: $0.00] [Card limit: $1000.00] [Balance left: $1000.00]
-----------------------------------------------

> update /cc 1 /n OCBC /cb 1.5 /cl 500
Successfully set credit card 1 to:
Name: OCBC [Cashback: 1.50%] [Cashback gained: $0.00] [Card limit: $500.00] [Card balance: $500.00]

💡 Note:

⚠️Warning⚠️


Remove a credit card: delete

Deletes a credit card from your list at the specified index.
Use the list /cc command to view the current indexes of your credit cards.

Format: delete /cc [INDEX]

Expected Outcome

For example: delete /cc 1
Deletes the first credit card on your credit card list.

> list /cc
-----------------------------------------------
1. Name: OCBC [Cashback: 1.50%] [Cashback gained: $0.00] [Card limit: $500.00] [Balance left: $500.00]
-----------------------------------------------

> delete /cc 1
I have removed OCBC from your list of credit card(s).

💡 Note:


Calculate cashback: calculate [coming in v3.0]

Details coming soon…


Income

Income refers to the various sources of income you might have.

Display help page for incomes: help

Prints a list of commands related to income.

Format: help /i

Expected Outcome:

For example: help /i
Shows the help page for income related commands.

> help /i
--------------------------------Income Help Page---------------------------------------
1. Listing all Incomes: list /i
2. Adding an Income entry: add /i /a [AMOUNT] /c [CATEGORY]
3. Updating an Income entry: update /i [INDEX] /a [NEW_AMOUNT] /c [NEW_CATEGORY]
4. Removing an Income entry: delete /i [INDEX]
---------------------------------------------------------------------------------------


Add an income: add

Adds an income into your income list. Only one income can be added per command.

Format: add /i /a [AMOUNT] /c [CATEGORY]

Expected Outcome:

For example: add /i /a 3000 /c salary
Adds an income of $3000 categorised as your Salary.

> add /i /a 3000 /c salary
Successfully added: 

Amount: $3000
Category: Salary

into the account

💡 Note:

⚠️Warning⚠️


Display incomes: list

Prints your current list of income entries.

Format: list /i

Expected Outcome:

For example: list /i
Lists all your income entries.

> list /i
-----------------------------------------------
1. Amount: $3000
   Category: Salary
-----------------------------------------------


Modify an income: update

Modifies an income in your income list at the specified index.
Use the list /i command to view the current indexes of your income entries.

Format: update /i [INDEX] /a [NEW_AMOUNT] /c [NEW_CATEGORY]

Expected Outcome:

For example: update /i 1 /a 4000 /c salary
Updates the first income entry on your income list to $4000 categorised as your salary.

> list /i
-----------------------------------------------
1. Amount: $3000
   Category: Salary
-----------------------------------------------

> update /i 1 /a 4000 /c salary
Successfully set income 1 to:
Amount: $4000
Category: Salary

💡 Note:

⚠️Warning⚠️

Remove an income: delete

Deletes an income from your income list at the specified index.
Use the list /i command to view the current indexes of your income entries.

Format: delete /i [INDEX]

Expected Outcome:

For example: delete /i 1
Deletes the first income entry on your income list.

> list /i
-----------------------------------------------
1. Amount: $4000
   Category: Salary
-----------------------------------------------

> delete /i 1
I have removed Salary from your list of income(s).

💡 Note:


Exit MindMyMoney application: bye

Shuts down the MindMyMoney application.

Format: bye

Expected Outcome:

For example: bye
Exits the program.

> bye
Bye, hope to see you again!

💡 Note


Save the Data

Your MindMyMoney data is saved in the hard disk automatically after any command that changes the data. There is no need for you to save manually. You can view the saved contents of MindMyMoney by reading the data.txt file in your current directory.

💡 Note:

Editing the Save File

If you are experienced in using MindMyMoney, you may wish to directly edit the data.txt file. Below is a short description of its format.

⚠️Warning⚠️

data.txt must contain the following six lines, in this order:

# BEGIN EXPENDITURES
# END EXPENDITURES
# BEGIN CREDIT CARDS
# END CREDIT CARDS
# BEGIN INCOME SOURCES
# END INCOME SOURCES

Each expenditure, credit card, and income is stored in one line between their respective BEGIN/END lines. No line should be left blank.

Each piece of data is stored as a series of key : value pairs, separated by spaces. Both key and value are enclosed in quotes. A \" in a key or value represents a quotation mark, while a \\ represents a backslash.

The following are the keys required for each type of data:

Their meanings are the same as in the add commands. The totalExpenditure key of a credit card contains the total amount spent using that credit card.

If a key is missing, MindMyMoney will consider the save file invalid.

Here is an example of a valid save file:

# BEGIN EXPENDITURES
 "amount": "3.0"  "description": "Commute"  "paymentMethod": "Cash"  "time": "08/03/2022"  "category": "Transport" 
 "amount": "1.0"  "description": "Mala"  "paymentMethod": "DBS"  "time": "30/03/2022"  "category": "Food" 
 "amount": "1.0"  "description": "Chicken rice"  "paymentMethod": "DBS"  "time": "30/03/2022"  "category": "Food"
 "amount": "1.0"  "description": "Katsudon"  "paymentMethod": "Cash"  "time": "07/03/2022"  "category": "Food"
# END EXPENDITURES
# BEGIN CREDIT CARDS
 "totalExpenditure": "2.0"  "monthlyCardLimit": "10000.0"  "nameOfCard": "DBS"  "cashback": "1.0"
 "totalExpenditure": "0.0"  "monthlyCardLimit": "20000.0"  "nameOfCard": "OCBC"  "cashback": "4.0"
# END CREDIT CARDS
# BEGIN INCOME SOURCES
 "amount": "200"  "category": "Allowance"
 "amount": "500"  "category": "Investment" 
# END INCOME SOURCES


FAQ

Q: Why is my data not saved when I run MindMyMoney in different folders?

A: MindMyMoney saves data in the current directory. To ensure all the data is saved properly, run MindMyMoney only in the home folder. If you wish to run MindMyMoney in different folders and still contain your data, copy the data.txt file found in the current directory into a new folder where you want to run MindMyMoney in.


Command Summary (Expenditure)

Command Format, examples
Help help /e
Prints a list of commands related to expenditures.
Add add /e /pm [PAYMENT_METHOD] /c [CATEGORY] /d [DESCRIPTION] /a [AMOUNT] /t [DATE]
For example: add /e /pm cash /c Food /d Porridge /a 4.50 /t 10/03/2022
Adds a $4.50 expenditure of Food item ‘Porridge’ that was paid in cash on 10 March 2022 to your expenditure list.
List list /e {DATE}
For example: list /e 03/03/2022
Displays your current list of expenditures on 3 March 2022.
Calculate calculate /epm [DATE]
For example: calculate /epm 03/2022
Prints a breakdown of your expenditures for Mar 2022.
Delete delete /e [INDEX]
For example: delete 1
Deletes the first expenditure from your expenditure list.
Update update /e [INDEX] /pm [NEW_PAYMENT_METHOD] /c [NEW_CATEGORY] /d [NEW_DESCRIPTION] /a [NEW_AMOUNT] /t [NEW_DATE]
For example: update /e 1 /pm cash /c Food /d chicken rice /a 5 /t 12/03/2022
Updates the first expenditure in your expenditure list to a $5.00 expenditure of Food item ‘chicken rice’ that was paid in cash on 12 March 2022.
Exit bye
Ends the MindMyMoney application.


Command Summary (Credit Card)

Command Format, examples
Help help /cc
Prints a list of commands related to credit cards.
Add add /cc /n [CREDIT_CARD_NAME] /cb [CASHBACK] /cl [CARD_LIMIT]
For example: add /cc /n dbs /cb 2 /cl 1000
Adds a credit card of the name ‘DBS’ with a cashback of 2% and a monthly spending limit of $1000.
List list /cc
Displays your current list of credit cards.
Delete delete /cc [INDEX]
For example: delete /cc 1
Deletes the first credit card from your credit card list.
Update update /cc [INDEX] /n [NEW_CARD_NAME] /cb [NEW_CASHBACK] /cl [NEW_CREDIT_LIMIT]
For example: update /cc 1 /n OCBC /cb 1.5 /cl 500
Updates the first credit card on your credit card list to have a name of ‘OCBC’ with a cashback of 1.5% and a monthly spending limit of $500.
Exit bye
Ends the MindMyMoney application.


Command Summary (Income)

Command Format, examples
Help help /i
Prints a list of commands related to income.
Add add /i /a [AMOUNT] /c [CATEGORY]
For example: add /i /a 3000 /c salary
Adds an income of $3000 categorised as your Salary.
List list /i
Displays your current list of income entries.
Delete delete /i [INDEX]
For example: delete /i 1
Deletes the first income from your income list.
Update update /i [INDEX] /a [NEW_AMOUNT] /c [NEW_SALARY]
For example: update /i 1 /a 4000 /c salary
Updates the first income entry on your income list to $4000 categorised as your Salary.
Exit bye
Ends the MindMyMoney application.