By: Team W14-4
Since: August 2018
Licence: MIT
Let Inventory Manager do the hard work of managing the shop inventory while you focus on making money.
Inventory Manager aims to tackle the chore of stock taking for Small to Medium Enterprises (SMEs). Designed to be easy to use, Inventory Manager gives you control over your business right from your keyboard.
Inventory Manager comes with features to manage the shop inventory such as creating sale orders, purchase orders, generating reports and more. With user authentication put in place, it gives SMEs greater control over users' access to the application too.
Get control over your shop’s inventory now by heading over to Section 3, “Quick Start”. Enjoy!
This guide introduces you to Inventory Manager, provides set up instructions and gives you an overview of the features available.
This document does not assume any prior technical knowledge, and the glossary explains any technical terms. Please check the FAQ section for frequent user issues.
This section will help you get started with Inventory Manager in 4 easy steps:
-
Ensure you have Java version 9 or later installed in your Computer.
-
Download the latest
InventoryManager.jar
here. -
Copy the file to the folder you want to use as the home folder for Inventory Manager.
-
Double-click the file to start the application. Inventory Manager should show up on your screen in a couple of seconds.
Congratulations! You have successfully set up Inventory Manager.
You can now type a command in the command box and press Enter to execute it.
A good start is entering the command help
and pressing Enter, it will open the help window.
As a first time user, you can enter the command login u/admin p/password
to login to the Inventory Manager as a
super-admin.
This super-admin account is a default administrator account.
Below are some other commands you can try after logging into the system:
-
list-item
: lists all items available -
exit
: exits the application
You can refer to Section 4, “Features” for details of each available features in Inventory Manager.
Each feature has it’s own unique command to be entered into the command box.
Command Format Explained
-
Words in
UPPER_CASE
are the parameters to be supplied by the user. For exampleadd n/NAME
.NAME
is a parameter which can be used asadd n/IPhone X
. -
Items in square brackets are optional. For example
add n/NAME [t/TAG]
can be used asadd n/IPhone X t/Expensive
or asn/IPhone X
. -
Items with
…
after them can be zero or more times. For exampleadd n/NAME [t/TAG]…
can be used asadd n/IPhone X
(i.e. 0 times) oradd n/IPhone X t/Firmware t/ExpiryDate
(i.e. 2 times). -
Parameters can be in any order. For example, if the command specifies
add n/NAME q/QUANTITY
,add q/QUANTITY n/NAME
is also acceptable.
Below are the general commands available for Inventory Manager.
The help
command brings up the help screen.
This command is available to any user.
Format: help
The history
command lists all the commands that you have entered, including valid and invalid commands, in reverse chronological order.
This command is available to any user.
Format: history
ℹ️
|
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
The undo
command restores Inventory Manager to the state before the previous undoable command was executed.
This command is available to members only.
Format: undo
ℹ️
|
Supported undoable commands: |
Examples:
-
Performing an undo on the delete command.
delete-item 1
list
undo
-
Performing an undo on the select command, which will fail as there is no undoable commands executed previously.
select 1
list
undo
-
Performing multiple undo commands.
delete-item 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete-item 1
command)
The redo
command reverses the most recent undo
command.
This command is available to members only.
Format: redo
Examples:
-
Performing a redo on an undo command.
delete-item 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
Performing a redo, which will fail as there was no undo command executed previously.
delete-item 1
redo
-
Performing multiple redo commands.
delete-item 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
The clear
command clears all entries from Inventory Manager.
This command is available to admin only.
Format: clear
The exit
command exits Inventory Manager.
This command is available to any user.
Format: exit
Users authenticate their identities prior using any other functions of the applications.
The following commands are only available to any members except login
which can be executed by any user.
The login
command allows the user to login with given username and password.
Format: login u/USERNAME p/PASSWORD
Example: Login the user with username as admin and password as password.
login u/admin p/password
The change-password
command updates the user’s password in the system with a given new password.
Format: change-password p/NEW_PASSWORD
Examples:
-
Change user’s password with a given new password as darrensinglenus.
change-password p/darrensinglenus
. -
Change user’s password with multiple new passwords provided. Only the final input, which is nussoccat, will be accepted.
change-password p/password p/nussoccat
.
The image below shows a user entering the change-password
.
Admin of the system manages the staffs who use this application.
The following commands are only accessible to the admin to manage the users.
The add-staff
command adds a user into the system.
Format: add-staff n/NAME u/USERNAME p/PASSWORD r/ROLE
Remark: ROLE
can only be either user
, manager
or admin
.
Examples:
-
Add staff with username as johnd, password as johndoe1, name as John Doe and role as manager.
add-staff u/johnd p/johndoe1 n/John Doe r/manager
. -
Add staff with username as damith, password as softengn, name as Damith Rajapakse and role as user.
add-staff u/damith p/softengn n/Damith Rajapakse r/user
.
The list-staff
command displays a list of existing users in the system.
Format: list-staff
The image below shows the application displayed a list of staff.
The edit-staff
command updates a user information into the system with the given username.
Format: edit-staff INDEX [n/NAME] [u/USERNAME] [p/PASSWORD] [r/ROLE]
Remark: ROLE
can only be either user
, manager
or admin
.
Examples:
-
Edit staff with given id, 3 in the list. Change name to Yao Teng Xiong and role as admin.
edit-staff 3 n/Yao Teng Xiong r/admin
. -
Edit staff with given id, 2 in the list. Change username to zulq8 and password as meowmeowzul.
edit-staff 2 u/zulq8 p/meowmeowzul
.
The delete-staff
command deletes a user from the system with the given index as shown in the list.
Format: delete-staff INDEX
Examples:
-
Delete a user with given index as shown in the list.
delete-staff 1
. -
Delete a user with an invalid index. The image below shows an expected output.
delete-staff 999
.
The following commands are mainly used for you to manage the items stored in your inventory.
ℹ️
|
An item’s uniqueness is based on its SKU. It can have the same name and other attributes but its SKU must be unique. |
The add-item
command allows you to add an item to the inventory manager.
This command is available to members only.
Format: add-item n/NAME p/PRICE q/QUANTITY s/SKU i/IMAGE_LOCATION [t/TAG]…
💡
|
An item can have any number of tags (including 0). Therefore, you can add as many tags as you want to the item. |
Example:
-
add-item n/IPhone X p/1600 q/1000 s/SN-1234 i/docs/images/iphone.jpg t/smartphone t/apple
The list-item
command shows you a list of all items in the inventory manager.
This command is available to members only.
Format: list-item
Upon entering the list-item
command into the command box and pressing Enter, you should see a list of all items appearing
in the left side panel as can be seen in the screenshot below:
The list-low-qty
command shows you a list of all items in the inventory manager that have low quantities.
This command is available to members only.
Format: list-low-qty
ℹ️
|
|
Upon entering the list-low-qty
command into the command box and pressing Enter, you should see a list of all items with
quantities of 10 or less appearing in the left side panel similar to the list-item
command.
The edit-item
command allows you to edit an existing item in the Inventory Manager.
This command is available to members only.
Format: edit-item INDEX [n/NAME] [p/PRICE] [q/QUANTITY] [s/SKU] [i/IMAGE_LOCATION] [t/TAG]…
ℹ️
|
If the edited item has its SKU changed and it exists in a purchase order, the purchase order will also be edited accordingly based on the edited item’s new SKU. |
For the edit-item
command, do take note of the following points:
-
Update the item at the specified
INDEX
. The index refers to the index number shown in the displayed inventory list. The index must be a positive integer 1, 2, 3, … -
At least one of the optional fields must be provided
-
Existing values will be updated to the input values
-
When updating tags, the existing tags of the item will be removed i.e adding of tags is not cumulative
-
You can remove all the item’s tags by typing
t/
without specifying any tags after it
Examples:
-
edit-item 5 s/SN-8888
Updates the SKU and tags of the 5th item toSN-8888
. -
edit-item 1 i/docs/images/iphone.jpg q/999
Updates the image location and quantity of the 1st item todocs/images/iphone.jpg
and999
respectively.
The find-item
command allows you to find items that have names containing any of the given keywords.
This command is available to members only.
Format: find-item KEYWORD [MORE_KEYWORDS]
💡
|
Multiple keywords are allowed for the find-item command.
|
For the find-item
command, do take note of the following points:
-
The search is case insensitive. e.g
iphone
will matchIPhone
-
The order of the keywords does not matter. e.g.
X IPhone
will matchIPhone X
-
Only the name of the item is searched
-
Only full words will be matched e.g.
phone
will not matchIPhone
-
Items matching at least one keyword will be returned (i.e. an
OR
search). e.g.Iphone 10
will returnIPhone X
,Samsung 10
The following screenshot demonstrates entering the find-item
command in the command box with the keyword LG
, followed by Enter:
The find-item-sku
command allows you to find items that have SKUs containing any of the given keywords.
This command is available to members only.
Format: find-item-sku KEYWORD [MORE_KEYWORDS]
💡
|
Just like the find-item command, multiple keywords are allowed for the find-item-sku command.
|
For the find-item-sku
command, do take note of the following points:
-
Partial keywords will be matched e.g.
SN
will match items with SKUsSN-1234
andSN4321
-
The search is case insensitive. e.g
sn-1234
will match item(s) containing the SKUSN-1234
-
Only the SKU of the item is searched
-
Items matching at least one keyword will be returned. e.g.
iphone sn
will return items with SKUs containing the SKUsiphone-s9-9234
,SN-1234
Example:
-
find-item-sku iphone
ReturnsIPhone X
andIPhone 10
, which contains the SKUsiphone-x
andiphone-10
respectively.
The filter-item
command allows you to filter items that have prices and/or quantities within the conditions set in the keywords.
This command is available to members only.
Format: filter-item [p/[<][>]PRICE] [q/[<][>]QUANTITY]
💡
|
To narrow down the scope, you can combine both conditions or use only one condition to filter your items. |
For the filter-item
command, do take note of the following points:
-
At least one of the optional fields must be provided (i.e. either the
q/
field orp/
field must be present) -
'<'
representsless than or equals to
. e.g.q/<30
represents quantity less than or equals to 30 -
'>'
representsmore than or equals to
. e.g.p/>500
represents price more than or equals to 500 -
For price, both whole numbers and decimals are allowed
-
For quantity, only whole numbers are allowed
Examples:
-
filter-item p/>900
ReturnsIPhone X
andIPhone 10
which both have prices more than or equal to $900. -
filter-item p/<800 q/<100
ReturnsSamsung Note 9
which has a price of less than or equals to $800, and a quantity of less than or equals to 100.
The delete-item
command allows you to delete the specified item from the inventory.
This command is available to members only.
Format: delete-item INDEX
ℹ️
|
All sale orders and purchase orders containing the deleted item will be deleted as well. |
For the delete-item
command, do take note of the following points:
-
Deletes the item at the specified
INDEX
. -
The index refers to the index number shown in the displayed inventory list.
-
The index must be a positive integer 1, 2, 3, …
Examples:
-
list-item
delete-item 2
Deletes the 2nd item in the inventory. -
find-item IPhone X
delete-item 1
Deletes the 1st item in the results of thefind-item
command.
The select
command allows you to select an item identified by the index number used in the displayed inventory list.
This command is available to members only.
Format: select INDEX
For the select
command, do take note of the following points:
-
Selects the item and loads up the item’s details at the specified
INDEX
. -
The index refers to the index number shown in the displayed item list.
-
The index must be a positive integer
1, 2, 3, …
Examples:
-
list-item
select 2
Selects the 2nd item in the inventory. -
find-item IPhone X
select 1
Selects the 1st item in the results of thefind-item
command.
All authenticated users can manage sale orders on the system using the commands below.
The add-sale
command is only available to the Member group. It allows the user to add a new sale order into Inventory Manager. Adding a new sale order will deduct the
item quantity automatically. User will need to ensure that the entered item SKU and sold quantity is valid.
If an invalid SKU or quantity is entered, Inventory Manager will display an error on screen. The screenshot below is an example of an error when an invalid SKU is entered.
Format: add-sale s/SKU q/QTY
Example:
-
User sold 5 quantity of a product with SKU 0123.
add-sale s/0123 q/5
The delete-sale
command is only available to the Member group. It allows the user to delete a specific sale order in Inventory Manager. Deleting a sale order will restore
the inventory quantity deducted automatically. User will need to ensure that the entered sale ID is valid.
If a sale ID that cannot be found is entered, Inventory Manager will display an error on screen. The screenshot below is an example of an error when an invalid sale ID is entered.
Format: delete-sale SALE-ID
Example:
-
User wishes to delete sale ID 12.
delete-sale 12
The list-sale
command is only available to the Member group. It allows the user to list all sale orders in Inventory Manager.
The screenshot below shows the result after the list-sale
command has been entered.
Format: list-sale
Example:
-
User wishes to list all sale orders.
list-sale
The following commands are used to manage purchase order.
The list-po
command is only available to the Member group.
It allows the user to list all purchase orders in Inventory Manager.
The screenshot below shows the result after the list-po
command is entered.
Format: list-po
The add-po
command is only available to the Member group.
It allows the user to add a purchase order for an item based on it’s sku.
The added purchase order comes with a default status of 'PENDING' as shown in the figure below.
Format: add-po s/SKU_NUMBER q/QUANTITY d/REQUIRED_DATE sp/SUPPLIER
Examples:
-
add-po s/apple-iphone-xr q/1000 d/2018-12-12 sp/Apple Inc
-
add-po s/samsung-s9 q/12 d/2101-12-12 sp/Samsung
The approve-po
command is only available to the Manager.
It allows the manager to approve the specified purchase order from the purchase order list.
Upon approving, the quantity stated in the purchase order will be added to the designated item.
Format: approve-po INDEX
For the approve-po
command, do take note of the following points:
-
Approves the purchase order at the specified
INDEX
. -
The index refers to the index number shown in the displayed inventory list.
-
The index must be a positive integer 1, 2, 3, …
-
The command can only be applied to purchase order with 'PENDING' status.
Example:
-
list-po
approve-po 1
Approves the first purchase order in the purchase order list.
The reject-po
command is only available to the Manager.
It allows the manager to reject the specified purchase order from the purchase order list.
Format: reject-po INDEX
For the reject-po
command, do take note of the following points:
-
Rejects the purchase order at the specified
INDEX
. -
The index refers to the index number shown in the displayed inventory list.
-
The index must be a positive integer 1, 2, 3, …
-
The command can only be applied to purchase order with 'PENDING' status.
Example:
-
list-po
reject-po 1
Rejects the first purchase order in the purchase order list.
The edit-po
command is only available to the Member group.
It allows the user to edit the specified purchase order from the purchase order list.
Format: edit-po INDEX [q/QUANTITY] [d/REQUIRED_DATE] [sp/SUPPLIER]
For the edit-po
command, do take note of the following points:
-
At least one of the optional fields must be provided.
-
Existing values will be updated to the input values.
-
Item’s SKU in the purchase order list is uneditable.
-
The command can only be applied to purchase order with 'PENDING' status.
Example:
-
edit-po 1 q/999 d/2018-12-12
Updates the quantity and required date of the 1st purchase order to999
and2018-12-12
respectively.
The delete-po
command is only available to the Member group.
It allows the user to delete the specified purchase order from the purchase order list.
Format: delete-po INDEX
For the delete-po
command, do take note of the following points:
-
Deletes the purchase order at the specified
INDEX
. -
The index refers to the index number shown in the displayed purchase order list.
-
The index must be a positive integer 1, 2, 3, …
Example:
-
list-po
delete-po 5
Deletes the 5th purchase order in the inventory.
The following commands are mainly used to export and import data for report analysis.
All the commands in this section are available to admin only.
-
This command exports the data to the file specified by
FILEPATH
. -
FILEPATH
must end with an extension of.csv
. -
FILEPATH
can be a relative path and the data will be exported to a location relative to the Inventory Manager installation directory. -
Existing data file at
FILEPATH
will be overwritten. -
The parent directories will be created if they do not exist.
-
A table view of the exported data will appear.
-
CSV files can be opened and edited by Excel.
The export-csv-sales
command exports the sales report in CSV format to the file path given.
Format: export-csv-sales f/FILEPATH
Example: export-csv-sales f/E:/out/sales.csv
The export-csv-items
command exports the list of items in CSV format to the file path given.
Format: export-csv-items f/FILEPATH
Example: export-csv-items f/E:/out/items.csv
Following screenshot showcases what will happen when you enter the correct export-csv-items
command:
The export-csv-staffs
command exports the list of users in CSV format to the file path given.
Format: export-csv-staffs f/FILEPATH
Example: export-csv-staffs f/E:/out/staffs.csv
(coming in v2.0)
The export-im
command exports the entire data to the .im file specified by FILEPATH
to quickly transfer the data between two Inventory Manager applications.
Format: export-im f/FILEPATH
Example: export-im f/E:/out/data.im
-
The .im is a format that the Inventory Manager uses to transfer the entire data.
-
FILEPATH
must end with an extension of.im
. -
FILEPATH
can be a relative path and the data will be exported to a location relative to the Inventory Manager installation directory. -
Existing data file at
FILEPATH
will be overwritten. -
The parent directories will be created if they do not exist.
-
This command imports the data from the file specified by
FILEPATH
. -
FILEPATH
must end with an extension of.csv
. -
FILEPATH
can be a relative path and the data will be imported from a location relative to the Inventory Manager installation directory. -
Original data in Inventory Manager will be overwritten.
-
Data in the CSV file must be recognizable by Inventory Manager.
The import-csv-sales
command imports the sales report in CSV format from the file path given.
Format: import-csv-sales f/FILEPATH
Example: import-csv-sales f/E:/in/sales.csv
Following screenshot showcases what will happen when you enter the correct import-csv-sales
command:
The import-csv-items
command imports the list of items in CSV format from the file path given.
Format: import-csv-items f/FILEPATH
Example: import-csv-items f/E:/in/items.csv
The import-csv-staffs
command imports the list of users in CSV format from the file path given.
Format: import-csv-staffs f/FILEPATH
Example: import-csv-staffs f/E:/in/staffs.csv
(coming in v2.0)
The import-im
command imports the entire data from the .im file specified by FILEPATH
to quickly transfer the data between two Inventory Manager applications.
Format: import-im f/FILEPATH
Example: import-im f/E:/in/data.im
-
The .im is a format that the Inventory Manager uses to transfer the entire data.
-
FILEPATH
must end with an extension of.im
. -
FILEPATH
can be a relative path and the data will be imported from a location relative to the Inventory Manager installation directory. -
Original data in Inventory Manager will be overwritten.
-
Data in the .im file must be recognizable by Inventory Manager.
Q: How do I transfer my data to another Computer ?
A: Install Inventory Manager in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Inventory Manager folder.
A: Export the data in your current Inventory Manager first. Then, install the Inventory Manager in the other computer
and import the data back.
Q: How do I save my data ?
A: There is no need to save manually because the state of the database is saved in the hard disk automatically after any command that changes the data.
Q: How can I report a bug or suggest improvements to this application ?
A: You can open an issue here.
Q: I forgot my password, how do I reset ?
A: Please contact your administrator to assist you in resetting your password.
The following table summarises commands available in Inventory Manager, along with examples:
Command | Format | Example | Available for |
---|---|---|---|
General |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Authentication |
|||
|
|
|
|
|
|
|
|
|
|
|
|
Users Management |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Inventory Management |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sale Orders Management |
|||
|
|
|
|
|
|
|
|
|
|
|
|
Purchase Orders Management |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reports Management |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLI (Command Line Interface)
A command line interface (CLI) is an interface where you can input commands to interact with the software.
CSV (Comma Separated Values)
A Comma Separated Values file is a delimited text file that uses a comma to separate values. The file can be open using an Excel software.
GUI (Graphical User Interface)
A graphical user interface (GUI) is an interface through which a user interacts with the software.
Member
This refers to the user role Admin, Staff and Manager.
SKU (Stock Keeping Unit)
A Stock Keeping Unit is a product identification code assigned to a product.
User
This refers to everyone that uses Inventory Manager, which includes the Members and non-logged in users.