By: CS2113T-W12-4
Since: Jun 2016
Licence: MIT
1. Introduction
Drink I/O is a desktop application that helps you to manage your drink distribution company. You can use Drink I/O to keep track of your inventory and analyse your company’s sales performance. Drink I/O is optimised for Command Line Interface (CLI), allowing you to manage your company faster than traditional Graphical User Interface (GUI) apps, while retaining the benefits of a GUI
This user guide provides comprehensive documentation on the Drink I/O setup process, the features you can access and the commands you can use. Choose a topic from the Table of Contents above to find answers, get instructions and learn to improve your workflow with Drink I/O.
1.1. How to use this guide
General Command Format
-
Words in UPPER_CASE are the parameters supplied by users
-
Use underscore for spaces for fields other than
NAME
-
Parameters can be supplied in any order as tags are specified
-
e.g.
p/' for selling price, `n/
for name
-
-
Parameters in square brackets are optional
2. Quick Start
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
DrinkIO.jar
here. -
Copy the file to the folder you want to use as the home folder for your Address Book.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Refer to Section 3.1, “Logging in” to login the product.
-
After login in, the main window will appear as shown below.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
<to be added>
-
Refer to Section 3, “Getting Started” for details of each command.
3. Getting Started
3.1. Logging in
Upon entering starting up the application, you will be met by the login page below:
To login, you can use either the CLI or GUI to input your USERNAME
and PASSWORD
.
GUI Login
-
Enter your
USERNAME
andPASSWORD
into the respective username and password fields -
Click on the LOGIN button
CLI Login
-
Enter your
USERNAME
andPASSWORD
into the terminal in this format-
Format:
USERNAME
PASSWORD
-
-
Press the ENTER key
|
Examples for CLI input:
User Name | Password | Authentication Level |
---|---|---|
tester |
123 |
ADMIN |
manager |
123 |
MANAGER |
stocktaker |
123 |
STOCKTAKER |
accountant |
123 |
ACCOUNTANT |
The example provided is a default login account for admins. This account is created only for testing purposes. |
After successfully logging in, a confirmation message would be shown indicating your authentication level:
3.2. Logging out
Logging out of the application will bring you back to the login screen.
-
To log out, enter the following command into the command bar
-
Command format:
logout
-
-
Press the ENTER key
4. Types of Users
In small-scale drink distribution companies, there are generally 3 critical roles and responsibilities to keep the company running:
-
Stock taker
-
Accountant
-
Manager
This is taken into account in Drink I/O. Each role has a different type of Drink I/O account, and in a specific role, you can work with functions that are tailored to your role.
4.1. Stock Taker
As the stock taker is primarily in charge of updating inventory, the Stock Taker account has tailored access to the inventory manager.
4.2. Accountant
The accountant has access to Drink I/O's financial analysis tools in the Accountant account.
4.3. Manager
A manager has access to adding, deleting and editing drinks, as well as creating accounts for other employees using the Manager account.
5. Managing Your Drink I/O Account
Drink I/O has a login feature. This ensure that every user has to have an account before using the application. Hence, it would increase the security of the application.
5.1. Confirmation of Command
When you enter command that will change the data storage, you will be prompted with a message as shown below:
If you have confirmed the command, key in y or Y to confirm.
5.2. Changing your password
When you receive an account from manager, you want to change the password to increase security.
Format: changePassword o/[OLD_PASSWORD] n/[NEW_PASSWORD]
Examples for changePassword:
-
changePassword o/123 n/1234
If password changes is successful, a message will be shown:
5.3. Create additional account
As a manager or administrator, you want to create new account for new employee.
Format: createAccount u/USER_NAME p/PASSWORD a/AUTHENTICATION_LEVEL
AUTHENTICATION_LEVEL
must be one of:
-
ADMIN
-
MANAGER
-
STOCKTAKER
-
ACCOUNTANT
Examples for create new account:
-
createAccount u/tester2 p/myPassword a/ADMIN
If create account is successful, a message will be shown:
5.4. Delete account
As a manager or administrator, you might want to delete a account when it is no longer used.
Format: deleteAccount u/USER_NAME
Examples for delete old account:
-
deleteAccount u/tester
If delete account is successful, a message will be shown:
6. Managing Your Inventory
The core feature of Drink I/O is to manage your company’s inventory. This includes the adding of drinks into the inventory, deleting, viewing their details and updating these details.
In Drink I/O, each drink has a unique name, a selling price, a cost price, stock count and tags that allow you to classify the drink (e.g. soft drink, tea) and enter any other information.
6.1. Adding new drinks
You can add new drinks into your inventory to let Drink I/O track them.
Summary
|
Step-by-Step Instructions
To enter a new drink into Drink I/O,
-
Enter
add
into the command box -
Key in
n/
, followed by name of drink (NAME
) -
Key in
p/
, followed by default selling price of 1 carton of the drink (SELLING_PRICE
) -
Key in
cp/
, followed by default cost price of 1 carton of the drink (COST_PRICE
) -
Press enter
-
Confirm the command by entering
y
orY
-
Press enter
-
Check whether the drink has been recorded successfully in the system
-
If you see the message "New drink added", followed by the drink’s details that you entered, the drink has been successfully entered into Drink I/O
-
The drink will also appear at the bottom of the inventory list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
|
6.2. Searching for specific drink(s)
Finds drinks which meet specific criteria depending on the input prefix.
Summary |
6.2.1. Searching by drink name
You can search for specific drinks by name using this search function
Finds all drinks which names contain any of the given keywords.
Format: find n/KEYWORD [MORE_KEYWORDS]
Examples:
-
find n/Tea
ReturnsMilk Tea
andGreen Tea
-
find n/Tea Milk Coke
Returns any drink havingTea
,Milk
, orCoke
in their names
6.2.2. Searching by drink quantity
To find out which drinks in your drink company are in need of restocking, you can utilise this search function which will return the drinks with quantity less than or equal to the quantity input.
Finds all drinks which have quantity less than or equal to the given quantity.
Format: find q/QUANTITY
Examples:
-
find q/400
ReturnsCoke
andGreen Tea
which have a quantity less than 400
6.2.3. Searching by batch import date
To find out which drinks have been in the warehouse for a long period of time you can utilise this search function which will return the drinks that have batches older than or have the same date as the date input.
Find drinks which have batches that are older or have the same date as the given date.
Format find d/DATE
Examples:
-
find d/02/11/2018
Returns all drinks which have batches imported on or before 2nd November 2018 -
find d/9/11/2018
Returns all drinks which have batches imported on or before 9th November 2018
6.3. Viewing all drinks in inventory
To show the full list of drinks in the inventory list, use list
.
This is especially useful after using a find
command.
Summary |
Step-by-Step Instructions
To view all drinks in Drink I/O,
-
Enter
list
into the command box -
Press enter
-
You will see all the drinks listed in the inventory panel on the left of the interface.
Format: list
6.4. Viewing drink details
To view further details of the drink such as its batches that are not displayed on the drink card panel, you can simply click on the relevant drink card to select it or use the select command.
Selects the drink identified by the index number used in the displayed drink list.
Format: select INDEX
6.5. Updating drink details
You can change the cost price, selling price and tags of a drink.
For even greater efficiency, Drink I/O allows you to edit the above fields simultaneously.
You can do this by specifying multiple fields to edit in a single command.
For power users
|
6.5.1. Updating cost price
Drink I/O allows you to change the cost price of a drink after adding it.
Summary
|
Step-by-Step Instructions
To edit the cost price of a drink in Drink I/O,
-
Enter
edit
into the command box -
Enter the inventory list bullet number corresponding to the desired drink (
INDEX
) -
Key in
cp/
, followed by new cost price (COST_PRICE
) -
Press enter
-
Check whether the drink details have been edited successfully in the system
-
If you see the message "Edited drink", followed by the updated drink details, the drink’s cost price has been successfully edited into Drink I/O
-
The drink’s updated details will also be updated in the inventory list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
6.5.2. Updating selling price
Drink I/O allows you to change the selling price of a drink after adding it.
Summary
|
Step-by-Step Instructions
To edit the selling price of a drink in Drink I/O,
-
Enter
edit
into the command box -
Enter the inventory list bullet number corresponding to the desired drink (
INDEX
) -
Key in
p/
, followed by new selling price (SELLING_PRICE
) -
Press enter
-
Check whether the drink details have been edited successfully in the system
-
If you see the message "Edited drink", followed by the updated drink details, the drink’s cost price has been successfully edited into Drink I/O
-
The drink’s updated details will also be updated in the inventory list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
6.5.3. Updating tags
Drink I/O allows you to change the optional tags of a drink after adding it.
Summary
|
Step-by-Step Instructions
To edit the tags of a drink in Drink I/O,
-
Enter
edit
into the command box -
Enter the inventory list bullet number corresponding to the desired drink (
INDEX
) -
Key in
t/
, followed by new tag (TAG
)-
If you wish to clear tags, enter only
t/
-
You may enter multiple tags. An example to do so:
t/TAG_1 t/TAG_2
-
-
Press enter
-
Check whether the drink details have been edited successfully in the system
-
If you see the message "Edited drink", followed by the updated drink details, the drink’s cost price has been successfully edited into Drink I/O
-
The drink’s updated details will also be updated in the inventory list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
Editing the tags will replace all existing tags of the drink with the new specified tags. |
7. Managing Transactions
To manage the purchases and sales of drinks, you can record them into Drink I/O, and let Drink I/O handle the updating of the inventory for you in real-time. These transactions also facilitate financial analyses (see Section 8, “Analysing Sales Performance”).
7.1. Creating a purchase transaction
When you make a purchase, you can increase your stocks by entering a purchase transaction.
Summary
|
Step-by-Step Instructions
To record a purchase transaction,
-
Enter
buy
into the command box -
Key in
n/
, followed by name of drink (NAME
) -
Key in
q/
, followed by quantity purchased (QUANTITY
) -
Press enter
-
Confirm the command by entering
y
orY
-
Press enter
-
Check whether the transaction has been recorded successfully
-
If you see the message "Purchase transaction recorded!", followed by the transaction details, the transaction had been successfully entered into Drink I/O
-
The transaction will also appear at the bottom of the transaction list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
The drink you want to transact must be recorded in Drink I/O. The drink name is case-sensitive. Otherwise, you will see the message "The drink entered does not exist in the inventory list", and the transaction will not be entered into the system. |
7.2. Creating a sale transaction
When you make a sale, you can decrease your stocks by entering a sale transaction.
Summary
|
Step-by-Step Instructions
To record a sale transaction,
-
Enter
sell
into the command box -
Key in
n/
, followed by name of drink (NAME
) -
Key in
q/
, followed by quantity transacted in sale (QUANTITY
) -
Press enter
-
Confirm the command by entering
y
orY
-
Press enter
-
Check whether the transaction has been recorded successfully,
-
If you see the message "Sale transaction recorded!", followed by the transaction details, the transaction had been successfully entered into Drink I/O
-
The transaction will also appear at the bottom of the transaction list panel
-
-
If not, follow the instructions displayed in the message display pane, and re-enter the command
-
|
7.3. Viewing transactions
You can view all the transactions entered into Drink I/O to verify their accuracy.
Summary |
Step by Step Instructions
To view all transactions entered,
-
Enter
viewTrans
into the command box -
Press enter
You will see a list of all transactions displayed in the transactions panel.
8. Analysing Sales Performance
Drink I/O can calculate the overall cost, revenue and profit aggregated across all drinks, for various periods based on your list of transactions.
8.1. Indicating time period for analysis
You can indicate the time period for the analysis of overall sales figures.
Summary
|
The time periods available are:
-
within the current day
-
within the week (including current day)
-
within 30 days (including current day)
To indicate the time periods desired in your analysis, append one of the following period parameters to the end of the command:
-
-w
for a period of a week -
-m
for a period of 30 days
No parameter is required for analysis in the period of a day. See Section 8.2, “Viewing overall cost” for concrete usage examples and step-by-step instructions.
8.2. Viewing overall cost
You can check the total costs incurred by your company, over a specified period.
Summary
|
Step by Step Instructions
-
To view the total costs incurred within the current day:
-
Enter
costs
into the command box -
Press enter
-
You should see the value of the total costs displayed in the results panel.
-
To view the total costs incurred within the past 7 days (inclusive of current day):
-
Enter
costs -w
into the command box -
Press enter
-
You should see the value of the total costs incurred over the week displayed in the results panel.
-
To view the total costs incurred within the past 30 days (inclusive of current day):
-
Enter
costs -m
into the command box -
Press enter
-
You should see the value of the total costs incurred over the past 30 days displayed in the results panel. The transactions list will also show the relevant transactions included in the analysis.
8.3. Viewing overall revenue
You can check the total revenue earned by your company, over a specified period.
Summary
|
Step by Step Instructions
To view the total revenue earned,
-
Enter
revenue
into the command box -
Append a desired period parameter
-
e.g.
-w
,-m
(see Section 8.1, “Indicating time period for analysis”)
-
-
Press enter
You should see the value of the total revenue earned in the specified period displayed in the results panel. The transactions list will also show the relevant transactions included in the analysis.
8.4. Viewing overall profit
You can check the total profit earned by your company, over a specified period.
Summary
|
Step by Step Instructions
To view the total profit earned,
-
Enter
profit
into the command box -
Append a desired period parameter
-
e.g.
-w
,-m
(see Section 8.1, “Indicating time period for analysis”)
-
-
Press enter
You should see the value of the total profit earned displayed in the results panel. The transactions list will also show the relevant transactions included in the analysis.
9. Overview of Role-Specific Commands
General Command Format
-
Words in UPPER_CASE are the parameters supplied by users
-
Use underscore for spaces for fields other than
NAME
-
Parameters can be supplied in any order as tags are specified
-
e.g.
p/
for selling price,n/
for name
-
-
Parameters in square brackets are optional
9.1. Global Commands
9.1.1. Exiting Program: exit
Exits program.
Format: exit
9.1.2. Viewing help : help
View help for respective users
Format: help
9.1.3. Change password: changePassword
Change password of the current account
Format: changePassword o/OLD_PASSWORD n/NEW_PASSWORD
This enables the user to change their password after manager create a default account. |
9.1.4. List all drinks: list
Lists all the drinks in the inventory.
Format: list
9.1.5. View all transactions: viewTrans
Lists all the transactions.
Format: viewTrans
9.2. Manager Commands
9.2.1. Viewing Help: help
Shows available commands with brief description of what a manager can do.
Format: help
9.2.2. Add new drink into inventory: add
Add a new drink to the drink inventory.
Format: add n/DrinkItem p/DEFAULT_SELLING_PRICE cp/DEFAULT_COST_PRICE
All the drinks added will be in a predefined list. As such, stock taker only able to add batches that is in this predefined list. |
9.3. Edit attributes of a drink: edit
Edits the cost price, selling price and tags of a drink.
Format: edit INDEX [cp/COST_PRICE] [p/SELLING_PRICE] [t/TAG]…
One or more of the parameters must be included in the command.
9.4. Stock Taker Commands
9.4.1. Viewing Help: help
Shows available commands with brief description of what a stock taker can do.
Format: help
9.4.2. Increase stock of a drink: buy
Records purchase of a drink.
Format: buy n/DRINK_NAME q/QUANTITY_PURCHASED
Examples:
-
buy n/coca cola q/12
DRINK_NAME is predefined by manager, so an alert message will appear if the drink name is not in the predefined list. In addition, drink name is case-sensitive. |
9.4.3. Decrease stock of a drink: sell
Record sale of a drink.
Format: sell n/DRINK_NAME q/QUANTITY_SOLD
Examples:
-
sell n/coca cola q/15
|
9.5. Accountant Commands
9.5.1. Viewing Help: help
Shows available commands with brief description of what the accountant account can do.
Format: help
9.5.2. Get the total profit of the company over specified periods: profit
View the total profit earned in time periods of a day, 7 days and 30 days (including current day).
Format: profit
To view profit earned up to now in the current day, no parameters are used. i.e. just |
9.5.3. Get the total revenue of the company over specified periods: revenue
View the total revenue earned in time periods of a day, 7 days and 30 days (including current day).
Format: revenue
To view revenue earned up to now in the current day, no parameters are used. i.e. just |
9.5.4. Get the total costs of the company over specified periods: costs
View the total costs incurred in time periods of a day, 7 days and 30 days (including current day).
Format: costs
To view costs earned up to now in the current day, no parameters are used. i.e. just |
9.5.5. Get the quantities of each drink item sold over specified periods: sales
[Coming in v2.0]
View the sales number of each drink item in a period specified by the starting date and ending date.
Format: sales STARTING_DATE ENDING_DATE
9.5.6. Get the trend of cost of every drink over specified periods: drinkcosts
[Coming in v2.0]
View the variation tendency of the cost of every ingredient in a period specified by the starting date and ending date.
Format: drinkcost STARTING_DATE ENDING_DATE
9.5.7. Exiting the program : exit
Exits the program.
Format: exit
9.6. Administrator Commands
9.6.1. Creating an account: createAccount
Creates a new Drink I/O account.
Format: createAccount u/USER_NAME p/PASSWORD a/AUTHENTICATION_LEVEL
9.7. Saving the data
Drink I/O data is saved in the hard disk automatically after any command that changes the drinks data
or updates the transactions.
There is no need to save manually.
11. FAQ
Q: How do I transfer my data to another computer?
A: Install Drink I/O in the other computer. Overwrite the empty data file Drink I/O creates
with the file that contains the data of your previous Drink I/O folder.