MoneyGoWhere User Guide
Hello Hawker!
Thank you for your interest in MoneyGoWhere!
Our team would like to express our heartfelt gratitude in giving our application a chance. Allow us to bring you many steps closer towards making more money from your business, and to help with the dream of preserving hawker culture in Singapore!
This is the user guide for MoneyGoWhere. It is designed to help you, a hawker at NUS, learn how to use our product easily.
The purpose of this guide is to show you easy-to-understand instructions on how to use our product.
Table of Contents
- What is MoneyGoWhere
- Why we created MoneyGoWhere
- Urgent Help
- How to use this Guide
- Tutorial on Command Line Interface
- Setting up MoneyGoWhere
- MoneyGoWhere Commands
- Style Features
- Summary of Features
- Frequently Asked Questions
- Glossary
What is MoneyGoWhere?
MoneyGoWhere is a computer program made by computing students from the National University of Singapore (NUS) that helps you keep track of your sales.
It works like the “cashier machine” that you have been using, but is even better! With MoneyGoWhere, you can also see how much money you make each day and what items you sell the most.
Now, you can make smarter business decisions, save time, and money. Steady!
Back to table of contents
Why we created MoneyGoWhere
MoneyGoWhere was created as we noticed most hawkers in the National University of Singapore (NUS) already had an existing Point-of-Sale (POS) System, but most of them were not using them. After conducting interviews with the hawkers, we identified three main reasons why they were not using the system:
- The system is too slow and becomes unresponsive too frequently.
- An internet connection is required to use the POS system, but the Internet connection system in NUS frequently fails.
- There is no real incentive to use a system that does not work, even if they have to pay $200 a month to use it.
After identifying these problems, our team of computing students has taken on the responsibility of creating an effective solution that addresses these issues. We aim to improve the lives of hawkers and enhance their businesses using technology.
In creating MoneyGoWhere, we had four goals in mind:
- To improve the business processes of hawkers, so that they only need to focus on making food and can pay little attention to handling finances and order tracking, making their workflow more efficient.
- To create a cheap solution, increasing the profit of hawkers.
- To create a solution that does not require an internet connection, providing around-the-clock availability and preventing downtime, especially when it matters most.
- To help support the digitalization efforts of the Government, so that the older generation of hawkers may become more tech-savvy, within the comfort and familarity of their hawker stalls.
Upon completing the first version of our program, we have tested our system with one of our team member’s parents, who are hawkers. They gave us honest feedback about MoneyGoWhere, and we have made adjustments according to their feedback.
When the second version of MoneyGoWhere was presented to them, they were more comfortable with our solution, and could confidently say that the goals of MoneyGoWhere were met.
We hope that you, as a hawker, can feel the same in using MoneyGoWhere!
Back to table of contents
“I have problems right now, that’s why I am reading the guide!”
“But I cannot find what I am looking for, how now?”
We understand that using a new system can be confusing and frustrating. That is why we reduced our usage of technical words, and included examples in this guide.
We understand that you may be referencing this guide when business is booming - you can already barely cope, and you don’t have the time to search for instructions on how to use a feature.
Don’t worry! The guide is written in such a way that you can easily find what you are looking for.
There may be new words and phrases used in the guide that you may have never seen or heard of before. To make this guide easier to understand, our team has made sure all the “technical” words and phrases will be in blue, like this! What this means is that if you click on them, it will lead you to a mini-dictionary of words at the bottom of the guide, called a glossary. These blue phrases are also known as hyperlinks. You can check out what it means in the glossary by clicking on it.
Additionally, these italicized hyperlinks will bring you to our glossary at the bottom of the guide, while non-italicized hyperlinks like these will bring you to the relevant sections of the guide.
If you cannot find what you are looking for, you may call us at 9123 4567 so that we can help you as soon as possible.
Back to table of contents
How to use the Guide
This guide will bring you through:
- How to use a Command Line Interface,
- How to set up MoneyGoWhere, and
- How to use our various commands to track items, add orders, and generate statistic reports!
We will also provide some information on how your data is saved.
Before we begin, we want to let you know that this guide uses three different colored blocks and icons to indicate different things.
📖 This is a story block! Story blocks provide an example on when and how to use the many features of MoneyGoWhere.
💡 These blocks contain information that you should take note of, or additional details that you might be interested in. Each block refers to a different point, so you may encounter two blocks right next to each other.
❗ These are warning blocks. They are used to show that the next part will feature some errors that you may encounter.
Back to table of contents
Tutorial on Command Line Interface
💡 If you're already familiar with a Command Line Interface (CLI), otherwise known as a CLI, that's great! Feel free to move on to the next section about setting up MoneyGoWhere.
Otherwise, if you are new to the CLI, please continue reading this section for a simple introduction. The CLI is important in using MoneyGoWhere, so it is a good idea to know what you are looking at.
Without further ado, let us begin exploring the CLI! You may choose to follow the steps listed in the tutorial as we go along, so that you may get a better understanding.
Opening a Terminal
To begin, let us open a terminal to view your CLI. You may enter cmd
in your start menu and select the first option that appears.
What’s on a CLI?
After opening the terminal, you should see a window similar to the one shown in the picture below.
For the sake of simplicity, going forward, we will be calling this window the CLI.
Now, let us break down the different parts of the CLI for you!
From the very top, we can see the text Microsoft Windows [Version 10.0.22621.1413]
, followed by a Copyright text. This may be different for every machine, so do not worry if what you see in your own CLI is different.
Next, we have the current directory. If you followed the previous instruction, you should see C:\Users\
, followed by your name on the screen, just like in this next screenshot. In this case, the name in the screenshot is sean_
. This will look different in your own CLI, so do not panic if you see something different!
A “current directory” is like a special folder that you are looking at right now on your computer. It is like a magic box that you can put things in or take things out of, but only if you’re looking at that box right now. So if you want to find something or put something away, you need to make sure you’re looking at the right magic box, or “current directory”.
What can I do on this?
You can type and run commands, one example of which is the command to launch MoneyGoWhere!
The following screenshot shows where you are able to type.
To run the command that you have just typed, you can press the Enter
button on your keyboard.
However, if you entered Hello Hawker, I can type here!
as shown in the previous screenshot, you will see an error message, stating that it is an invalid command as shown in the next screenshot. This is because the sentence Hello Hawker, I can type here!
is not a valid command.
One example of a valid command is to change the name of the CLI window. This can be done by using the title
command.
We will show you how to use it soon, but first, notice how the CLI
looks like now. In the screenshot below, the window is named Command Prompt
.
To change the name of the CLI window from Command Prompt
to My favoruite application
, you can enter and run the command title My favourite application
.
If you have done it right, you should notice a change in the name of the window, like this!
You can also do things like delete or list the files in the current directory. However, this guide will not be covering these topics as they are not relevant to MoneyGoWhere. If you want to know more about CLI and what other things you can do with them, you may read up more about it from this article.
Congratulations, you have completed the CLI tutorial!
Now that you are familiar with how the CLI works, you are now able to use MoneyGoWhere to its maximum potential! Let us now proceed to the next section, where we will guide you on how to set up MoneyGoWhere.
Back to table of contents
Setting up MoneyGoWhere
- Before installing and using MoneyGoWhere, do note that Java 11 is required. If you do not already have it installed,
you can do so here.
-
For Windows users, download the x64 Installer. Ensure you are on the “Windows” page and download the correct version as shown in the red boxes. Click
jdk-11.10.18_windows-x64_bin.exe
to begin your download.- For Mac users, download the ARM 64 DMG Installer. Ensure you are on the “macOS” page and download the correct
version, in the red box. Click
jdk-11.0.18_macos-aarch64_bin.dmg
to begin your download
- For Mac users, download the ARM 64 DMG Installer. Ensure you are on the “macOS” page and download the correct
version, in the red box. Click
-
-
Next, open the downloaded installer and follow the instructions on the installer to install Java 11.
-
After installing Java 11, please download the latest release of the
MoneyGoWhere.jar
file. Click onMoneyGoWhere.jar
to automatically download the file. Ensure that it is the latest version (the one with the biggest number). -
Find
MoneyGoWhere.jar
in your Downloads folder. -
Open
cmd
and navigate to the folder where theMoneyGoWhere.jar
file is. If you are unsure of how to do so, follow steps 6 to 8. Otherwise, you may skip ahead to step 8. -
Open a terminal by entering
cmd
in your start menu and select the first option that appears. -
Get the file path of
MoneyGoWhere.jar
in your computer. To easily do so, you can do the following:-
For Windows users, right-click the file and select the “Properties” option. Then, copy the text under “Location”.
-
For Mac users, right-click the file and select “Copy”.
-
-
In the CLI, navigate to the location of the folder by typing
cd
, type or paste the file path that you found from the previous step by pressingCTRL
andV
keys at the same time on your keyboard, then press enter.- For example, if the file path that you have is
C:\Users\natas\Downloads\Folder
, then you should entercd C:\Users\natas\Downloads\Folder
into the CLI.
- For example, if the file path that you have is
-
Use the command
java -jar MoneyGoWhere.jar
to launch MoneyGoWhere. If done correctly, you will see this on your first start up:Note that returning users will not see the first two lines. Instead, they will see our logo and the remaining text.
- When you are done using the app, enter
exit
to shut the application down or simply close the window by clicking on theX
on the top right hand corner of the CLI.
Back to table of contents
MoneyGoWhere Commands
📖 Meet John! He will be a character that is constantly referenced throughout the next few sections to better explain how the commands work. John is an aspiring hawker, and plans on running a new stall at The Deck in NUS.
💡 For new users, it is recommended to read the sections labelled as For New Users. These sections will bring you through using command in a guided, step-by-step manner. As you become more familiar with MoneyGoWhere and want to speed up using the application, we recommend reading sections labelled as For Experienced Users. In these sections, we provide examples on how to use each feature with just a single line of input.
💡 Even though the New User and Experienced User command are entered into the application slightly differently, they both work exactly the same. In other words, there is nothing that the Experienced User command can do that the New User command cannot.
Back to table of contents
Style Features
For the following sections, all examples on how to run commands are shown through pictures. There are four things to take note of:
- Standard text printed by the application is written in white.
- User input is signified and is written in
blue . - Success messages and examples of expected output is written in
green . - Error messages are written in
red .
When you use the application, the text on your screen will be in white.
We have chosen to color-code our examples to make it easier for you to follow along and tell apart different parts of the examples.
Here is an example of what you can expect to see in this Guide.
For those reading the New User sections, do also note the following:
- At any point, if you wish to exit from the command, you can do so with
/cancel
For those reading the Experienced User sections, do also note the following:
- Any words surrounded by
<>
, such as<price>
are for you to fill in. - Options that are surrounded by
{}
, such as{-n "<name>"}
are optional. - All values have to be accompanied by options (begins with
-
, such as-n
or--price
). Commands such as/deleteitem delete -i 10
will be an invalid command.
Back to table of contents
Summary of Features
There are 10 features built into MoneyGoWhere, as described in the table below. More details are provided in their individual sections.
Name | Description |
---|---|
Help | Displays information about various commands |
Item Features | |
Add an Item | Adds an item to the menu |
Delete an Item | Deletes an item from the menu |
List All Items | Lists items in the menu |
Update an Item | Updates an item in the menu |
Find an Item | Finds an item in the menu, based on its name |
Order Features | |
Add an Order | Adds an order, with the index and quantity of each item |
List All Orders | Lists all orders |
Refund an Order | Refunds an order based on the unique order ID |
Statistics | |
Statistics and Reports | Generates a report based on various options |
Back to table of contents
Help
This command displays information about the other commands available in MoneyGoWhere.
📖 John has just downloaded MoneyGoWhere. Unlike you, he does not know that MoneyGoWhere has a user guide and wants to find out more about the various commands offered by MoneyGoWhere. To find out more about the commands offered, he can use thehelp
commands. Currently, all he knows is that he can dohelp
, or/help
.
💡 The help command does not accept any other input. Entering anything other thanhelp
or/help
will cause an error.
For New Users
📖 As someone who is unfamiliar with the application, John wants to be guided step-by-step to use MoneyGoWhere. To view the commands available to him, he can use the help
command.
- When John enters
help
, MoneyGoWhere prints out all the various commands he can use. With the information printed out, he also now knows that there is a user guide!
For Experienced Users
📖 In the future, John develops a love for typing and now prefers to use just one line to complete a command. He can use the /help
command to view how to use these single-line commands.
- When John enters
help
, MoneyGoWhere prints out all the various commands he can use. With the information printed out, he also now knows that there is a user guide!
Error Messages
1. Adding words or letters after the command
MoneyGoWhere does not allow for additional letters or words after the help
command word.
Solution: Only enter the command word, help
or /help
.
Back to table of contents
Item Features
Before you start taking orders, you will need to set up your menu. This must be done at least once.
Depending on the size of your menu, you may need to spend quite a bit of time to add all of your menu items into MoneyGoWhere. It is important that you do this before opening shop for the day, to ensure that your business can be run without any disruptions.
You may continue to add new items to the menu at any point of time.
Item Table of Contents
Add an Item
If you need to add an item to the menu, you can use this command. To add an item, you will need the item’s name and price.
📖 John wants to run a Chicken Rice store. Currently, he only has two things to sell and has already set the cost: White Chicken Rice ($4.50) and Egg ($0.80). He will need to use the additem
command to add these two items.
💡 There are restrictions for the name and price of items, as shown below:
Option | Description | Restrictions |
---|---|---|
Item Name |
The name of the item. | Any input that is not empty and has less than 25 characters. It cannot only have numbers. |
Price |
The price of the item. | A number, with up to 2 decimal places. For example, 1 , 10.23 and 5.20 are valid inputs. However, 1.234 is not a valid input. Avoid entering a high number, ie. above 100,000 as it may cause unexpected results. |
For New Users
This example will show you how to add an item step-by-step.
-
John starts the application for the first time. He sees the greeting and knows that he set up the application correctly. Now, he wants to add White Chicken Rice, which costs $4.50 to the menu.
-
He sees that he is successful and feels happy that the application is easy to use. Now, he wants to add Egg, which costs $0.80 to the menu.
-
Lastly, John uses
listitem
to check that he has added the items correctly.
For Experienced Users
💡 To use the command in this manner, remember to add a/
before the command, such as/additem
.
Command Format
These are the different command formats that are accepted when adding a new item into the menu.
/additem --name "<item name>" --price <price>
/additem -n "<item name>" -p <price>
You may also interchange the location of the options in the commands.
For example, the following command is also valid.
/additem -p <price> -n "<item name>"
This example below will show you how to add an item in a single command.
-
John starts the application for the first time. He sees the greeting and knows that he set up the application correctly. Now, he wants to add White Chicken Rice, which costs $4.50 to the menu.
-
He sees that he is successful and feels happy that the application is easy to use. Now, he wants to add Egg, which costs $0.80 to the menu.
-
Lastly, John uses
listitem
to check that he has added the items correctly.
Error Messages
❗ The next few examples are invalid inputs, designed to show off some error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Name already exists
MoneyGoWhere does not allow for multiple items with the same name. If you try to put in an item with the same name, you will get the following error.
Solution: Use a different name.
2. Price has more than two decimal places
MoneyGoWhere does not allow you to enter a number with more than two decimal places. This is because there are no such denominations in real life.
Solution: Limit the price to 2 decimal points.
Back to table of contents
List all Items
To see all the items you have entered in your menu, use this command!
📖 John has spent the past 10 minutes entering all the items he plans to sell. Happy with his work, he wants to look at all the items in the menu to make sure that everything has been entered correctly. To view the items in his menu, he will need the listitem
command.
💡 This command uses only one word. Adding anything else after the command will cause MoneyGoWhere to not recognize the command.
-
John has added 10 items to the menu, and he wants to check that they are all correct. He uses the command
listitem
or/listitem
to do so.
💡 Notice typos? Don't worry, it's intentional! These typos will be used in later sections.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Adding words or letters after the command.
Adding anything after listitem
or /listitem
will cause the command to be invalid.
Back to table of contents
Delete an Item
If you decide to stop selling a particular item, you can remove it from the menu with this command.
💡By using this command, you may potentially change the other index numbers of your other menu items. This may or may not affect the way you add items to orders. It is recommended that you use listitem
to confirm if there are any changes.
To view more about listitem, click here.
📖 As per the previous example, John currently plans to sell Fried Rice. However, after asking his friends, he realized that no one wants to buy Fried Rice from a Chicken Rice stall. The menu currently looks like this:
So, he has decided to delete Fried Rice, which has an index of 8 from his menu using
the deleteitem
command.
💡 There are restrictions for the index, as shown below:
Option | Description | Restrictions |
---|---|---|
Index |
The position of the item in the menu. | The entered number must be a valid index number from listitem . The entered number cannot be a negative number. |
For New Users
- John wants to delete Fried Rice, which has index number 8.
For Experienced Users
Command Format
/deleteitem --index <index>
/deleteitem -i <index>
💡 To use the command in this manner, remember to add a/
before the command, such as/deleteitem
.
- John wants to delete Fried Rice, which has index number 8.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Invalid Index
You will not be able to delete an item if the index number of that item does not exist in the menu. In other words, you cannot remove something that does not exist!
Solution: Use a valid index.
Back to table of contents
Update an Item
Realised you entered the wrong name or price? You can update your items with this command !
📖 John has been happily using MoneyGoWhere to input all his items. However, he is a bit clumsy and entered a few wrong things. This is what the menu currently looks like:
He wants to change two things. First, the word "Vegebatles", at index number 6, is spelt
wrongly. Also, he wants to increase the price of "Vegetables" to $2.00.
Next, the item "Curry Chicken Rice" should cost $5.50. He can update these items with the updateitem
command.
💡 There are restrictions for the index, name, and price of items, as shown below:
Option | Description | Restrictions |
---|---|---|
Index |
The index number of the item. | Must be a valid index from listitem , cannot be a negative number. This option is compulsory. |
Name |
The new name of the item. | It cannot already exist in the menu. This option is not compulsory. |
Price |
The new price of the item. | It can have at most two decimal places. This option is not compulsory. |
For New Users
-
John wants to change spelling of the word “Vegebatle” to “Vegetable”. To do so, he first enters the command
updateitem
, then confirms that he wants to change the name. He puts in the correct spelling, without quotation marks, and then indicates he does not want to change the price. -
John wants to change the price of “Curry Chicken Rice” to $5.50, instead of $55. To do so, he first enters the command, indicates he does not want to change the name, then confirms he wants to change the price. He then puts in the correct price.
-
After updating, John checks to make sure that the items are now correct with
listitem
.
For Experienced Users
Command Format
/updateitem --index <index> {--name "<name>"} {--price <price>}
/additem -i <index> {-n "<name>"} {-p <price>}
Name and Price
- Do note that of the two, at least one must be present in the command. This means that you can have one of the following combinations in it:
- Name,
- Price, or
- Name and Price
💡 To use the command in this manner, remember to add a/
before the command, such as/updateitem
.
-
John wants to change the name “Vegebatle” to “Vegetable”. The item is currently at index 6.
-
Next, John wants to change the price of “Curry Chicken Rice”, at index 8, to $5.50 instead of $55.
-
After updating, John checks to make sure that the items are now correct with
/listitem
.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Missing Index
Without indicating the index, MoneyGoWhere will not know what item you want to update.
Solution: Include the index.
Back to table of contents
Find an Item
If you forget the index of an item, or want to see all items with a specific word in the name, you can use this command.
📖 It's a new day and John wants to continue exploring MoneyGoWhere. However, his memory isn't the best, and he cannot remember how many items he has with the word "Chicken" in the name. So, he wants to find all of these items, with the finditem
command.
💡 There are restrictions for keyword, as shown below:
Option | Description | Restrictions |
---|---|---|
Keyword |
The name or part of the item name you are searching for. | The keyword cannot be empty. |
For New Users
- John enters the command, and then enters “chicken” to search for all items that have “chicken” in the name, regardless of whether the item name contains capital letters.
For Experienced Users
Command Format
/finditem "<keyword>"
💡 To use the command in this manner, remember to add a/
before the command, such as/finditem
.
- John enters the command, and then enters “chicken” to search for all items that have “chicken” in the name, regardless of capitalization.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User command if the mistake is made.
1. Not entering a keyword
Without a keyword, MoneyGoWhere will not know what to look for your menu.
Solution: Include the word or letters you want to look for.
Back to table of contents
Order Features
If you have been successful in adding items to your menu, congratulations! You are now ready to start taking orders.
During business operations, you will be spending almost all of your time adding orders on MoneyGoWhere.
Therefore, it is a good idea to give this section a read if you want to familiarise yourself with adding orders.
Order Table of Contents
Add an Order
After adding your items to the menu, you can begin to take orders from your many customers with this command.
Once an order has been added, the program will calculate the total cost of the order. You will then be asked to enter how much the customer gives you into the program, and MoneyGoWhere will calculate the change for you.
📖 A few days later, John's Chicken Rice stall is finally open! John is so happy that he has MoneyGoWhere as it is very easy and intuitive to use. After familiarizing himself with the system, John is ready to take an order from his hungry customers.
His menu currently looks like this:
His first customer orders just one plate of Roast Chicken Rice, and the second orders two
plates of White Chicken Rice, and two eggs.
To add their orders, he will use the addorder
command.
💡 There are restrictions for the index/name and quantity of items, as shown below:
Option | Description | Restrictions |
---|---|---|
Index/Name |
The index number or name of the item in the menu. | If you choose to enter an index number, it must be a valid index number from listitem . The index number cannot be negative. You may also choose to enter the full or partial name of the item. However, the entered part of the name must be specific. In other words, if your menu contains items with names such as Chicken Rice , Chicken Noodle , and Cereal , then you at least have to enter chicken r , ice , or rice so that the program knows that you are trying to enter Chicken Rice and not any of the other two items. |
Quantity |
The number of the specified menu item that the customer wishes to order. | The quantity cannot be negative, and avoid entering numbers larger than 10000 as it can cause the program to work incorrectly. |
💡 As for payment, there are restrictions for the amount, and payment type:
Option | Description | Restrictions |
---|---|---|
amount |
The amount paid by your customer. | Can have up to two decimal points, and has to be the same or greater than the cost of the order. |
type |
The type of payment. | The accepted inputs are cash , card , or others . |
For New Users
-
John enters the command
addorder
.He forgets the index of “Roast Chicken Rice”, and instead chooses to search by name instead of index. Take note that the item name must be entered within
""
marks.Next, he enters the quantity and states that he has no more items to add. As the customer pays with cash, John then enters the payment information.
💡 When prompted to add more items, entering anything other than the provided inputs will cause MoneyGoWhere to interpret the input as
cancel
. -
For the second customer, John repeats the same process.
He enters the command, then the index of “White Chicken Rice” and indicates the quantity.
He repeats the same process for adding “Egg” to the order, then completes the process by entering the payment details.
For Experienced Users
Command Format
There are two main ways in which an order can be entered using a single /addorder
command. Listed below are the
acceptable formats of the /addorder
command.
- To add a single item into an order, using the item index, by using the item name, or by using part of
the item name,
use any of these formats:
/addorder -i <index> -q <quantity>
/addorder --item <index> -q <quantity>
/addorder -i "<name>" --quantity <quantity>
/addorder --item "<name>" --quantity <quantity>
If the quantity is not specified, it will be set to 1.
- To add multiple items into an order using the item indexes, by using the item names, or by using part
of the item
names, use any of these formats:
/addorder -I [<index>:<quantity>,"<name>":<quantity>,...]
/addorder --items [<index>:<quantity>,"<name>":<quantity>,...]
💡 To use the command in this manner, remember to add a/
before the command, such as/addorder
.
Here is an example of how the /addorder
command may be used to add orders.
-
John enters the command
/addorder
. He uses the index of “Roast Chicken Rice”, and enters the quantity.As his customer pays with cash, John then enters the payment information with the
/pay
command and by entering the customer’s payment details based on the instructions from the program. -
For the second customer, John temporarily forgets the index of “White Chicken Rice”.
As he knows there is only one item with “White Chicken” in the name, he enters that as the first item, along with the quantity.
Then, he uses the index of “Egg”, along with the quantity. After adding both items, he proceeds to enter the payment.
This time, the customer chose to pay by card, which John enters into the application to reflect that mode of payment.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Insufficient cash
This error message will appear when the customer attempts to pay an amount less than the total cost of their order.
Solution: Ensure that the customer pays more than or the exact cost of the order.
2. Paying with card
When your customers pay with their card, entering an amount different from the subtotal will be rejected.
Solution: Enter the exact price of the order into the program.
Back to table of contents
List all Orders
After a long, busy, and profitable day, you can use this command to review all the orders you have entered.
This feature allows you to view the cost, order IDs, the items included in each order, and the time at which the orders were made.
📖 John's first day is a huge success! He has fed so many hungry students and could see them enjoying his delicious food. At the end of the day, he wants to take a look at all the orders he has taken over the day. He will use the listorder
command.
Note: Only the first two orders will be shown to reduce the length of the user guide.
💡 This command uses only one word. Adding anything else after the command will cause MoneyGoWhere to not recognize the command.
-
John uses the command
listorder
or/listorder
to look through all his orders.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Adding words or letters after the command.
As mentioned, adding anything after listorder
or /listorder
will cause the command to be an invalid error.
Back to table of contents
Refund an Order
Did you enter the wrong item, or did a customer change their mind after paying for an item?
Don’t worry! If the order has not yet been served or if you allow it, you can use this command to mark an order as refunded.
📖 After using MoneyGoWhere for a few days, John has encountered his worst nightmare: an indecisive customer! This customer wanted Curry Chicken Rice with Vegetables, but has now changed his mind. Not wanting to receive bad reviews about his newly opened stall, John decides to give in to his demands for a refund. John checked his list of orders using thelistorder
command, and found out that the order ID is 9a382d0f-81ee-4855-b29e-547e8e164f9a. John needs to refund the order, and can do so with therefundorder
command.
💡 There are restrictions for the name and price of items, as shown below:
Option | Description | Restrictions |
---|---|---|
Order ID |
A randomly generated order ID. | The entered ID must be a valid entered as shown exactly from the output of the listorder command. |
For New Users
- John uses
listorder
to look through the list of orders and gets the ID as9a382d0f-81ee-4855-b29e-547e8e164f9a
. He then copies the ID. - Next, he uses the command
refundorder
and inputs the copied order ID from earlier, when asked to do so by the program.
For Experienced Users
Command Format
/refundorder -i <order_id>
💡 To use the command in this manner, remember to add a/
before the command, such as/refundorder
.
- John uses
/listorder
to look through the list of orders and gets the ID as9a382d0f-81ee-4855-b29e-547e8e164f9a
. He copies the order ID from the CLI. - Next, he uses the command
/refundorder
and inputs the copied order ID from earlier.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages. Additionally, these error messages will be shown for both New User and Experienced User commands if the mistake is made.
1. Wrong order ID.
If you entered an invalid or non-existent order ID, MoneyGoWhere will not recognise it.
Solution: Copy the order ID directly from listorder
and paste it to ensure there are no errors.
</br>
Back to table of contents
Statistics and Report
This important feature of MoneyGoWhere allows you to generate reports to view sales data. For now, there is only one way to generate reports.
📖 At this point, John has been running the stall for a few months. He's making so much money that it is hard for him to keep track of how much money he has made. He wants to see four things: 1. For the year 2023, which items bring in the most income? 2. For the month of January, which were ordered the most? 3. John wants to check how his income has changed over the year. 4. John wants to check his income for the first 10 days of March.
Command Format
/report {--rank <type>} {--sale <type} {--year <year>} {--from <start-date> --to <end-date>}
/report {-r <type>} {-s <type} {-y <year>} {-f <start-date> -t <end-date>}
💡 We understand that these command formats may be complicated. Here is a refresher on how such formats can be more easily understood.
1. Any words surrounded by<>
.
2. Options that are surrounded by{}
are optional.
3. All values have to be accompanied by options (begins with-
, such as-n
or--price
). Commands such as/deleteitem delete -i 10
will be an invalid command.
💡 There are restrictions for options, as shown below:
Option | Description | Accepted Inputs |
---|---|---|
rank |
Order items in the menu based on criteria. | sales or popular |
sale |
Shows your income based on criteria. | daily or monthly |
year |
The year you are trying to generate a report for. | A year in the format YYYY . Entering a negative year will cause the application to not work as intended |
from and to |
The start and end dates you are trying to generate a report for. | A date in the format DD/MM/YYYY |
Don’t worry if you find yourself still confused by the format. We admit, it is pretty complex. So, let’s break it down:
Rank vs Sale
Of the two, only one can be present in your command.
- When generating your report, you can choose between the options
rank
orsale
.- Rank orders the items on your menu based on either
sales
(monetary income) orpopular
(quantity ordered). - Meanwhile, Sale shows your income, either on a
daily
basis ormonthly
basis.
- Rank orders the items on your menu based on either
Year vs From/To
Of the two, only one can be present in your command.
- You can choose which dates to generate the report.
- Year takes the format
YYYY
- From/To takes the format
DD/MM/YYYY
- Year takes the format
📖 Now, we will show you how John was able to use this command to achieve his goals.
-
John indicates the
rank
option to besales
, and theyear
to be2023
. -
John indicates the
rank
option to bepopular
, and the date range to be from01 Jan 2023
to31 Jan 2023
. -
Now, he wants to look at his monthly sales report for 2023. He indicates the
sale
option to bemonthly
and enters2023
for theyear
option.Note that the remaining months have been removed as they are all empty.
-
Lastly, he wants to check his daily sales report for the first 10 days of March 2023. He indicates the
sale
option to bedaily
and enters the date range01/03/2023
to10/03/2023
.
Error Messages
❗ The next example is an invalid input, designed to show off the error messages we have in place. This is not the full list of error messages.
1. Generating a Montly Sale report with From/To
This happens when you try to generate a montly sale report without using the year
option.
Solution: When generating a monthly sale report, use the year
option.
2. Wrong Date Format
This happens if you enter the wrong format for the date, such as swapping the month and day.
Solution: Use the correct format of DD/MM/YYYY
.
Back to table of contents
Frequently Asked Questions
Q: I’m switching to a new laptop. Do I need to re-enter all the items on my menu? And what about my transactions?
A: Don’t worry! At MoneyGoWhere, we understand that you may change the laptop you use. When changing to a new laptop, simply copy the entire folder! This way, the application and all your data will stay the same across devices.
Q: Where is my save file?
A: Your menu and transaction list are stored in a folder called datastore
. Inside it, you should see two
files: menu.json
and orders.json
. However, all changes to your data should be made through the application itself,
as we are not liable for any data loss as a result of tampering with those files.
Back to table of contents
Glossary
Term | Explanation |
---|---|
Computer Program | An application or app that you run on computers. |
Point-of-Sale System | A set of devices, software and payment services merchants use to make and track sales in person. |
Hyperlink | A phrase or text that you can click. |
CLI | An abbreviation for Command Line Interface. |
Command Line Interface | A text-based interface. This means there are no icons to click and everything has to be typed. |
Command | An instruction given to the program. |
Terminal | A tool used to run CLI commands and other tools. It accepts text input and outputs text. |
Copyright | A type of intellectual property that gives its owner the exclusive right to copy, distribute, adapt, display, and perform a creative work. |
Decimal Places | The number of digits behind a decimal point. For example 2.123 has 3 decimal places, while 4.20 has 2 decimal places. |
Index | A set of ordered numbers used to uniquely indicate items in a list. For example, index numbers are used to uniquely identify the different levels of a building. |
Option | Used to specify instructions and change the behaviour of a command. In this application, options have a short-form and a long-form, for example, in the case of -n and --name . |
Tampering | The act of intentionally changing an object, in this case, a file, that is not intended to be changed. |