By: Team MooLah
Since: Aug 2019
Licence: MIT
- 1. What is MooLah?
- 2. How to Read This User Guide
- 3. Quick Start
- 4. Features
- 4.1. Viewing help :
help
- 4.2. Undo and Redo
- 4.3. Changing panels:
view
- 4.4. Generic commands
- 4.5. Natural language Datetime parsing
- 4.6. Expense-related Commands
- 4.7. Event-related Commands
- 4.8. Let’s Do Budgeting
- 4.9. Making inputs quick and easy.
- 4.10. Viewing Statistics
- 4.11. Exiting the program :
exit
- 4.12. Saving the data
- 4.13. Encrypting data files
[coming in v2.0]
- 4.14. Email notification
[coming in v2.0]
- 4.15. Input expenses using speech
[coming in v2.0]
- 4.16. Input expenses by scanning a receipt
[coming in v2.0]
- 4.17. Splitting a shared bill
[coming in v2.0]
- 4.18. Budget planner
[coming in v2.0]
- 4.19. Generate a saving plan
[coming in v2.0]
- 4.20. Import and export your data
[coming in v2.0]
- 4.21. Calculate your taxes
[coming in v2.0]
- 4.22. Currency Conversion
[coming in v2.0]
- 4.23. Privacy
[coming in v2.0]
- 4.24. Income tracking
[coming in v2.0]
- 4.25. Predictions
[coming in v2.0]
- 4.26. Printing expense statements
[coming in v2.0]
- 4.27. Even better command-line
[coming in v2.0]
- 4.28. Multiple-item expenses
[coming in v2.0]
- 4.29. Recurring expenses
[coming in v2.0]
- 4.1. Viewing help :
- 5. FAQ
- 6. Command Summary
- 7. Menu Items List
1. What is MooLah?
Welcome to MooLah, your perfect personal finance assistant.
MooLah is a powerful, hassle-free expense tracker, designed to boost your efficiency at managing your daily expenses. With MooLah, you can easily monitor expenses under multiple budgets, compare expenses across different periods, set reminders for future events… many more wonderful things to explore. Equipped with natural language time format parser, MooLah understands what you type, just like a friend - no more rigid date and time formatting. With its exceptional autocomplete and prefix suggestion feature, MooLah is faster, smarter, and more intuitive than conventional expense trackers. Although a desktop app optimised for Command Line, MooLah has an elegant Graphical User Interface (GUI).
This is what MooLah looks like:
Interested? Jump to the Section 3, “Quick Start” to get started. Enjoy!
2. How to Read This User Guide
First, let’s familiarize ourselves with the symbols and formats used in this document:
Contains key information relevant to the execution of commands in MooLah. |
Contains important information on feature implementation. |
{contains sample command-line input}
TAB
Enter
: keys on the keyboard of your computer
3. Quick Start
Follow this installation guide to get MooLah up and running in your computer:
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
MooLah-v1.4.jar
here. -
Copy the file to the folder you want to use as the home folder for
MooLah
. -
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type a command in the command box and press
Enter
to execute it.
e.g. typinghelp
and pressingEnter
will open the help window. -
Press
TAB
if you want to enable the suggestion feature. -
Some example commands you can try:
-
listexpense
: lists all expenses -
addexpense d/Chicken Rice p/2.50 c/Food t/25-10
: adds an expense namedChicken Rice
to the expense tracker. -
deleteexpense 3
: deletes the 3rd expense shown in the current list -
exit
: exits the app
-
-
Refer to Section 4, “Features” for details of each command.
4. Features
This section gives a comprehensive list of MooLah’s wonderful features, and helpful tips on how you can master them quickly.
Command Format
-
Words in between
<
and>
are the parameters which are to be supplied by you!-
addexpense p/<PRICE> c/<CATEGORY> d/<DESCRIPTION>
, means you will need to supply a value to be used as thePRICE
,DESCRIPTION
andCATEGORY
such asaddexpense p/2.50 c/food d/chickenrice
.
-
-
You don’t have to input the parameters in square brackets if you don’t want to. These arguments are optional, and you may use them to specify more details.
-
addexpense d/<DESCRIPTION> p/<PRICE> c/<CATEGORY> [t/<DATE>]
means that both
addexpense d/Chicken Rice p/2.50 c/Food
and
addexpense d/Chicken Rice p/2.50 c/Food t/25-01
are valid inputs.
-
-
You may also enter parameters with prefixes in any order.
-
addexpense p/2.50 d/chicken rice c/food
addexpense c/food d/chicken rice p/2.50
are both valid.
-
-
However, commands that require indexes will only be successful if the index is supplied immediately after the command word.
-
editexpense 1 p/2.30
is valid. -
editexpense d/2.30 1
is not valid.
-
4.1. Viewing help : help
Format: help
4.2. Undo and Redo
4.2.1. Undo the previous command : undo
Did something wrong? You can undo it.
However, do keep in mind that you can only undo commands that modify the data in MooLah, such as addexpense
, deleteexpense-primary
, and so on.
Head over to "Command Summary" section for list of commands that are undoable.
Do not worry if you forgot what you did a few steps back (it happens!). MooLah will display a short description of what particular command it undid to help you confirm that you undid the right thing.
Format: undo
Example:
Let’s say you just added a new expense…
addexpense d/bowling p/10 c/entertainment
But you added it to the wrong budget! You wish to undo the mistake now…
undo
And MooLah will undo it for you and return the data to the way it was before. Also, it will
display Undid "Add expense bowling (10.00)"
in the result display for reference. Phew!
4.2.2. Redo an undone command : redo
You might hit one undo too many and wish to cancel that one undo. That’s okay, redo will help you on that.
Similar to undo, MooLah will display a short description of the command it redid to you.
Format: redo
Example: Continuing the example in the "undo" section… suppose now you think that the "bowling" expense is in the right place after all, and you wish to do the addition again.
redo
Result:
At the end, the "bowling" expense will be re-added back to MooLah. Yay!
MooLah will also display a message Redid "Add expense bowling (10.00)"
for reference.
4.3. Changing panels: view
While most commands will change the panel-in-view to the relevant panel, you may wish to manually go to a panel without
attempting to modify data. You may do so with the view
command.
The format:
view <PANEL_NAME>
For example, you may execute the following command to view your Budget List:
view Budget List
4.4. Generic commands
MooLah has 4 generic commands which behave differently depending on which Panel you are viewing.
These commands are add
, list
, delete
, and edit
. These generic commands differ from Panel to Panel.
For example, if you are in the Expense List Panel, then:
add
= addexpense
However, in the Aliases panel:
add
= addalias
Expense List |
|
Budget List |
|
Event List |
|
Aliases |
|
Primary Budget |
|
4.5. Natural language Datetime parsing
In MooLah, you can type all dates and times in natural language! You no longer have to remember what date it was a week ago; just type '1 week ago' into the appropriate parameter in the command line and MooLah will handle the rest! Datetime formats are parsed mostly by a third-party Natural Language Parser library, Natty, which supports human jargon. Please refer to http://natty.joestelmach.com/ for documentation and more information.
Natty naturally parses all datetime formats in the American format (e.g. MM/dd, MM-dd). In MooLah however, we have modified the parser such that all formats are parsed in the international format (e.g. dd/MM). So, the tryout page on Natty’s official website will parse dates differently in this aspect. |
4.6. Expense-related Commands
4.6.1. Adding an expense: addexpense
The bread and butter of any expense tracker: adding an expense! In order to begin tracking your expenses, you are going to need to enter some expenses to track.
This is the format:
addexpense d/<DESCRIPTION> p/<PRICE> c/<CATEGORY> [t/TIMESTAMP]
Examples:
-
addexpense d/birthday p/40 c/Shopping t/10-10
-
addexpense d/Buffet c/Food p/250
-
addexpense d/Chicken rice p/2.50 c/Food t/yesterday noon
After typing in the command and entering it…
Your new expense will appear in the list!
A new Food expense is added.
4.6.2. Adding an expense from NUS canteens' menu : addmenuexpense
This is what makes MooLah special for NUS students. Shortcut your way to adding expenses for foods and drinks in NUS!
Currently, MooLah only supports just a handful of menu items, though. Head over to our "Menu Items List" section to see the supported menu items. A more comprehensive menu list is on its way in v2.0!
Format:
addmenuexpense m/<MENU_ITEM> [t/TIMESTAMP]
Example:
addmenuexpense m/deck chicken rice
This will add a new expense that corresponds to The Deck’s Chicken Rice and MooLah will automatically fill in the description, price, and category for you.
4.6.3. Listing all expenses : listexpense
You can list every single expense you have added into MooLah.
Format: listexpense
4.6.4. Updating an expense: editexpense
Made a mistake? You can edit expenses too.
Format:
editexpense <INDEX> [p/<PRICE>] [d/<DESCRIPTION>] [t/<TIMESTAMP>] [c/<CATEGORY>]
Example:
editexpense 2 p/2.30
Executing this command will change the PRICE
of the second expense in the list to 2.30.
4.6.5. Locating expenses by name: findexpense
You can find expenses whose description contains any of the keywords you inputted.
Format:
findexpense <KEYWORD> [<MORE_KEYWORDS>]
Examples:
-
findexpense rice
will show you all expenses with rice in their description. -
findexpense chicken taxi schoolfee
will show you all expenses with either "chicken", "taxi", "schoolfee", or a combination of those in their description.
4.6.6. Deleting an expense: deleteexpense
You can also delete an expense from the expenses list in MooLah.
Format:
deleteexpense <INDEX>
Examples:
listexpense delete 2
Deletes the 2nd expense in the list of expenses, shown after listexpense
is executed.
listexpense findexpense chicken deleteexpense 1
Deletes the 1st expense in the results of the findexpense
command.
4.7. Event-related Commands
Events are pretty similar to expenses, except that they denote potential expenses that may happen in the future. You should use this feature to keep track of future important events in your life that would require you to spend some money (e.g. your friends' birthdays).
At launch, MooLah will remind you of your upcoming events. While using MooLah, any transpired events also appear as popups, prompting you whether you wish to add these events as corresponding expenses.
Once an event has transpired, it is permanently deleted from MooLah and you cannot get it back! Undoing MooLah to a state where that event was still present would not restore the event. |
MooLah checks for transpired events every 2 seconds, so you may experience a very slight delay when it comes to
event popups! A popup would also not appear if the transpired event has had its corresponding budget deleted. |
4.7.1. Adding an event: addevent
Events share the same fields as expenses, so you add them in the same way, albeit with a different command word.
Format:
addevent d/<DESCRIPTION> p/<PRICE> c/<CATEGORY> t/<TIMESTAMP>
Examples:
-
addevent d/Brian birthday p/40 c/Shopping t/two weeks from now
-
addevent d/Family buffet c/Food p/250 t/31-12
-
addevent d/Bangkok plane tickets t/tomorrow p/200 c/Travel
4.7.2. Listing all events : listevent
You can list every single event currently tracked by MooLah.
Format:
listevent
4.7.3. Updating an event: editevent
You can edit events the same way you edit expenses.
Format:
editevent <INDEX> [p/<PRICE>] [d/<DESCRIPTION>] [t/<TIMESTAMP>] [c/<CATEGORY>]
Example:
listevent editevent 2 p/300
This will update the price of the 2nd event in the current list to be 300.
4.7.4. Deleting an event: deleteevent
You can also delete an event from the events list in MooLah.
Format:
deleteevent <INDEX>
Examples:
listevent delete 2
This will delete the 2nd event in the list of events, shown by listevent
.
4.8. Let’s Do Budgeting
Feel a need to cut your spending? Try MooLah’s awesome budgeting feature! It can help you cultivate healthier saving habits and better financial management skills, in these following ways:
-
Each budget has a progress bar with a percentage (rounded to the nearest integer), which indicates how much you have spent as a proportion to the budget limit.
-
The color of the progress bar implies the following 4 status:
-
GREEN:
0% - 49%
of the limit. -
YELLOW:
50% - 89%
of the limit (MooLah will notify you’re halfway through) -
ORANGE:
90% - 100%
of the limit. (MooLah will remind you of the approaching limit) -
RED:
> 100%
of the limit. (MooLah will give a warning and advise you to cut down on your spending. However, the percentage will continue to update even if you exceed the budget, to give you a better idea of how much you have overspent.)
-
When the budget is exceeded too much (more than 10^7 times the budget
limit), you will not be able to add any new expense — I hope that won’t happen ;)
|
4.8.1. Create a New Budget : addbudget
Want your expenses tracked under a recurring budget? Simple enough with this command: addbudget
.
The concrete format is:
addbudget d/<DESCRIPTION> p/<AMOUNT> sd/<START_DATE> pr/<PERIOD>
For example, after typing:
addbudget d/school p/300 sd/01-10-2019 pr/month
You’ll see that a new budget school
is created, and set to $300
, recurring monthly
, starting from 1 Oct 2019
.
All expenses that do not have a budget will go under Default Budget , which is not deletable nor modifiable.Each budget must have a unique (case-insensitive) name. MooLah supports 4 types of budget period input: day , week , month , and year (all in lower case).The year in <START_DATE> is optional, i.e. you can simply input 01-10 and the year will be automatically set
to the current year.The <START_DATE> can be any time in the past or future, the budget period will automatically normalize to the current period. For example, suppose today is 23-10-2019 , when you type sd/01-07 pr/month , the resulting budget period
will be 01-10-2019 to 31-10-2019 , since that’s the period anchored by today’s date.All budgets are recurring. Continuing from the example above, on 1 Nov 2019, you’ll see the budget’s period refreshed to 01-11-2019 to 30-11-2019 , and all past expenses archived, giving you an empty budget panel to start with.When you add an expense that’s not within the current budgeting period, the budget panel will stay at the current period. To see the expense you’ve just added, switch to that corresponding period first. See Section 4.8.8, “View Expenses in a Different Period: switchperiod ”
|
4.8.2. Switch Between Budgets : switchbudget
Now that you’ve successfully added a few different budgets, wonder how to toggle between them? Try this magical command:
switchbudget
, which switches the primary budget to any other budget in one click!
The concrete format is:
switchbudget d/<BUDGET_NAME>
For example, suppose you’re at primary budget school
now. After typing:
switchbudget d/outside school
You will see that the primary budget panel is switched from school
to outside school
. Every expense you add
from now on will be tracked under the outside school
budget instead.
There is one, and only one, primary budget in MooLah at all times. Every expense you enter automatically goes to
this current primary budget. If you wish to let an expense be tracked by a different budget, switch to that
corresponding budget first, before you add the expense. The <BUDGET_NAME> is case-insensitive. |
4.8.3. List All Budgets: listbudget
To get an overview of all the budgets at hand, simply type:
listbudget
You’ll see a list of all budgets in MooLah.
The primary budget is marked with a red border. To go back to primary budget panel, type view primary budget .
|
4.8.4. Edit a Budget: editbudget
A typo? On a second thought? No worries, you can easily modify your budget with editbudget
.
The concrete format is:
listbudget (first go to list of budgets) editbudget <INDEX> [d/<DESCRIPTION>] [p/<AMOUNT>] [sd/<START_DATE>] [pr/<PERIOD>]
For example, if the second budget shown in the list is school
, recurring monthly
, amount set as $300
,
refreshed on the 1st of each month
, after typing:
listbudget editbudget 2 d/school expenses p/400 sd/05-10
It will change to school expenses
, capped at $400
, refreshed on the 5th of each month
.
You may choose to edit any of these 4 attributes of a budget: DESCRIPTION , AMOUNT , START_DATE
and PERIOD , more than one at a time.
|
4.8.5. Delete a Budget (by Name) : deletebudget
Don’t want it any more? Use deletebudget
to say bye to your budget!
The concrete format is:
deletebudget d/<BUDGET_NAME>
For example, after typing:
deletebudget d/school
The budget with the name school
will be deleted.
The Default Budget cannot be deleted or modified. It archives all expenses without a proper budget defined by you. After a budget is deleted, its expenses will be transferred to the Default Budget. |
4.8.6. Delete a Budget (by Index) : deletebudget-id
Budget names are too long? Don’t worry, there’s an easier way to delete them: deletebudget-id
.
The concrete format is:
listbudget (first go to list of budgets) deletebudget-id <INDEX>
You’ll see the corresponding budget disappear from the list.
Regretted? Type undo to get it back ;D
|
4.8.7. Delete all budgets: clearbudget
Don’t feel like living on budgets any more? You can clear them all, just using this simple command:
clearbudget
.
4.8.8. View Expenses in a Different Period: switchperiod
Wanna see your archived expenses in the past? The command switchperiod
is the time machine you need.
The concrete format is:
switchperiod t/<DATE>
For example, suppose you have a monthly budget school
, refreshed on the 1st of each month
; and
suppose it is November now. After typing:
switchperiod t/01-05
You’ll see all expenses tracked under school
from 1 May to 31 May
this year.
The time machine can only travel back in time! That is, you will only be able to switch to periods
before or equal to the current period. If the date you enter is in a future period, you’ll need to input again. Only expenses tracked under the current budget are shown. To switch back to the current period, type switchperiod t/now .
|
4.8.9. Edit Expenses Inside a Budget: editexpense-primary
When you are staring at the primary budget panel, and suddenly want to modify an expense…
Rather than switch back to the general expense list, there’s a quicker way to do it: you can edit it directly from
this budget panel! The trick is: editexpense-primary
.
The concrete format is:
editexpense-primary <INDEX> [d/<DESCRIPTION>] [p/<PRICE>] [c/<CATEGORY>] [t/<TIMESTAMP>]
The INDEX
depends on the current budget’s expenses, instead of the general expense list.
Editing an expense from a budget has the same effect as editing it from the general expense list. That is, this expense will also be updated in the general expense list. |
4.8.10. Delete expense inside a budget: deleteexpense-primary
Similarly to editing expense inside a budget, you can delete an expense directly from the
budget panel: deleteexpense-primary
.
The concrete format is:
deleteexpense-primary <INDEX>
The INDEX
depends on the current budget’s expenses, instead of the general expense list.
Deleting an expense from a budget has the same effect as deleting it from the general expense list. That is, this expense will also disappear from the general expense list. |
4.9. Making inputs quick and easy.
Do you have trouble remembering commands and what arguments they require? MooLah provides several features which will help you remember them and make your life much easier!
4.9.1. Creating a shortcut: alias
If you find yourself entering the same thing over and over, MooLah allows you to type less by
assigning this command to an alias
. This will allow you to type this alias
in place of the original long
command.
To assign an alias
, use the the addalias
command with the following format:
addalias a/<ALIAS_NAME> i/<INPUT>
There are two kinds of alias you can make, aliases which act as a standalone command, or an alias which accepts arguments.
Variation 1: Standalone
You can store an entire command using an alias
, and then use this alias
in place of that command. For example:
addalias a/chicken i/ addexpense d/ chicken rice p/2.30 c/food
This saves the command addexpense d/ chicken Rice p/2.30 c/food
to chicken
. Subsequently, you may use
this alias in place of using the full command.
Variation 2: with arguments
You may also save an incomplete input to an alias
. For example:
addalias a/ addfood i/ addexpense c/Food
Subsequently, entering the following:
addfood d/chickenrice p/2.30
is equivalent to entering:
addexpense c/Food d/chickenrice p/2.30
4.9.2. Listing the shortcuts you have saved: listalias
To list all of the aliases you have saved, you can the the listalias
command. Alternatively, you
may use the view
command by typing view Aliases
. Either of these will bring you to the User Defined Aliases panel where
you can see the list of aliases you have created.
4.9.3. Deleting the shortcuts you no longer want to use: deletealias
To delete an alias
you no longer wish to use, you may use the deletealias
command.
This is the format:
deletealias <ALIAS_NAME>
This will delete the Alias
with the name you specified. For example:
addalias a/hello i/helloworld deletealias hello
This will delete the hello
alias from your saved aliases.
4.9.4. Autocomplete and Suggestions
If you find yourself forgetting the syntax for some commands, enable the suggestion feature. This will enable MooLah to suggest valid commands, as well as prefixes when you already have a command word entered.
Enable
To enable the suggestion feature, press the TAB
key. This will enable the suggestion feature!
You will see that the command box has a green border. This indicates that the feature is enabled.
Disable
To disable the suggestion feature, press the TAB
key again. This will disable the suggestion feature!
You will see that the command box no longer has a green border. This indicates that the feature is no longer enabled.
The suggestion menu will show you the command words which match your current input.
You can cycle through the choices using the UP
and DOWN
keys. To confirm your choice, push the ENTER
or SPACE
key!
LEFT
, RIGHT
, and ESC
can be used to close the menu without disabling suggestions.
When you have entered a valid command, MooLah will show you a list of prefixes that are supported by this command and that you have not yet entered.
When the suggestion menu shows you the prefixes that you are missing, you may see these 3 tags:
-
indicates that this prefix is mandatory and you have yet to include it.
-
represents all the missing mandatory prefixes.
-
indicates that this prefix is missing, but is not compulsory to enter.
4.9.5. Syntax Highlighting
MooLah will highlight valid command words and prefixes, as well as the arguments that will be used with that argument.
When you are entering a command, MooLah will highlight command words which are supported built-in commands.
After entering a valid command word, MooLah will also highlight the prefixes that are supported by this command. However, it will not validate them for you!
4.9.6. Input history
MooLah remembers what commands you have previously entered, and allows you to access them to use them again.
If you need to enter the same input multiple times but do not want to save it as an alias
you may cycle through the history of successfully executed inputs within the current session.
Press UP
to scroll through previously executed commands.
Press DOWN
to go back the more recent commands.
For example, if you entered these commands previously.
> addexpense d/chickenrice p/12.3 c/food > addexpense d/chickenrice p/12.3 c/food > add d/chicken rice p/2.30 c/food
Pressing the UP
key to quickly enter the previous input.
When the suggestion menu is open, the UP and DOWN keys will cycle through the suggestions instead!
|
4.10. Viewing Statistics
Like most of the expense commands, statistics of your expenses can be generated concerning to the primary budget you’re residing on. Read further for the rest of the commands covered under the Statistics section.
4.10.1. Summary Statistics: statsbasic
This command allows you to have a basic summary of the money spent from their categorical expenses in a given period of their current budget.
The visual output of the statistics shown is a pie chart, with each piece representing the combined expenditure of all expenses under the category, taken as a percentage of the total expenditure in the budget the command was called.
Format: statsbasic [sd/<START_DATE>] [ed/<END_DATE>]
Tips:
-
There is no need to specify all the parameters if the outcomes of the example usage scenarios below fit your needs
-
If
START_DATE
is specified butEND_DATE
is empty, the period of the current budget will be considered as the unit of time and statistics is calculated till one unit of time afterSTART_DATE
. -
If
START_DATE
is empty butEND_DATE
is specified, the period of the current budget will be considered as the unit of time and statistics is calculated starting from one unit of time beforeEND_DATE
. -
If both
START_DATE
andEND_DATE
are empty, statistics will be calculated using the start date and end date of the current window of the budget, seen on the top right of the budget progress bar.
Example of configurations:
statsbasic statsbasic sd/tmr statsbasic sd/11-11-2018 ed/12-12-2018
Step-by-step guide: For example, MooLah is currently at the "Outside School" budget, and shown below is the view of the current window of the Budget from start of 18 Oct to the end of 24 Oct. There are exactly 4 expenses as shown in the example.
To generate the pie chart for the expenses for this window.
-
Type
statsbasic
into the command box and pressEnter
to execute it. -
The result display will display the message "Pie Chart calculated!".
-
The screen will be switched into the Statistics Panel where the Pie Chart will be generated as shown below.
4.10.2. Comparison Statistics: statscompare
This command allows you to have a side-to-side comparison of the money spent from their categorical expenses in 2 periods of their current budget. In this comparison, we provide you with data of both the similarities and differences in these 2 periods.
The visual output of the statistics shown is a table view, with 5 columns, consisting of a category column, and 2 pairs of frequency-total expenditure columns. The cells in the first pair of columns, denoted as "similarity columns" represents the frequency and total expenditure in any existing overlapping interval between the 2 periods, while the cells in the second pair of columns, denoted as the "difference columns" represents the difference in frequency and difference in total expenditure.
Format: statscompare sd1/<START_DATE_1> sd2/<START_DATE_2>
Example of configurations:
statscompare sd1/12-12 sd2/ 1 month ago statscompare sd2/ today sd1/tmr statscompare sd2/ 23-09-2019 sd1/1 year ago
Example with expected output:
Test case: Create a new budget, one possible way is addbudget d/school p/3.00 sd/28-10 pr/day
.
then enter statscompare sd1/12-12 sd2/ 1 month ago
Expected: A success message of "Statistics Comparison Calculated!" appears with the the title "Statistics Summary: Comparing 12-12-2019 to 12-12-2019 with 12-10-2019 to 12-10-2019" but all entries reflect 0 for frequency and 0.00 for amount.
4.10.3. Growth Statistics : statstrend
This command allows you to see the growth of the money spent from your categorical expenses in fixed units of time between the interval that you’re interested in finding out
The visual output of the statistics shown is in the form of plotted trend lines.
Currently 2 modes of usage can be selected.
The first one is a category
mode where each individual trend lines represents one categories and
every plotted point on a line represents the total expenditure starting from its stated date,
till before the stated date of the next point.
The second mode is a budget
mode where only 2 trend lines can be observed.
The first trend line represents the budget limit where every plotted point represents
the budget limit set starting from its stated date,
till before the stated date of the next point.
The second trend line represents the total expenditure for all expenses regardless of category, where every plotted point represents the total expenditure starting from its stated date, till before the stated date of the next point.
Format: statstrend [sd/<START_DATE>] [ed/<END_DATE>] mode/MODE
Tips:
-
There is no need to specify all the parameters if the outcomes of the example usage scenarios below fit your needs. The analysis comes in the form of interval construction followed by the searching of the nearest possible window to be included. The following describes how the interval is constructed with different configurations
-
If
START_DATE
is specified butEND_DATE
is empty, the end date of analysis is constructed till 32 unit of time afterSTART_DATE
. -
If
START_DATE
is empty butEND_DATE
is specified, the start date of analysis is constructed from 32 unit of time beforeEND_DATE
. -
If both
START_DATE
andEND_DATE
are empty, the start date of analysis is constructed from 16 units of time before the start date of the current window of the current budget and the end date of analysis is constructed from 16 units after the start date of the current window of the current budget.
Example of configurations:
statstrend mode/category statstrend sd/tmr mode/category statstrend sd/11-11-2018 ed/12-12-2018 mode/category
Example with expected output:
Test case: Create a new budget, one possible way is addbudget d/school p/3.00 sd/28-10 pr/day
.
Next, add an expense to the empty budget with addexpense d/ chicken rice p/2.50 c/food t/28-10
and type statstrend mode/category sd/28-10
Expected: A success message of "Statistics Trend Calculated!" appears with the title "Periodic trendline from 28-10-2019 to 29-11-2019 in the unit of days", 1 trend line for food is observed, with the first plotted point of the line being the highest non-zero point at y-axis = 2.50
4.11. Exiting the program : exit
Exits the program.
Format: exit
4.12. Saving the data
MooLah data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
4.13. Encrypting data files [coming in v2.0]
Hide sensitive data in you data files
4.14. Email notification [coming in v2.0]
Send email notifications to remind you of upcoming events
4.15. Input expenses using speech [coming in v2.0]
Add expenses and execute other commands by talking to MooLah
4.16. Input expenses by scanning a receipt [coming in v2.0]
Add expenses and by taking a picture of your receipt
4.17. Splitting a shared bill [coming in v2.0]
Did you pay a bill for your friends? Let us breakdown for you who pays for who.
4.18. Budget planner [coming in v2.0]
Plan how to allocate your money.
4.19. Generate a saving plan [coming in v2.0]
Have something you want to buy? Let us help you generate a good saving plan!
4.20. Import and export your data [coming in v2.0]
Easy data sharing
4.21. Calculate your taxes [coming in v2.0]
Calculate how much taxes you need to pay
4.22. Currency Conversion [coming in v2.0]
Change all your expenses to be displayed in a different currency!
4.23. Privacy [coming in v2.0]
Hide sensitive information
4.24. Income tracking [coming in v2.0]
Incorporating you income as well as expenses
4.25. Predictions [coming in v2.0]
Predict possible expenses and inputs based on your habits
4.26. Printing expense statements [coming in v2.0]
Pretty printing of your data
4.27. Even better command-line [coming in v2.0]
Dynamic input validation and highlighting of incorrect arguments
4.28. Multiple-item expenses [coming in v2.0]
Grouping expenses together
4.29. Recurring expenses [coming in v2.0]
Set an expense to recur daily, week, monthly, and more!
5. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains
the data of your previous MooLah folder.
6. Command Summary
General commands:
-
Help :
help
-
Exit the app :
exit
-
Undo :
undo
-
Redo :
redo
All about expenses:
-
Add an expense (undoable) :
addexpense d/<DESCRIPTION> p/<PRICE> c/<CATEGORY> [t/<TIME>]
e.g.addexpense d/Chicken Rice p/2.50 t/15-09-2019 1230 c/Food
-
Add menu-item expense (undoable) :
addmenuexpense m/<MENU_ITEM> [t/<TIME>]
e.g.addmenuexpense m/deck chicken rice
-
List all expenses :
listexpense
-
Edit an expense (undoable) :
editexpense <INDEX> [d/<DESCRIPTION>] [p/<PRICE>] [c/<CATEGORY>] [t/<TIME>]
e.g.editexpense 1 p/2.50 t/15-09-2019 1230 c/Food
-
Delete an expense (undoable) :
deleteexpense <INDEX>
-
Find an expense (undoable) :
findexpense <KEYWORD> [<MORE_KEYWORD>]
-
Clear all expenses and budgets (undoable) :
clearmoolah
All about events:
-
Add an event (undoable) :
addevent d/<DESCRIPTION> p/<PRICE> c/<CATEGORY> t/<TIME>
e.g.addevent d/Family buffet p/50 t/1 week from now c/Food
-
List all events :
listevent
-
Edit an event (undoable) :
editexpense <INDEX> [d/<DESCRIPTION>] [p/<PRICE>] [c/<CATEGORY>] [t/<TIME>]
e.g.editexpense 1 p/2.50 c/Food
-
Delete an event (undoable) :
deleteevent <INDEX>
All about Budgeting:
-
Create a new budget (undoable) :
addbudget d/<DESCRIPTION> p/<AMOUNT> sd/<START_DATE> pr/<PERIOD>
e.g.budget d/school p/300 sd/01-10-2019 pr/month
-
Switch between budgets (undoable) :
switchbudget d/DESCRIPTION
e.g.switchbudget d/outside school
-
List all budgets :
listbudget
-
Edit a budget (undoable) :
editbudget <INDEX> [d/<DESCRIPTION>] [p/<AMOUNT>] sd/<START_DATE> pr/<PERIOD>
e.g.editbudget 2 d/school expenses p/400 sd/05-10 pr/week
-
Delete a budget by name (undoable) :
deletebudget d/<DESCRIPTION>
e.g.deletebudget d/school
-
Delete a budget by index (undoable) :
deletebudget-id <INDEX>
e.g.deletebudget-id 2
-
Clear all budgets :
clearbudget
(undoable) -
View expenses in a different period (undoable) :
switchperiod t/<DATE>
e.g.switchperiod t/01-05
-
Edit expense inside a budget (undoable) :
editexpense-primary <INDEX> [d/<DESCRIPTION>] [p/<PRICE>] [c/<CATEGORY>] [t/<TIMESTAMP>]
e.g.editexpense-primary 1 d/chicken
-
Delete expense inside a budget (undoable) :
deleteexpense-primary
<INDEX>
e.g.deleteexpense-primary 2
Viewing statistics:
-
Summary statistics :
statsbasic [sd/<START_DATE>] [ed/<END_DATE>]
e.g.statsbasic sd/11-11-2018 ed/12-12-2018
-
Comparison statistics :
statscompare sd1/<START_DATE_1> sd2/<START_DATE_2>
e.g.statscompare sd1/01-01-2019 sd2/01-02-2019
-
Growth statistics :
statstrend [sd/START_DATE] [ed/END_DATE] mode/MODE
e.g.statstrend sd/11-11-2018 ed/12-12-2018 mode/category
Everything alias:
-
Add alias (undoable) :
addalias a/<ALIAS_NAME> i/<INPUT>
e.g.addalias a/chicken rice i/ add d/ Chicken Rice p/2.50 c/Food
-
See all aliases :
listalias
-
Delete an alias (undoable):
deletealias <DESCRIPTION>
7. Menu Items List
This is the list of menu items that are supported by MooLah as of v1.4. More menu items are on its way in v2.0!
Menu Item | Price |
---|---|
Deck Chicken Rice |
2.50 |
Finefood Western Combo Set Meal |
7.50 |
YIH Nutella Waffle |
1.50 |
Deck Ice Milo |
1.50 |
E2 Fried Fish Fillet |
3.50 |