VBook is a desktop application for freelance software developers to store and organise client contact details and log client preferences. VBook is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
VBook (VimBook) is inspired by the Vim editor, where users can edit, navigate, and program faster with the keyboard than using a mouse. Hence, our commands and theme are inspired by the style of Vim.
Software developers who type fast can get their contact management tasks done at lightning speed with VBook's keyboard-only navigation feature. With advanced privacy features like password protection and encryption, VBook ensures that software developers’ client details remain secure and confidential at all times.
Note: This document assumes familiarity with the command line, though it is not required.
Ensure you have Java 17
or above installed in your computer. For Mac users, you should use the specific Azul JDK 17
distribution following this guide.
Download the latest VBook.jar
file from here.
Copy the file to the folder you want to use as the home folder for VBook.
Open a command terminal, change directory (cd
) into the folder you put the VBook.jar
file in, and use the java -jar VBook.jar
command to run the application.
cd path/to/vbook
java -jar VBook.jar
:help
and pressing ENTER will open the help window.:clear
and press ENTER.
For a summary of all our commands, refer to this table below:
Action | Format | Examples |
---|---|---|
Add | :add -n NAME [-p PHONE_NUMBER] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] :a -n NAME [-p PHONE_NUMBER] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] | :add -n James Ho -p 98765432 -e jamesho@example.com -l 123, Clementi Rd, 1234665 -t friend -r My favourite colleague :a -n James Ho -p 98765432 -e jamesho@example.com -l 123, Clementi Rd, 1234665 -t friend -r My favourite colleague |
Clear | :clear :cl | :clear :cl |
Delete | :remove -i INDEX :rm -i INDEX | :remove -i 3 :rm -i 3 |
Edit | :edit INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] :ed INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] | :edit 2 -n James Lee -e jameslee@example.com :ed 2 -n James Lee -e jameslee@example.com |
Quit | :quit :q | :quit :q |
Export | :export :exp | :export :exp |
Find | :find [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] :f [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK] | :find -n david -l serangoon :f -n david -l serangoon |
Help | :help :h | :help :h |
List | :list :ls | :list :ls |
Redo | :redo :r | :redo :r |
Undo | :undo :u | :undo :u |
Notes about the command format:
All commands are in lowercase.
Words in UPPERCASE
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 John Doe
.
Items in square brackets are optional.
e.g. -n NAME [-t TAG]
can be used as -n John Doe -t friend
or as -n John Doe
.
Items with …
after them can be used any number of times.
e.g. [-t TAG]…
can be used as (i.e. 0 times),
-t friend
(i.e. 1 time), -t friend -t family
(i.e. 2 times) etc.
Parameters can be in any order.
e.g. if the command specifies -n NAME -p PHONE_NUMBER
, -p PHONE_NUMBER -n NAME
is also acceptable.
Extraneous parameters for commands that do not take in parameters (such as :help
, :list
, :quit
and :clear
) will be ignored.
e.g. if the command specifies :help 123
, it will be interpreted as :help
.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Notes about the parameters:
Some parameters have restrictions on the values they accept:
+_.-
). The local-part may not start or end with any special characters.Refer to the Features below for details of each command.
Shows a command cheatsheet, as well as a link to access this user guide.
Format :help
Shortcut: :h
Adds a person to the address book.
Format: :add -n NAME [-p PHONE_NUMBER] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK]
Shortcut: :a
Tip: A person can have any number of tags (including 0).
Examples:
From an initial state of the address book as shown above, typing in the commands below will result in an output as shown below.
:add -n Jack Lee
.:a -n Ivy King -p 87654320 -e ivyk@example.com -l 808 Palm St -t friend -t client -r Met at a conference
.Shows a list of all persons in the address book.
Format: :list
Shortcut: :ls
Edits an existing person in the address book.
Format: :edit INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK]
Shortcut: :ed
-t
without
specifying any tags after it.Examples:
From an initial state of the address book as shown above, typing in the commands below will result in an output as shown below.
:edit 1 -p 91234567 -e johndoe@example.com
.:edit 2 -n Betsy Crower -t
.Finds contacts that match any specified search criteria, including name, phone number, email, location, tags, or remark.
Format: :find [-n NAME] [-p PHONE] [-e EMAIL] [-l LOCATION] [-t TAG]… [-r REMARK]
Shortcut: :f
-n david -r busy
.:find -n Hans -p 98765432
will not return "Hans" if his phone number is not "98765432".Examples:
From an initial state of the address book as shown above, typing in the commands below will result in an output as shown below.
:find -n alice -l oak
.Removes the specified person(s) from the address book.
Format: :remove -i INDEX1, INDEX2, ...
Shortcut: :rm
Examples:
From an initial state of the address book as shown above, typing in the commands below will result in an output as shown below.
:list
to list all your contacts, followed by :remove -i 1, 3
.:find -n Betsy
followed by :remove -i 1
to delete the 1st person named "Betsy" in the result of the :find
command. If you have multiple people named "Betsy", you can delete them using their specified index as well.Reverts the address book to the state before the last change.
User can undo up to 10 changes.
Can undo commands that change the address book data, such as:add
,:remove
,:edit
.
Format: :undo
Shortcut: :u
Examples:
:add
command), to undo the command and remove "John Doe", key in :undo
.:remove
command), to undo the command and restore the contact, key in :undo
.Tip: Ctrl-Z can also be used to undo the last change outside the command box.
Reapplies the last change to the address book that was undone with the
:undo
command.
User can redo up to 10 changes that were undone with the:undo
command.
Format: :redo
Shortcut: :r
Examples:
:undo
was used to revert the addition of "John Doe", to add "John Doe" back to the address book, key in :redo
.:undo
was used to revert the deletion of "Betsy", to delete "Betsy" again, key in :redo
.Tip: Ctrl-Shift-Z can also be used to redo the last change outside the command box.
Exports the address book data to a specified file in JSON format. Upon command, user will be prompted to select a directory to save the file.
Format: :export
Shortcut: :exp
Important: If you want to transfer your data to a VBook application in another computer, use :export
instead of directly copying the data file over. Refer to the FAQ for a detailed guide on this.
Clears all entries from the address book's data.
Format: :clear
Shortcut: :cl
Quits the program.
Format: :quit
Shortcut: :q
Command | Shortcut |
---|---|
View Help | :h |
Add Person | :a |
List All | :ls |
Edit Person | :ed |
Find Person | :f |
Remove Person | :rm |
Undo | :u |
Redo | :r |
Export Data | :exp |
Clear Data | :cl |
Quit Program | :q |
There are two modes in VBook: Command Box and UI Navigation. The following keyboard shortcuts are available in each mode.
Initial Setup: When you launch VBook for the first time, you’ll be prompted to create a new password. This password will be used to control access to your address book.
Info:
The password will be hashed with a salt and saved into a password.txt
file stored in the same directory as VBook.jar
.
Subsequent Logins: Each time you open VBook, you’ll be prompted to enter your password. This ensures that your data remains secure and accessible only to authorized users.
Caution:
If you forget your password, there is no way to retrieve your data. To re-enter the application, you can delete the password.txt
file located in the same directory as VBook.jar
.
However, deleting this file will also permanently erase all your address book data. This safeguard is designed to prevent unauthorized users from bypassing the password prompt.
Tip: Store your password in a secure place to avoid losing access to your data.
How it Works:
vbook.jks
stored in the same directory as VBook.jar
.Info: Encryption only happens the first time you make changes to the address book from the VBook GUI. Loading a JSON file to your directory will not automatically encrypt the file.
VBook data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
The encrypted VBook data are saved automatically as a JSON file
[JAR file location]/data/vbook.json
.
Caution: Do not make changes to the encrypted JSON file, as it can corrupt the data and make it unreadable. If you want to manually edit the data file, follow these instructions:
:export
.data/vbook.json
with the vbook.json
file from your export in Step 1.Note:
If your changes to the data file makes its format invalid, VBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the VBook to behave in unexpected ways (e.g. if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Q: How do I transfer my data to another computer?
A: To transfer your data over, follow these steps:
:export
.data/vbook.json
with the vbook.json
file from your export in Step 1.Note: Your data in your new VBook application will only be encrypted when you make a change to it in the application, through commands (i.e. :add
, :edit
).
preferences.json
file created by the
application before running the application again.:help
command (or use the Help
menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.