By: Team T12-3      Since: Sep 2018      Licence: MIT

1. Introduction

JalilEnterprises is for those who prefer to use a desktop app for stock taking. More importantly, JalilEnterprises is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, JalilEnterprises can get your stock management tasks done faster than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest JalilEnterprises.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Stock List.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. You should log into this app via the login command before you start to use it.
    Example of how to log in:

    • loginu/admin p/admin

  6. This app comes with a default admin account and it is strongly recommended to:

    • not delete this account,

    • note the changes made to this account to avoid the case of being locked out of StockList.

      Credentials of the default account:

    • u/admin p/admin

  7. When logged out, all commands are locked, except:

    • login

    • listAccounts

    • findAccount

    • loginStatus

    • history

    • help

    • exit

  8. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  9. Some example commands you can try:

    • list : lists all items

    • addn/Arduino q/20 m/5 t/Lab1 t/Lab2 : adds 20 Arduino item to the StockList, with a minimum quantity of 5 and tags Lab1 and Lab2

    • delete1 : deletes the item with index 1

    • status : Shows the number of every item in each status category (Ready, On_Loan, Faulty)

  10. Refer to Section 3, “Features” for details of each command.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/Arduino.

  • Items in square brackets are optional e.g n/NAME [t/TAG]` can be used as n/Arduino t/Lab1 or as n/Arduino.

  • Items with …​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as ` ` (i.e. 0 times), t/Lab1, t/Lab2 t/Lab5 etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME q/QUANTITY, q/QUANTITY n/NAME is also acceptable.

3.2. List registered accounts: listAccounts

Lists all the accounts currently registered in StockList.
Format: listAccounts

3.3. Find a registered account: findAccount

Finds a registered account whose names contain any of the given keywords.
Format: findAccount KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g admin will match Admin

  • The order of the keywords does not matter. e.g. admin jalil will match jalil admin

  • Only the name is searched.

  • Partial words will be matched e.g. ad will match admin

  • Items matching at least one keyword will be returned (i.e. OR search). e.g. admin jalil will return admin tan, admin lee

Examples:

  • findAccount admin
    Returns admin and Admin Jalil

  • findAccount admin tom
    Returns any items having names admin or tom

3.4. Logging in: login

Logs into Stock List.
Format: login u/USERNAME p/PASSWORD

Examples:

  • login u/admin p/admin

3.5. Checking login status: loginStatus

Checks login status of Stock List.
Format: loginStatus

3.6. Adding an item: add

Adds an item to the stock list
Format: add n/NAME q/QUANTITY m/MINIMUM_QUANTITY [t/TAG]

Examples:

  • add n/Arduino q/20 m/5 t/Lab1 t/Lab2

3.7. Editing an item : edit

Edits an existing item in the stock list
Format: edit INDEX [n/NAME] [q/QUANTITY] [m/MINIMUM_QUANTITY] [t/TAG]

  • Edits the person at the specified INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the fields (name, quantity, minimum quantity or tag) must be provided.

  • Existing values will be updated to the input values.

  • When editing 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 1 n/Arduino q/25 t/Lab7 t/Lab8
    Edits the name, quantity and tags of the 1st item to be Arduino, 25 and Lab7, Lab8 respectively.

3.8. Deleting an item : delete

Deletes an item from the stock list
Format: `delete INDEX

Examples:

  • delete 1
    Deletes the item with index 1

3.9. Listing all items : list

Shows all items in the stock list
Format: list

3.10. Selecting and highlighting an item : select

Selects and highlights one item using its index number
Format: select INDEX

Examples:

  • select 1
    Selects and highlights the item with the index number 1

3.11. Clearing all items : clear

Clears all items in the stock list
Format: clear

3.12. Locating items by name: find

Finds items whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g arduino will match Arduino

  • The order of the keywords does not matter. e.g. ESP8226 Chip will match Chip ESP8266

  • Only the name is searched.

  • Partial words will be matched e.g. Ard will match Arduino

  • Items matching at least one keyword will be returned (i.e. OR search). e.g. Arduino Uno will return Arduino Mega, Arduino Leonardo

Examples:

  • find Arduino
    Returns Arduino and Arduino Uno

  • find Arduino Pi
    Returns any items having names Arduino or Pi

3.13. Listing item according to status: status

Shows the quantity of every item in each status category (Ready, On_Loan, Faulty)
Format: status

3.14. Changing status of item: changeStatus

The status of the items can be changed from Ready to Faulty, and vice-versa
Format: changeStatus n/NAME q/QUANTITY os/ORIGINALSTATUS ns/NEWSTATUS

Examples:

  • changeStatus n/Arduino q/20 os/Ready ns/Faulty
    The status of 20 Arduinos would be changed from Ready to Faulty

3.15. Creating a loan list: loanList

A loan list can be created whenever a list of items loaned out needs to be kept tracked on
Format: loanList n/NAME q/QUANTITY l/LOANER

Examples:

  • loanList n/Arduino q/20 l/KinWhye
    This would update the status of the 20 arduinos to On_Loan, and add the entry into the loan list

3.16. Viewing the loan list: viewLoanList

Shows every loan list entry
Format: viewLoanList

3.17. Deleting a loan list entry: deleteLoanList

An entry in the loan list can be deleted when the loaner returns the items
Format: deleteLoanList INDEX

Examples:

  • deleteLoanList 1
    The first entry as shown on the viewLoanList command will be deleted. The status of the item will be automatically changed back to ready

3.18. Listing items under specific tags: tag

Finds and lists items whose tags contain any of the given keywords.
Format: `tag KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g lab1 will match Lab1

  • Only the tag is searched.

  • Partial words are recognized. e.g. Lab will match Lab1

Examples:

  • tag Lab1 Lab2
    Returns the items whose tags includes "Lab1" or "Lab2"

3.19. Add tags to one item: addTag

Adds one or multiple tags to one item in the stock list by its index.
Format: addTag INDEX t/ TAG [MORE_TAGS]

Examples:

  • addTag 1 t/ Lab3 t/ Lab4
    Add tags "Lab3" and "Lab4" to the item with index 1

3.20. Delete tags from one item: deleteTag

Deletes some tags and keeps the rest of one item in the stock list by its index.
Format: deleteTag INDEX t/ TAG [MORE_TAGS]

Examples:

  • deleteTag 1 t/ Lab1 t/ Lab2
    Deletes tags "Lab1" and "Lab2" from the item with index 1

3.21. Lost an item: lost

Lost an item From the stock list
Format: lost INDEX q/QUANTITY

Examples:

  • lost 1 q/25

3.22. Found an item: found

Found an item From the Lost&Found List
Format: found INDEX q/QUANTITY

Examples:

  • found 1 q/25

3.23. Listing Lost&Found List: lost&found

Shows the number of every lost item that has been lost
Format: lost&found

3.24. Undoing previous command : undo

Restores the address book to the state before the previous undoable command was executed.
Format: undo

Undoable commands: those commands that modify the address book’s content (add, delete, edit and clear).

Examples:

  • delete 1
    list
    undo (reverses the delete 1 command)

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

3.25. Redoing the previously undone command : redo

Reverses the most recent undo command.
Format: redo

Examples:

  • delete 1
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

3.26. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

3.27. Save current version of stock list : save

An xml file recording current stocks will be created and named.
Format: save NAME

Examples:

  • save ForAugust
    This would save the stock list at the time when the command is inputted, and the name for this xml file is ForAugust.xml, under a /versions/ folder in main.

3.28. Open and view a saved stock list : open

The .xml file specified will be opened and displayed in table format on the Browser Panel.
Format: open NAME

Examples:

  • open ForAugust
    This would open the saved stock list under /versions/ folder in main at the time when the command is inputted

3.29. Adding an account: addAccount

Adds an account to the database.
Format: addAccount u/USERNAME p/PASSWORD

Examples:

  • addAccount u/john p/doe

  • addAccount u/jalil p/boss123

3.30. Deleting an account: deleteAccount

Deletes an account from the database.
Format: delete INDEX

Index can be found using listAccounts

Examples:

  • deleteAccount 2
    Deletes the second account in the database, according to the index via listAccounts.

It is strongly NOT recommended to delete the first account i.e. the admin account.

3.31. Editing an account currently in the database: editAccount

Edits a registered account in the database.
Format: edit INDEX u/USERNAME [p/PASSWORD]

  • Edits the account at the specified INDEX. The index refers to the index number shown in the displayed list when 'listAccounts' is used. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing credentials will be updated to the input credentials.

Examples:

  • editAccount 2 p/password123!
    Changes the password of the second account to password123!

Exercise caution when editing the admin account.

3.32. Resetting the account database: resetAccounts

Resets the account database.
All accounts will be deleted and a default admin account will be created.
Credentials of the default account: u/admin p/admin

Format: resetAccounts

3.33. Logging out: logout

Logs out of Stock List.
Format: logout

3.34. Exiting the program : exit

Exits the program.
This automatically logs out of StockList if the user is still logged in.
Format: exit

3.35. Saving the data

JalilEnterprises data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.36. Encrypting data files [coming in v2.0]

In v2.0, your account and inventory data can be encrypted for added security. You can choose to enable/disable encryption via the setEncryption command.

3.37. minQuantity checking [coming in v2.0]

This would constantly check the Quantity with the minQuantity and notify the user whenever the Quantity drops below the minQuantity.

4. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Stock List folder.

5. Command Summary

  • Help help

  • List Accounts listAccounts

  • Find Account findAccount
    e.g. findAccount john doe

  • Login login u/USERNAME p/PASSWORD
    e.g. login u/admin p/admin

  • Check login status loginStatus

  • Add add n/NAME q/QUANTITY m/MINIMUM_QUANTITY [t/TAG]…​
    e.g. add n/Arduino q/20 m/5 t/Lab1 t/Lab2

  • Edit edit INDEX n/NAME [q/QUANTITY] [m/MINIMUM_QUANTITY] [t/TAG]
    e.g. edit 1 n/Arduino q/25 t/Lab7 t/Lab8

  • Delete delete INDEX q/QUANTITY
    e.g. delete 1 q/20

  • List list

  • Select select INDEX
    e.g. select 1

  • Clear clear

  • Find find KEYWORD [MORE_KEYWORDS]
    e.g. find Arduino

  • Status status

  • Change Status changeStatus n/NAME q/QUANTITY os/ORIGINALSTATUS ns/NEWSTATUS
    e.g. changeStatus n/Arduino q/20 os/Ready ns/Faulty

  • Loan List loanList n/NAME q/QUANTITY l/LOANER
    e.g. loanList n/Arduino q/20 l/KinWhye

  • View Loan List viewLoanList

  • Delete Loan List deleteLoanList INDEX
    e.g. deleteLoanList 1

  • Tag tag KEYWORD [MORE_KEYWORDS]
    e.g. tag Lab1

  • Add Tag addTag INDEX t/TAG [MORE_TAGS]
    e.g. addTag 1 t/Lab2

  • Delete Tag deleteTag INDEX t/TAG [MORE_TAGS]
    e.g. deleteTag 1 t/Lab2

  • Lost : lost INDEX q/QUANTITY
    e.g. lost 1 q/25

  • Found : found INDEX q/QUANTITY
    e.g. found 1 q/25

  • Lost&Found List : lost&found

  • Undo : undo

  • Redo : redo

  • History : history

  • Save save NAME
    e.g. save ForAugust

  • Open open NAME
    e.g. open forAugust

  • Add Account addAccount u/USERNAME p/PASSWORD
    e.g. add u/jalil p/boss

  • Delete Account deleteAccount INDEX
    e.g. deleteAccount 2

  • Edit Account editAccount INDEX u/USERNAME [p/PASSWORD]
    e.g. edit 2 p/password123!

  • Reset Accounts resetAccounts

  • Logout logout

  • Exit exit