Welcome logistics managers! If you are someone who
Manages logistics and inventory in a professional capacity
Is a fast typist, tired of shuffling back and forth between a mouse and keyboard
Is feeling swamped by the tedium of contact management on traditional office software
Rejoice because AssetBook is here!
AssetBook helps to streamline the task of tracking contacts and the logistical assets they are in charge of, making your management tasks smoother than ever.
AssetBook is a contact management application designed to:
Digitally Organize your Contacts:
 Say goodbye to scattered contacts. Have them all organized and easily accessible in one place.
Effortlessly Track all your Assets:
 Keep tabs on who is responsible for every piece of equipment and item in your inventory.
Maximize your Operational Efficiency:
 Our application, combined with your swift keyboard skills, turns the chore of contact management into a seamless and satisfying process
with convenient commands and shortcuts.
This user guide is meant to provide guidance for using AssetBook and comprehensively document its features. You can click on blue-colored texts such as this link to the table of contents to jump to the referenced section immediately.
A glossary is provided in case you encounter any unfamiliar terms.
Look out for texts with icons similar to this, which would contain additional information, tips, or warnings.
If this your first time using AssetBook, head over to quick start to learn how to set up the application and get started. After which, you may take a look at the features of AssetBook, or simply follow this guide in order.
Don't worry if you don't have much technical know-how! We will guide you through step-by-step.
If you are not a new user and are just looking to refresh your memory, you can utilize the table of contents or skip to the command summary.
The following instructions are for Windows, MacOS and Linux.

assetbook.jar into the folder where you want AssetBook to store the contact information. New users may simply
create a folder on their desktop, then drag and drop assetbook.jar inside. 
 
assetbook.jar and a GUI similar to the one below should appear.
Note that the application contains some sample data when launched for the first time.
Having trouble? You may find the FAQ useful.
Here are the components of the GUI.

You can resize the command output box by dragging its top edge.
This section provides a walkthrough of common tasks performed in AssetBook.
Here we show you how to add a contact with an associated asset, search for your added contact, and edit it. All commands are performed by typing specific texts into the command input box. For detailed information on all available features, please refer to the features section.
Let's get started by adding our first contact, John Doe, into AssetBook.

add n\John Doe p\98765432 e\johnd@example.com a\311, Clementi Ave 2, #02-25 t\friends t\owesMoney A\screwdriver
Enter to add the contact into AssetBook.
Now that you've successfully added John Doe to AssetBook, let's try to find his contact.
Click the Command Input Box: First, click on the command input box of AssetBook. This is where you'll enter the find command.
Enter the Find Command:
Let's now find the contact, John, we just added by entering the following command:
 find John

Enter to find the contact in AssetBook.
Let's update John's email address.
Click on the Command Input Box: Begin by locating and clicking on the command input box.
Find out John's Index:
We can find out what John's index is by checking the number currently beside his name. The find command makes it easier by
reducing the number of contacts displayed. Here, he has index 1.

The index each contact has changes when you use the find command.
edit 1 e\newemail@example.com
Enter after typing in the command. This will update John's email address.
Let's update our existing assets.
Click on the Command Input Box: Start by clicking on the command input box.
Enter the Edit Asset Command:
We can change all assets with the name "screwdriver" to "screw" using the following command:
 asset o\screwdriver n\screw

Enter. This will update the asset details in AssetBook.
This section documents all the features of AssetBook in detail.
Most features of AssetBook come in the form of commands, which are specific text inputs that the user enters into the application. Features fall into two broad categories: those that allow the user to modify contact data, and those that are miscellaneous shortcuts for convenience.
Colored text that look like the following describe the format of a command.
add n\NAME p\PHONE e\EMAIL a\ADDRESS [t\TAG]... [A\ASSET]...
A valid input by the user corresponding to the above will be
add n\John Doe e\johndoe@example.com a\574 Ang Mo Kio Ave 10 p\12345678 A\L293D
Command words are not case-sensitive, i.e. add, Add, ADD, etc. are all valid.
Notes about the notation used to describe commands
Here, add is the command word, signifying that this adds a new contact to the list of contacts.
Parameters have the format PREFIX\FIELD.
e.g. n\, p\, e\ are prefixes.
John Doe, 98765432, johnd@example.com are respective examples of fields.
Text that are capitalized like NAME are descriptions of what kind of text the field should be.
e.g. For n\NAME, n\John Doe should be entered in its place.
Items in square brackets are optional.
e.g. For n\NAME [t\TAG], both n\John Doe t\friend and n\John Doe are valid.
Items followed by ... indicates that it can be entered multiple times.
e.g. For [t\TAG]..., both t\friend and t\friend t\colleague are valid.
Parameters can be in any order.
e.g. if the command specifies n\NAME p\PHONE, p\PHONE n\NAME is also valid.
Parameters entered by the user but not specified by the command format will be ignored.
e.g. The format is exit, but the user enters exit 123. This will still be interpreted as exit.
After successful execution of a command, some feedback will appear in the command output box. If you enter something that the application did not expect or does not understand, an error message will show up instead.
If you are using a PDF version of this document, be careful when you copy and paste commands that span multiple lines, as space characters may be missing when copied over to the application.
Note that the backslash \ is reserved for prefixes. It is not allowed to be part of any field.
This section contains the details for modifying commands, which add, edit or delete data in AssetBook.
addAdds a new contact.
Format: add n\NAME p\PHONE e\EMAIL a\ADDRESS [t\TAG]... [A\ASSET]...
A contact can have any number of tags and assets (including 0).
L293D:add n\John Doe e\johndoe@example.com a\574 Ang Mo Kio Ave 10 p\12345678 A\L293D
If the command was executed successfully, the following message will appear:
 New contact added: John Doe; Phone: 12345678; Email: johndoe@example.com; Address: 574 Ang Mo Kio Ave 10; Tags: []; Assets: [[L293D]]

If the command was not executed successfully, the proper format of the add command will be shown to you instead.

NAME
john doe is not the same as John Doe.PHONE
+65-8765-4321, +97 6223 5555 is allowed.EMAIL
local-part@domain-name with the following constraints:
local-part consists of alphanumeric characters that may be separated with any one of these special characters: +_.-. local-part should not start or end with any special character.@ and then a domain name. domain-name is made up of 1 or more domain-labels separated with a period.domain-labels must:
domain-label must be at least 2 characters long.ADDRESS
TAG
ASSET
edit command.NUS is not the same as nus.A\asset1 A\asset2 A\asset3.You may assign the same asset to multiple contacts, so remember to name different assets with unique names.
deleteDelete a contact by specifying its index.
Format: delete INDEX
delete 1 deletes the contact at index 1.
INDEX refers to the unique contact index shown beside the contact names.editEdit existing contacts without recreating them.
Format: edit INDEX [n\NAME] [p\PHONE] [e\EMAIL] [a\ADDRESS] [t\TAG]... [A\ASSET]...
edit 1 e\newemail@example.com edits the contact with index 1, changing its email to newemail@example.com.
INDEX. INDEX refers to the unique contact index shown in the GUI.t\ without specifying any tags after it.A\ without specifying any assets after it.Edit replaces the current tags and assets of a contact. It does not add on to existing tags and assets.
assetEdit existing assets without recreating them.
Format: asset o\OLD_ASSET_NAME n\NEW_ASSET_NAME
asset o\hammer n\screwdriver edits the asset hammer, changing its name to screwdriver.
o\ refers to the old asset name, while n\ refers to the new asset name.clearDeletes all contacts.
Format: clear
If you unintentionally deleted all your contacts, you can use the undo command to bring them back.
This section contains the details for non-modifying commands and other useful shortcuts.
findFinds contacts by name, tag or asset.
Format: find QUERY
Find contacts whose name, tags, or assets contain jo:
 find jo

3 matches were found, each with jo found in a different field and at different positions.
assets contains set, but does not contain settings.listDisplays all contacts.
Format: list
find.undoUndoes the last modifying command.
Format: undo
After incorrectly deleting the first contact with delete 1, it can be restored with undo.
add, delete, edit, asset, clear.redoReverses the latest undo command.
Format: redo
If an asset name was changed, after undo was executed to verify what the previous asset name was, redo can be used to revert to the new asset name.
After executing an undo command, you cannot redo this if another modifying command was executed.
↑ and ↓Displays previously executed commands, which can then be edited and executed again.
Press the ↑ arrow key to show older commands.
Press the ↓ arrow key to show newer commands.
Only successfully executed commands will be shown.
copyCopies a specific field to your clipboard, which you can paste elsewhere.
Format: copy INDEX PREFIX
INDEX refers to the unique contact index shown in the GUI.copy 1 p\ copies the phone number of the contact with index 1 onto the clipboard.
| Prefix | Field | 
|---|---|
| n\ | Name | 
| p\ | Phone | 
| e\ | |
| a\ | Address | 
| t\ | Tags | 
| A\ | Assets | 
helpDisplays a link to this user guide.
Format: help
exitExits the application. Equivalent to pressing X on the top right corner on Windows, and top left corner on MacOS.
Format: exit
AssetBook's data is saved automatically after any command that changes the data. There is no need to save manually.
AssetBook's data are saved automatically as a JSON file [JAR file location]/data/assetbook.json.
Advanced users are welcome to update data directly by editing that data file.
Caution: Editing the JSON file directly is a feature meant only for advanced users. If you edit the JSON file, it is your responsibility to ensure that the edits are valid. If the JSON file is invalid, a warning message will be shown when AssetBook is launched.
Q: My device is running MacOS, and the text is not displaying correctly. What should I do?
 A: Try installing this Java 11 version instead.
Q: My device is running MacOS, and I am unable to open assetbook.jar by double-clicking. What should I do?
 A: Hold Ctrl and click on assetbook.jar. Select 'Open', and then 'Open' again to start the application.
Q: My device is running Linux, and I am unable to open assetbook.jar by double-clicking. What should I do?
 A: Open the terminal, enter java -jar path/to/assetbook.jar, replacing path/to with the location where assetbook.jar is saved.
Q: My device is running an operating system that is not Windows, MacOS or Linux. Can I use AssetBook?
 A: AssetBook may work on your device, but it is not guaranteed to work. If there is high demand, we may start supporting other operating systems!
Q: Do I have to use Java 11 specifically?
 A: While it may work with other versions of Java, AssetBook is developed specifically for Java 11. We cannot guarantee that it works on versions other than Java 11.
Q: How do I transfer my data to a new device?
 A: Set up AssetBook on the new device and copy the data folder from the old device to the new device. Ensure that the data folder is located in the same folder as assetbook.jar.
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen.
The remedy is to delete the preferences.json file created by the application before running the application again.
At present, names allow any special character except \. This is to allow the user flexibility to include uncommon names
that may include symbols such as /, ' and -. As such, the application may accept all manner of gibberish for names.
A remedy is planned for the future to perform more robust checks on names.
Some users may require assets to have more details recorded. We plan to add features that allow adding of more fields to assets such as serial number, location, etc.
| Command | Format | Example | 
|---|---|---|
| Add | add n\NAME p\PHONE e\EMAIL a\ADDRESS [t\TAG]... [A\ASSET]... | add n\John Doe e\johndoe@example.com p\+12345678 A\L293D | 
| Delete | delete INDEX | delete 1 | 
| Edit contact | edit INDEX [n\NAME] [p\PHONE] [e\EMAIL] [a\ADDRESS] [t\TAG]... [A\ASSET]... | edit 1 e\newemail@example.com | 
| Edit asset | asset o\OLD_ASSET_NAME n\NEW_ASSET_NAME | asset o\hammer n\screwdriver | 
| Clear | clear | clear | 
| List | list | list | 
| Find | find QUERY | find John | 
| Undo | undo | undo | 
| Redo | redo | redo | 
| Copy | copy INDEX PREFIX | copy 1 p\ | 
| Help | help | help | 
| Exit | exit | exit | 
Consists of only letters and numbers.
An item or amenity of logistical significance.
A single letter, number, or symbol. Examples: a, 1, &, -.
A place where text is stored in the computer, and can be typically retrieved with right click -> paste, Ctrl+V, or Command+V.
A specific text input entered into the command input box to interact with AssetBook.
A detail that is part of a parameter, and is after the prefix. For example, NAME is a field of the n\NAME parameter.
Graphical User Interface. The window that appears when an application is launched.
Windows, MacOS and Linux are examples of operating systems.
A detail that a command expects to be entered by the user. For example, n\NAME is a parameter of the add command.
A detail that is part of a parameter, and is before the field. For example, n\ is a prefix of the n\NAME parameter.