User Guide
1. Using this User-Guide
This User-Guide aims to aid users in using NUStorage to its fullest potential. In this guide, we will be guiding you through the entire process of using NUStorage, from setting it up on your system to the using the features that NUStorage offers.
If you are a new user, we recommend that you read this user guide from start to the end and follow the examples provided in the commands section to gain a better understanding of the application. If you are an experienced user, feel free to use the Table-Of-Contents to skip to the section most relevant to you.
If you see an acronym that you don’t understand, kindly refer to the glossary. If you have further questions regarding NUStorage or this User-Guide, feel free to contact us at nustorage.support@u.nus.edu.
2. Introduction
Welcome to NUStorage, a desktop application that aims to help users to manage inventory, finance transactions as well as accounts.
NUStorage revolutionises the way we can manage our inventory and finances by ridding us of cumbersome traditional means of management, such as books and folders. Instead, everything is now stored and displayed neatly in a fast and low-resource application!
NUStorage is optimised for store owners and managers who prefer to work with a command line interface (CLI) while still enjoying the visual benefits of a graphical user interface (GUI).
With proper usage, NUStorage can manage your inventory and finance records much faster than traditional GUI-based applications, streamlining your workflow and increasing productivity.
Interested? Read on to get started!
3. Quick Start Guide
- Ensure that you have
Java 11
or above installed on your device. - Download the latest release of
NUStorage.jar
here. - Copy the
.jar
file to the folder you want to use as the home folder for your application. -
Double-click on the
.jar
file to start the app. The GUI should look something like this: -
The image below explains the relevant areas of the application’s interface:
- Type a few commands in the command box and press enter to execute. This is small calibration test to ensure that NUStorage is working as intended.
- Here are some sample commands you can try out to get started:
-
create_inventory i/Logitech G400 q/20 c/69
to add 20 Logitech G400 gaming mouse that cost $69 to the inventory -
add_finance amt/120.17
to add an inbound transaction of $120.17 -
exit
to exit programme
-
- Refer to the list of commands below for details of each command.
- Here are some sample commands you can try out to get started:
4. Command Formats
This section details the notations used to specify the command formats in the commands and commands summary sections.
Notes about the command format:
- Words in
UPPER_CASE
are the parameters to be keyed-in by the user.- e.g. in
create_inventory i/ITEM
,ITEM
is a parameter which can be used in this format:create_inventory i/MacBook
.
- e.g. in
- Only parameters in square brackets are optional, all others are compulsory.
- e.g.
amt/AMOUNT [at/DATE] [TIME]
can be used as the possible formats:amt/200 at/2020-04-10 18:00
amt/200 at/2020-04-10
amt/200 at/18:00
amt/200
- Notice that the
AMOUNT
field is compulsory.
- e.g.
- Inputs that require date and time have specific formats.
- Date must be formatted in
YYYY-MM-DD
. - Time must be formatted in
HH:mm
. - e.g. input of
2020-01-01
will show up as01 Jan 2020
as the date, and13:00
will show up as13:00
as the time in NUStorage’s response box.
- Date must be formatted in
- Parameters can be switched around.
- They do NOT need to come in the order as specified by the formats.
- E.g.
create_item i/iPad q/100
andcreate_item q/100 i/iPad
are both accepted.
- E.g.
- Exception: commands that require the
INDEX
must have theINDEX
directly after the command.- E.g.
edit_inventory 1 i/newname
is accepted but NOTedit_inventory i/newname 1
- E.g.
- They do NOT need to come in the order as specified by the formats.
- Commands with only optional fields (excluding the
INDEX
field) require at least one field to be filled up- E.g. the
edit_finance
command, excluding theINDEX
field, has only two optional fields:amt
andat
. Either theamt
orat
fields need to be filled up.
- E.g. the
- Range of valid inputs:
- Commands that are expecting an
INDEX
parameter must ensure that theINDEX
specified is a positive, non-zero integer that is not more than the number of items on the list. - Parameters that expect an integer must be between
0
and2147483647
, with the exception of theupdate_inventory
command. More details of theupdate_inventory
command can be read here.
- Commands that are expecting an
5. Commands
This section shows the commands that can be used with NUStorage. It is divided into three sections:
Accompanying the details of each command are figures that show an example of the command and the result of executing the command.
5.1. Inventory Commands
NUStorage supports the storage and manipulation of inventory records. The following sections detail the commands related to inventory storage, given in alphabetical order.
Commands in this section are best executed when you are in the inventory tab. If you do not know how to switch to the inventory tab, please refer to the switch between tabs section for more information.
5.1.1. Add items to inventory: create_inventory
NUStorage allows you to add and save a new inventory record. Each inventory record has a finance record tied to it.
What this command does:
create_inventory
allows us to create and store a new inventory record into the inventory list.
Using the command: Below are instructions on how to use the create_inventory
command.
Format: create_inventory i/ITEM_NAME q/QUANTITY [c/ITEM_COST]
This creates a new inventory record for the item ITEM_NAME
of quantity QUANTITY
.
Note that QUANTITY
and ITEM_COST
are bounded by a minimum value of 0
and a maximum value of 2,000,000,000
. QUANTITY
must be an integer and ITEM_COST
can have up to 2 decimal places.
For the ITEM_COST
parameter:
- If given, then a finance record will be created automatically with a total amount of
ITEM_COST * QUANTITY
. - If left empty, then an empty finance record will be created with an amount of
0
. - If given more than 2 decimal places, it will be rounded to the nearest 2 decimal places.
Example: create_inventory i/iphone q/10 c/20
This creates a new inventory record of item iphone
and quantity 10
. A finance record with the total amount of 200
will be created and tied to the inventory record through the finance ID column.
Enter the example command into the command box as shown below:
Result: Inventory record for the item iphone
of quantity 10
is added to the inventory.
A corresponding finance record of total cost 200
is added to the finance account.
5.1.2. Remove items from inventory: delete_inventory
Previously in the Add Inventory Records section, we have created a new inventory record, and its accompanying finance record. Now, let’s try to delete the records from NUStorage using delete_inventory
.
If you are reading this section without having read the previous section, please ensure that your NUStorage application has at least one inventory record stored. If you are unclear on how to do so, refer to the Add Inventory Records section.
For the purpose of this section, we have created two other inventory records, you can add them in if you wish to. Our NUStorage now has three records as shown below:
What this command does:
delete_inventory
allows us to delete an inventory record, and the corresponding finance record currently stored within NUStorage.
Using the command: Below are instructions on how to use the delete_inventory
command.
Format: delete_inventory INDEX
This allows us to delete the inventory record with the ID of INDEX
.
Example: delete_inventory 1
deletes the inventory record with index 1
.
Enter the sample command into the command box as shown below:
Result: Inventory record at index 1
is removed from the inventory list.
The corresponding finance record is also deleted.
5.1.3. Edit record in inventory: edit_inventory
Previously in the Delete Inventory Records section, we have deleted one of our inventory records. For this section, ensure that you have at least one inventory record.
If you are reading this section without having read the previous section, please ensure that your NUStorage application has at least one inventory record stored. If you are unclear on how to do so, refer to the Add Inventory Records section.
We will proceed with our example from the previous section with two records in NUStorage, you can add them in if you wish to.
Currently, our NUStorage has two records as shown below:
What this command does:
edit_inventory
allows us to edit the item name, quantity or item cost of the specified record in the inventory and then update the corresponding finance record if needed.
Using the command: Below are instructions on how to use the edit_inventory
command.
Format: edit_inventory INDEX [i/ITEM_NAME] [q/QUANTITY] [c/ITEM_COST]
This allows us to change the item name, quantity and cost of the inventory record with the ID INDEX
. Please be reminded that QUANTITY
and ITEM_COST
are bounded by a minimum value of 0
to a maximum value of 2,000,000,000
.
INDEX
must be the first parameter for this command.
Note that there can be no two inventory records with the same ITEM_NAME
.
Example: edit_inventory 2 i/iPad q/10 c/2000
edits the inventory record at index 2
.
Enter the sample command into the command box as shown below:
Result: Inventory record’s item name changed from iphone 12
to iPad
, quantity changed from 100
to 10
and unit cost from 1000
to 2000
.
The corresponding finance record is also updated to reflect the new total cost of 20000
.
5.1.4. Find record in inventory: find_inventory
Previously in the Edit Inventory Records section, we have learnt how to edit inventory records.
Now, we are going to learn how to navigate through your inventory records using the find_inventory
command.
For this section, ensure that you have least three inventory records in NUStorage. This is not necessary for the functionality of this command but rather to make the outcome of the command clear. If you are having trouble adding additional inventory records, please refer to the Add Inventory Records section.
After adding enough inventory records, your list would look something like this:
What this command does:
find_inventory
allows us to find a specific record using a specified keyword.
If the item name of the inventory record contains the specified keyword, it will be displayed on screen.
The image below highlights where the item name is:
Using the command: Below are instructions on how to use the find_inventory
command.
Format: find_inventory KEYWORD
This allows us to find an inventory record that has an item name that contains the word KEYWORD
within it.
Example: find_inventory ip
finds all inventory records containing the word ip
in the item name and displays them.
Enter the sample command as shown below:
Result: All inventory records with item names that contain ip
are listed.
5.1.5. List inventory records: list_inventory
Previously, in the Find Inventory Records section, we have seen how we can find specific records using a specified keyword.
However, this results in NUStorage only displaying records with item names that contain the keyword.
In order to revert back to the original listing, where every inventory record is listed, we can use the list_inventory
command.
For this section, we will be resuming where we left off in the Find Inventory Records section.
Our NUStorage currently looks like this:
Even though we have three inventory records stored, we only have two displayed as we entered a find_inventory
command.
What this command does:
list_inventory
displays all stored inventory records in NUStorage.
Using the command: Below are instructions on how to use the list_inventory
command.
Format: list_inventory
This command retrieves all stored inventory records in NUStorage and display them.
Example: list_inventory
Enter the sample command as shown below:
Result: All inventory records are listed.
5.1.6. Update inventory record: update_inventory
In the Edit Inventory Command section, we have learnt how to edit values and names of our inventory records.
However, in many situations we would only need to update the quantity stored in the record based on the change in our inventory stock.
It can get cumbersome if one were to have to calculate what the final quantity should be every time there is a change in inventory stock.
This is where update_inventory
comes in handy.
For this section, we will be continuing where we left off previous in the List Inventory Records section.
If you are reading this section without having following the examples provided in the previous sections, ensure that you have at least one inventory record stored in NUStorage. If you are having trouble adding inventory records, refer to the Add Inventory Records section.
Currently, our NUStorage looks like this:
What this command does:
update_inventory
allows us to update the quantity of a specified inventory record with the specified change in quantity.
NOTE: update_inventory
allows for both the increase and decrease in quantity of a specified inventory record.
However, the updated quantity must not only be more than zero, it must also not exceed 2 billion.
Using the command: Below are instructions on how to use the update_inventory
command.
Format: update_inventory INDEX q/CHANGE_IN_QUANTITY
This allows us to update the quantity of the inventory record with the ID of INDEX
by the CHANGE_IN_QUANTITY
specified.
Example: update_inventory 1 q/5
increases the quantity of the inventory with the ID of 1 by 5
and updates the linked finance record.
CHANGE_IN_QUANTITY
can be of negative values too, in which case it would be specifying a decrease in quantity.
Enter the sample command as shown below:
Result: Inventory record at 1
is updated from 30
to 35
.
Result: The linked finance record is also updated.
5.2. Finance Commands
NUStorage supports the storage and manipulation of finance records. The following sections detail the commands related to finance storage in alphabetical order.
Commands in this section are best executed when you are in the finance tab. If you do not know how to switch to the finance tab, please refer to the switch between tabs section for more information.
NOTE: Some commands only work for stand-alone finance records (i.e. finance records that are not attached to any inventory records).
5.2.1. Add finance records: add_finance
NUStorage allows you to add and save a new finance record into the account. In the Add Inventory Record section, we have seen how a finance record is added when an inventory record is created to reflect the changes in the finance account. However, there are times that you want to create a finance record independent of any inventory records to record an influx/outflow of funds for example.
This is where add_finance
comes in handy.
What this command does:
add_finance
allows us to add a stand-alone finance record into NUStorage’s.
NOTE: This command can only add a stand-alone finance record.
Using the command: Below are instructions on how to use the add_finance
command.
Format: add_finance amt/AMOUNT [at/DATE] [TIME]
This creates a new finance record of amount AMOUNT
. If DATE
and TIME
are specified, the finance record would reflect that DATE
and TIME
in the record.
NOTE:
- If the Date and Time fields are not specified, they will default to the current location’s Date and Time.
- The Amount field will be rounded to the nearest 2 decimal place.
Example: add_finance amt/30000 at/2020-03-03
This creates a new finance record of amount 30000
on 3rd March 2020
Enter the example command into the command box as shown below:
Result: Finance record of amount 30000
on 3rd March 2020
is added to the finance account:
5.2.2. Delete finance records: delete_finance
Previously, in the Add Finance Records section, we have created a finance record.
Now, let’s try to delete it from NUStorage using delete_finance
.
If you are reading this section without having read the previous section, please ensure that your NUStorage application has at least one finance record stored. If you are unclear on how to do so, refer to the Add Finance Records section.
What this command does:
delete_finance
allows us to delete a stand-alone finance record currently stored within NUStorage.
NOTE: This command can only delete a stand-alone finance record.
Using the command: Below are instructions on how to use the delete_finance
command.
Format: delete_finance INDEX
:
This allows us to delete the finance record with the ID of INDEX
.
Currently, our NUStorage only contains one record, as shown below:
Example: delete_finance 1
deletes the finance record with index 1
.
Enter the example command into the command box as shown below:
Result: Finance record at index 1
is removed from the finance account.
5.2.3. Edit a finance record: edit_finance
Previously, in the Delete Finance Records section, we have deleted our only finance record in our application. For this section, ensure you have at least one stand-alone finance record (i.e not attached to any inventory records) stored in the application and that you are on the finance tab.
Your NUStorage application should currently look something like this:
What this command does:
edit_finance
allows us to edit details of the stand-alone finance records currently stored within NUStorage.
Currently, with edit_finance
, we are able to edit a finance record’s amount and date.
NOTE: This command can only edit a stand-alone finance record.
Using the command: Below are instructions on how to use the edit_finance
command.
Format: edit_finance INDEX [amt/AMOUNT] [at/DATE]
This allows us to change the amount and date details of the finance record with the INDEX
ID.
NOTE: The Amount field will be rounded to the nearest 2 decimal place.
Example: edit_finance 1 amt/120
This changes the amount of the finance record at index 1
to 120
.
Enter the example command into the command box as shown below:
Result: Finance amount changed from 100
to 120
while the date remains unchanged.
5.2.4. Find a finance record with a specified keyword: find_finance
Previously, in the Edit Finance Records section, we have learnt how to edit a stand-alone finance record. For this section, let us first add some more finance records to populate our finance account.
Ensure that you have at least 2 finance records, preferably with differing amounts and dates, stored in NUStorage as well as that you are in the Finance
tab before proceeding.
If you are having trouble adding finance records refer to the sections on Add Finance Records or Add Inventory Records.
Currently, your NUStorage application should look something like this:
What this command does:
find_finance
allows us to find finance records that contain the specified keyword and display them on the record panel.
This command will help in the event that we have multiple records, and locating a certain finance record can get tedious.
Using the command: Below are instructions on how to use the find_finance
command.
Format: find_finance [id/ID] [aft/AFTDATE] [bef/BEFDATE] [item/YESNO]
This allows us to find all finance records with a finance ID that contains ID
that were created after the date AFTDATE
but before the date BEFDATE
.
The parameter [item/YESNO]
to choose between finance records tied to inventory records, or finance records that are stand-alone (yes
to find only the finance records tied to inventory records, no
to find stand-alone records only).
Example: find_finance id/8 aft/2019-10-20 bef/2020-12-30 item/no
This allows us to find finance records with finance IDs that contain “8”, created place between 20th Oct 2019 to 30th Dec 2020 (inclusive) and are not linked any inventory records.
Enter the example command into the command box as shown below:
Result: Finance records that fit the parameters are listed. Below shows the record(s) from the image above that passes the find_finance
criteria:
NOTE: Do not worry if your resulting display does not match the image above. If the records you added is not exactly the same as the ones shown above, the output would likely not be the same as well.
5.2.5. List finance records: list_finance
Previously, in the Find Finance Records section, we have learnt how to find certain finance records that contains our provided parameters. For this section, we will be reusing the examples from the Find Finance Records section.
Currently, our NUStorage should look like this:
After finding certain records, chances are we would like to display all the records again. This can be achieved using the list_finance
command.
What this command does:
list_finance
displays all stored finance records in NUStorage.
Using the command: Below are instructions on how to use the list_finance
command.
Format: list_finance
This command retrieves all stored finance records in NUStorage and display them.
Example: list_finance
Enter the example command into the command box as shown below:
Result: All finance records are listed.
5.3. Universal Commands
The following are universal commands for navigating the application.
5.3.1. Clear records: clear
Deletes all data stored locally.
Executing this command DELETES ALL RECORDS AND CAN NOT BE UNDONE!
Format: clear
Example: clear
When on either tab, enter the command clear
and press enter to execute.
Result: All records currently stored in NUStorage are deleted as seen below.
NOTE: This command can be executed even if there are no records stored in NUStorage. There will be no effects when executing this command on an empty NUStorage.
5.3.2. Quit the programme: exit
Saves data locally in a data file and exits the programme.
Format: exit
Example: exit
Result: Programme terminates.
5.3.3. Get help on the commands: help
Opens a help window that links to this User Guide.
Format: help
Example: help
Result: A help window is opened as shown below, redirecting user to this User Guide. Here, you can click on the Copy URL
button to copy the link to the User Guide. Simply paste this URL into a web browser of your choice and press enter to visit the User Guide.
5.3.4. Switch tabs: switch
Switches between the inventory and finance tabs.
Using the command: Below are instructions on how to use the switch
command.
Format: switch
Example: switch
- When on the inventory tab, execute the command
switch
to switch to the finance tab.- Make sure you are on the inventory tab first.
- Then, type in the command as shown below and press enter to execute the command.
- You should see the window changing to the finance tab, as shown below.
- When on the finance tab, execute the command
switch
to switch to the inventory tab.- Make sure you are on the finance tab first.
- Then, type in the command as shown below and press enter to execute the command.
- You should see the window changing to the inventory tab, as shown below.
Result: Tabs switched.
5.3.5. Undo/Redo the previous command: undo
/redo
[coming in v2.0]
[This feature is planned for v2.0]
Undo or redo the previous command.
Format: undo
or redo
Example: undo
or redo
Result: The previous command is undone / redone.
6. Commands Summary
This section gives a summarised view of the commands available in NUStorage.
6.1. Inventory Commands Summary
The following table gives a summary of the inventory commands for quick reference and look-ups.
Description | Command and Example |
---|---|
Create inventory |
create_inventory i/ITEM q/QUANTITY [c/ITEM_COST] e.g. create_inventory i/MacBook pro q/200 c/50
|
Delete inventory |
delete_inventory INDEX e.g. delete_inventory 4
|
Edit inventory |
edit_inventory INDEX [i/ITEM_NAME] [q/QUANTITY] [c/ITEM_COST] e.g. edit_inventory 3 i/Lenovo Y50 q/10 c/20.5
|
Find inventory |
find_inventory KEYWORD e.g. find_inventory ipad
|
List inventory | list_inventory |
Update Inventory |
update_inventory INDEX q/CHANGE_QUANTITY e.g. update_inventory 1 q/50
|
6.2. Finance Commands Summary
The following table gives a summary of the finance commands for quick reference and look-ups.
Description | Command and Example |
---|---|
Add finance |
add_finance amt/AMOUNT [at/DATE] [TIME] e.g. add_finance amt/420.69 at/2020-04-23
|
Delete finance |
delete_finance INDEX e.g. delete_finance 2
|
Edit finance |
edit_finance INDEX [amt/AMOUNT] [at/DATE] [TIME] e.g. edit_finance 1 amt/120 at/2020-10-01
|
Find finance |
find_finance [id/ID] [aft/DATE] [bef/DATE] [item/YESNO] e.g. find_finance id/10 aft/2019-10-30 bef/2020-03-23 item/yes
|
List finance | list_finance |
6.3. Universal Commands Summary
The following table gives a summary of the universal commands for quick reference and look-ups.
Description | Command and Example |
---|---|
Clear records | clear |
Exit programme | exit |
Help | help |
Switch tabs | switch |
7. FAQs
This section answers some of the frequently asked questions.
7.1. How do I migrate the data to another computer?
Doing so will OVERWRITE the existing data you may have on the other device. Please make sure you make a backup before migrating data.
Steps to migrate data:
- Locate the data files under the directory (folder)
./data
. The data files are namesinventory.json
andfinanceAccount.json
. - Copy the files to the other device.
- Place the two files under the directory
./data
. - Restart NUStorage on the other device to load the data.
7.2. How do I combine data from two devices?
Currently, NUStorage does not support the merging of data between different devices. NUStorage only supports moving of data from one device to another. Please see FAQ 7.1 regarding how to migrate data.
7.3. Can I directly modify the storage file?
Manually editing data in the storage file may result in a TOTAL LOSS OF DATA!
Modifying the storage file is possible but NOT RECOMMENDED!
8. Glossary and Terms
-
CLI
: command line interface. -
GUI
: graphical user interface. -
.jar
: The file type that NUStorage is released in. This is similar to the.exe
files in Windows and.app
files in MacOS. -
stand-alone finance records
: Finance records that are not attached to any inventory records.