User Guide
Product Overview
Land the dream internship or job opportunity you’ve always wanted by networking more effectively using NetworkBook!
NetworkBook is a desktop contact book application built for NUS Computing students and professionals to manage information about the people they network with more efficiently than ever before.
Here’s an overview of how NetworkBook can help you manage your network of contacts better than existing alternatives:
- Search for and sort contacts by multiple networking-relevant fields (e.g. priority, courses taken/taking, specialization(s) taken/intending to take, graduation year)
- Access this application offline, with a static online page that contains user manual and download link
- Record only the information you find relevant on our application (e.g. you can assign one contact only their email and specialisation, and another contact nothing but their course)
On top of these advantages, we believe that contact management must be efficient. Therefore, NetworkBook is optimised for use via fully textual commands while still having an interactive and user-friendly visual interface. For fast typers, NetworkBook can get your contact managing done faster than existing alternatives performing a similar role.
If you are new here, visit our getting started guide to start getting connected on NetworkBook!
Table of Contents
- Product Overview
- Table of Contents
- About This User Guide
- Getting Started
- Features
- Command summary
- FAQ
About This User Guide
This user guide provides in-depth documentation on the various commands that are available in NetworkBook. If you are familiar with the software, this user guide gives an overview on how to use specific commands.
Additionally, if you are a new user, this user guide provides a getting started guide to aid you with installing the application and the initial setup.
What’s new in NetworkBook 1.3
NetworkBook 1.3 includes several new features and improvements for ease of use.
-
Additional find/view commands (e.g.
sort
andfilter
) have been introduced to let you have more control over managing displayed contacts. - Edit command has been introduced to allow you to edit contacts’ details.
- Open links and emails via our newly-introduced commands that involve NetworkBook connecting to other apps.
- Undo/redo commands have been added to help you revert mistaken/temporary command calls.
- Keyboard shortcuts have been introduced for you to easily access common commands.
- User interface has now been refined to be more clean and usable.
- Error messages are now more specific to give more helpful information.
Getting Started
- Make sure you have Java 11 installed on your computer.
- You can check that it is installed by running the command
java --version
in the command prompt/terminal.
- You can check that it is installed by running the command
- Download the latest version of NetworkBook (
networkbook.jar
) from the top of the NetworkBook GitHub releases page. - Create a new folder on your computer (e.g. on your computer desktop). You can name this folder however you want.
- Move the
networkbook.jar
file into the folder you just created. - Open NetworkBook:
- If you are using Windows:
- Double-click the
networkbook.jar
file to open it.
- Double-click the
- If you are using MacOS:
- Open Terminal.app.
- Navigate to the folder you have created using the
cd
command:- Type
cd
, then space, into the Terminal window. - Drag the folder icon from Finder into the Terminal window.
- Press enter.
- Type
- Type in
java -jar networkbook.jar
, then press enter to open the app.
- If you are using Linux:
- Open your terminal emulator app.
- Navigate to the folder you have created using
cd
. - Type in
java -jar networkbook.jar
, then press enter to open the app.
- If you are using Windows:
- You should now see the NetworkBook window on your screen. This is what NetworkBook looks like:
- You can now start using NetworkBook!
- Learn more about the commands in the features section.
Features
Fields of a contact
In NetworkBook, details of a contact are categorised into different fields. Each field has a corresponding prefix in the command format.
Some fields are single-valued fields, meaning that each contact has only 1 value for each of these fields.
Single-valued fields | Prefix | Format | Remarks |
---|---|---|---|
name | /name | Any non-empty value comprising alphanumeric characters (and spaces, if any) | If a contact’s name contains non-alphanumeric characters (e.g. / ), you may omit these characters in the name that you store. |
priority level | /priority | Either high , medium or low , or the initial alphabet |
Not case-sensitive |
graduation semester | /grad |
AYxxxx-Sy e.g., AY2223-S1 for Academic Year 2022 /2023 Semester 1
|
xxxx is the 4-digit representation of 2 consecutive calendar years.Academic year must be between AY1970/1971 to AY2069/2070 (inclusive). y is either 1 for Semester 1, or 2 for Semester 2. |
Other fields are multi-valued fields. Each contact has a list of different values for each of these fields.
Multi-valued fields | Prefix | Format | Remarks |
---|---|---|---|
phone numbers | /phone | Valid phone number containing numbers and optional country code (1-3 numbers with + in front) if applicable |
Phone number body (excluding country code) must be at least 3 digits long. Phone numbers with and without whitespace character are treated as different (e.g. +6512345678 is different from +65 12345678 ). |
email addresses | Valid email with @ (at sign) and . (period) present after @
|
- | |
links | /link | Valid URL link | Link must be URL-encoded. That is, it must be the same as the URL that appears on the browser’s URL bar after you visit the page. |
courses | /course |
course_name [/start date] [/end date] e.g., CS2103T /start 01-09-2023 /end 01-12-2023
|
/start and /end indicate when the contact started and finished taking the course respectively. A course can have no dates, a start date, or a start and end date. |
specialisations | /spec | Any non-empty value | - |
tags | /tag | Any non-empty value | - |
In NetworkBook, you can manage contact information by changing the fields assigned to them. Following are the commands you can use to manage fields of a contact:
Command | How does it manage the fields |
---|---|
create | optionally initialise certain fields when creating new contact |
add | add more details to a field of a contact |
edit | update some details about a field of a contact |
delete | delete some details from a field of a contact |
Indices
In NetworkBook, you often need to provide an index to specify a contact, or an entry in a multi-valued field of a contact. Indices are integers counted from 1.
Make sure to provide indices that has a corresponding item in your NetworkBook. The exact valid range is from 1 to 2147483647 inclusive. If your command contains an invalid index, it will be considered an invalid command.
Category 1 - Add contact information
This category involves the addition of contact information using specific commands. Relevant commands and explanations of their functionalities are outlined below:
Create new contact: create /name [name] [optional fields]
You can use the create
command to create a new contact. When creating a contact, you must provide the name field, and it’s optional to provide other fields which will be added to the new contact.
Format: create /name [name] [optional field prefix] [optional field value] ...
Parameters:
-
[name]
is the name of the contact you wish to add. -
[optional fields]
are non-mandatory fields you can associate with the contact at the point of creation.
Non-mandatory fields you can associate with a contact at the point of creation comprise the contact’s phones
, emails
, links
, graduation semester
, courses
, specialisations
, tags
and priority level
. (These fields can also be subsequently added to the contact using the add
command.)
To view a comprehensive list of fields and their prefixes, go to the start of the Features section.
When creating a contact, if there is already another contact with the same name, you would be informed that another contact with the same name already exists (not case sensitive).
Example usage:
-
create /name Jiale /phone 12345678 /grad AY2526-S2
create /name Jiale
Add details to contact: add [index] [fields]
You can use the add
command to add contact details under fields associated with an existing contact. No new contact will be created.
Format: add [index] [field prefix] [field value] ...
Parameters:
-
[index]
is the index of the contact in the list, within valid range. -
[field prefix]
specifies the corresponding field to add. -
[field value]
is the value to add to the field specified by the preceding prefix.
Fields you can add contact details to for an existing contact comprise the contact’s phones
, emails
, links
, graduation semester
, courses
, specialisations
, tags
and priority level
.
To view a comprehensive list of multi-valued fields and their prefixes, go to the start of the Features section.
1
already has the phone number 12345678
, the command add 1 /phone 12345678
does nothing.
Example usage:
-
add 1 /phone 91234567
add 2 /grad AY2223-S1
add 3 /link https://nknguyenhc.github.io /email nknguyentdn@gmail.com
add 1 /priority high /tag data analyst /course CS1101S /spec Robotics & AI
Category 2 - Edit contact details
This category focuses on modifying contact information and managing entries in your NetworkBook. Relevant commands and explanations of their functionalities are outlined below:
Edit contact detail: edit [index] [field] [options]
You can use the edit
command to edit contact details of existing contacts in your NetworkBook so that you can update outdated/invalid information in your NetworkBook.
Format:
- Edit single-valued field:
edit [index of contact] [field prefix] [field value]
- Edit an entry of a multi-valued field:
edit [index of contact] [field prefix] [field value] /index [index of entry]
Parameters:
-
[index of contact]
is the index of the contact in the list, within valid range. -
[field prefix]
specifies the field of information to edit. -
[field value]
is the new value to replace the original value with. -
[index of entry]
for a multi-valued field is the index of the element in the list representing that field, within valid range.
For single-valued fields, the /index
prefix should not be used.
For multi-valued fields, the /index
prefix is optional and at most 1 index can be specified at a time.
Fields you can edit contact details for in an existing contact comprise the contact’s name
, phones
, emails
, links
, graduation semester
, courses
, specialisations
, tags
and priority level
.
To view a comprehensive list of fields and their prefixes, go to the start of the Features section.
Example usage:
-
edit 3 /priority low
edit 2 /phone 10938472 /index 1
edit 3 /email nkn@gmail.com
Delete a contact: delete [index]
You can remove a contact from your NetworkBook using the delete
command, so that your NetworkBook only contains contact details of those relevant.
Format: delete [index]
Parameters:
-
[index]
is the index of the contact in the list, within valid range.
Example usage:
-
delete 6
delete 1
Delete some details: delete [index] [field prefix] [options]
You can also use the delete
command to remove some information about a contact that you previously recorded.
Format:
- Delete single-valued field:
delete [index of contact] [field prefix]
- Delete an entry of a multi-valued field:
delete [index of contact] [field prefix] /index [index of entry]
Parameters:
-
[index of contact]
is the index of the contact in the list, within valid range. -
[field prefix]
specifies the field of information to delete. -
[index of entry]
for a multi-valued field is the index of the element in the list representing that field, within valid range.
For single-valued fields, the /index
prefix should not be used.
For multi-valued fields, the /index
prefix is optional and at most 1 index can be specified at a time.
Fields you can delete contact information for in an existing contact comprise the contact’s phones
, emails
, links
, graduation semester
, courses
, specialisations
, tags
and priority level
.
To view a comprehensive list of fields and their prefixes, go to the start of the Features section.
Example usage:
-
delete 1 /phone /index 2
delete 5 /link /index 2
delete 10 /priority
Delete all contacts: clear
You can remove all contacts from your NetworkBook using the clear
command, so that you can repopulate NetworkBook with a new set of contact details more efficiently.
undo
.
Format: clear
Parameters: N/A
Example usage:
clear
Category 3 - Find/view contacts
This category is centered around managing contacts displayed in your NetworkBook. Relevant commands and explanations of their functionalities are outlined below:
List all contacts: list
You can use the list
command to list all of your contacts. This resets any filtering previously applied to the list, so that you can quickly toggle to see all contacts.
Format: list
Parameters: N/A
Example usage:
list
Find a contact: find [name]
You can use the find
command to search for contacts by their name, so that you can quickly reference a particular contact’s details.
If the list is currently sorted in a particular manner (using sort
), the updated list will also be sorted in the same manner.
Format: find [name]
Parameters:
-
[name]
is a term found in the names of the contacts you wish to find.
Filter by: name
. The find command will also override a filter command if you used it, and vice versa.
Example usage:
-
find Dav
find Kai Jie
Sort contacts list: sort /by [field name] /order [asc/desc]
You can use the sort
command to sort your list of contacts so that you can efficiently locate contacts with special characteristics that you are looking for.
If the list is currently filtered in a certain manner (using find
or filter
), the updated list will also be filtered in the same manner.
Format: sort /by [field] /order [order]
Parameters:
-
[field]
is the information to sort by.List of options:
-
name
- Sort alphabetically by contact name -
grad
- Sort chronologically by graduation year -
priority
- Sort by priority
-
-
[order]
(optional) is the order to sort in. If not specified, defaults to ascending.List of options:
-
asc
/ascending
- Sort in ascending order -
desc
/descending
- Sort in descending order
-
graduation
or priority
), all contacts without that field will be placed at the bottom of the sorted list regardless of sorting order.
Example usage:
-
sort /by grad /order desc
sort /by name /order ascending
sort /by name
Filter contacts list: filter /by [field] /with [term]
You can use the filter
command to filter your list of contacts, temporarily hiding contacts that don’t contain certain keywords
for easy viewing. If the list is currently sorted (using sort
), the newly filtered list will be still be sorted in the same manner as before.
Format: filter /by [field] /with [term] /taken [taken]
Parameters:
-
[field]
is the information to filter by.List of options:
-
course
- Filter to contacts whose courses contain one one of the terms -
tag
- Filter to contacts whose tags contain one of the terms -
spec
- Filter to contacts whose specialisations contain one of the terms -
grad
- Filter to contacts who graduated in a specific year
-
-
[term]
is the terms that will be filtered against. All contacts in the filtered contact list must have part of the[term]
in the[field]
specified above. -
[taken]
(optional). Only for filtering bycourse
, this parameter additionally filters out contacts who have finished/haven’t started the course as of the current date of your system.List of options:
-
true
- Remove contacts who have finished/haven’t started the course as of the current date of your system. -
false
- (default). Include all contacts with matching course terms in the filtered list regardless of course dates.
-
taken
compares the dates of the course with the current date of
your system. It does not factor in other fields like graduation year.
Example usage:
-
filter /by tag /with friend colleague
filter /by course /with computer /taken true
filter /by course /with robotics
filter /by spec /with Industry AI
filter /by grad /with 2022 2023 2024 2025
Category 4 - Undo/redo
This category focuses on managing the history of changes made to displayed and/or stored contacts in your NetworkBook. Relevant commands and explanations of their functionalities are outlined below:
Undo last change to NetworkBook: undo
You can use the undo
command to undo the last change to the list of contacts stored in NetworkBook and/or the list of contacts displayed by NetworkBook, so that you can quickly revert mistaken/temporary NetworkBook commands (excluding undo
). This command can only undo changes made in your current session on NetworkBook.
Format: undo
Parameters: N/A
Example usage:
undo
Redo last undone change: redo
You can use the redo
command to redo the last change to the list of contacts stored in NetworkBook and/or the list of contacts displayed by NetworkBook, so that you can quickly revert mistaken/temporary undo
commands. This command only works if you have previously used undo
commands in NetworkBook that can be reversed.
Format: redo
Parameters: N/A
Example usage:
redo
Category 5 - Open other apps
This category focuses on the opening of external applications or services associated with contact details. Relevant commands and explanations of their functionalities are outlined below:
Open a contact’s link: open [index] /index [link index]
You can use the open
command to open a contact’s link so that you can conveniently access their social links when needed. This opens the webpage in your default web browser.
Format: open [index] /index [link index]
Parameters:
-
[index]
is the index of the contact in the list, within valid range. -
[link index]
is the index of the link within the contact’s link list, within valid range.
Example usage:
-
open 2 /index 2
Note: The web browser used will be your computer’s default web browser. open 1
Send email to a contact’s email address: email [index] /index [email index]
You can use the email
command to open the default mailbox application to compose an email to the contact’s email at email index
, so that you can send emails to your contacts more efficiently.
Format: email [index] /index [email index]
Parameters:
-
[index]
is the index of the contact in the list, within valid range. -
[email index]
is the index of the email address within the contact’s email list, within valid range.
Example usage:
-
email 1
Note: The email app used will be your computer’s default email app. email 1 /index 2
Category 6 - Keyboard shortcuts
This category introduces keyboard shortcuts to enhance efficiency when interacting with NetworkBook. Relevant commands and explanations of their functionalities are outlined below:
Auto-fill command preamble: ctrl-F/N/G/U/R
When typing in the command box, if the command box is empty, you can use the following keyboard shortcuts to auto-fill the first word of some commands:
-
ctrl-F
: auto-fill withfind
-
ctrl-N
: auto-fill withcreate
-
ctrl-G
: auto-fill withedit
-
ctrl-U
: auto-fill withundo
-
ctrl-R
: auto-fill withredo
Navigate command history: Up/Down arrow keys
When typing in the command box, you can use the arrow keys to fill the command box with a previously executed command.
-
Up arrow key
: navigate back to the previous command in the history, if any. -
Down arrow key
: navigate forth to the next command in the history, if any.
Undo/redo last change: ctrl-Z/Y
When not typing in the command box, you can use the following shortcuts to quickly execute an undo
or redo
command.
-
ctrl-Z
: undo last change to NetworkBook (equivalent toundo
command) -
ctrl-Y
: redo last change undone (equivalent toredo
command)
Note that this only works when the command box is not active. If you are typing in the command box, these shortcuts will be used to undo or redo changes made to the command text.
Other useful shortcuts: ctrl-S/W
, F1
-
ctrl-S
: manually save to data file (equivalent tosave
command) -
ctrl-W
: exit NetworkBook (equivalent toexit
command) -
F1
: view help window (equivalent tohelp
command)
F1
key is bound to a different function in your computer settings, the keyboard shortcut to view help window may not work as expected.
Category 7 - Mouse interaction
While NetworkBook is optimised for use with keyboards and text commands, it also has buttons you can click to execute certain commands. Relevant commands and explanations of their functionalities are outlined below:
Filter (equivalent to filter
command)
You can click on a contact’s tag, course, graduation, or specialisation to view all contacts with the same tag/course/graduation/specialisation.
Open link (equivalent to open
command)
You can click on a contact’s link to open the link in your web browser.
Email contact (equivalent to email
command)
You can click on a contact’s email address to email them.
Category 8 - Miscellaneous
This category covers miscellaneous commands for additional functionalities in NetworkBook. Relevant commands and explanations of their functionalities are outlined below:
View help window: help
You can use the help
command to open a help window containing a link to this user guide. You can press the “Copy URL” button to copy the link, and paste it into your web browser to view this user guide web page.
Format: help
Parameters: N/A
Example usage:
-
help
Manually save to data file: save
You can use the save
command to manually save your contacts to the data file.
Format: save
Parameters: N/A
Example usage:
save
Exit NetworkBook: exit
You can use the exit
command to close the NetworkBook app.
Format: exit
Parameters: N/A
Example usage:
exit
Command summary
Command | Prefixes | Format and examples | What it does |
---|---|---|---|
create |
/name [/phone] [/email] [/link] [/course] [/spec] [/grad] [/priority] [/tag]
|
create /name [name] [optional fields] e.g., create /name Oreki create /name Ness /phone +6598765432 /grad AY2526-S2
|
Creates a new contact in NetworkBook. If optional fields are provided, their values will be added to the contact. |
add |
[/phone] [/email] [/link] [/course] [/spec] [/grad] [/priority] [/tag]
|
add [index] [field prefix] [field value] ... e.g., add 2 /email test@eg.com add 1 /link https://nknguyenhc.github.io/ add 1 /priority high /grad AY2223-S1
|
Adds information to a contact. |
edit | Single-valued fields: [/name] [/grad] [/priority] Multi-valued fields: [/phone] [/email] [/link] [/course] [/spec] [/tag]
|
Single-valued fields: edit [index of contact] [field prefix] [field value] e.g., edit 1 /name Nguyen edit 1 /grad AY2627-S1 Multi-valued fields: edit [index of contact] [field prefix] [field value] (default to index 1) e.g., edit 1 /email aaa@gmail.com edit 1 /course CS2109S /index 1
|
Edits information about a contact. |
clear | N/A | clear |
Deletes all contacts from NetworkBook. |
delete | N/A |
delete [index] e.g., delete 1
|
Deletes a contact from NetworkBook. |
delete | Single-valued fields: [/grad] [/priority] Multi-valued fields: [/phone] [/email] [/link] [/course] [/spec] [/tag]
|
Single-valued fields: delete [index of contact] [field prefix] e.g. delete 1 /priority Multi-valued fields: delete [index of contact] [field prefix] (default to index 1) delete [index of contact] [field prefix] /index [index of entry] e.g. delete 2 /spec delete 3 /email /index 2
|
Deletes some details of a contact. |
list | N/A | list |
Lists all saved contacts. |
find | N/A |
find [name] e.g., find Ness
|
Searches for contacts by name. |
sort |
/by [/order]
|
sort /by [field] /order [order] e.g., sort /by priority /order desc
|
Sorts contacts by a field. |
filter |
/by /with [/taken]
|
filter /by [field] /with [term] e.g. filter /by course /with abc filter /by tag /with banker For course: filter /by course /with [term] [/taken true/false] e.g. filter /by course /with abg /taken false
|
Filters contacts by a field. |
undo | N/A | undo |
Undoes the last change to the NetworkBook’s full list of contacts and/or list of displayed contacts. |
redo | N/A | redo |
Redoes the last change to the NetworkBook’s full list of contacts and/or list of displayed contacts. |
open | [/index] |
open [index] (default to index 1) open [index] /index [link index] e.g., open 1 e.g., open 1 /index 2
|
Opens a contact’s link in the default browser. |
[/index] |
email [index] (default to index 1) email [index] /index [email index] e.g., email 1 e.g., email 1 /index 2
|
Opens default mailbox to compose a new email to a contact’s email address. | |
help | N/A | help |
Opens a window containing a link to this user guide. |
save | N/A | save |
Manually saves contacts to data file. |
exit | N/A | exit |
Exits NetworkBook. |
FAQ
Launching NetworkBook
Q: How can I launch NetworkBook if the clicking on the JAR file does not work on my Windows computer?
A: If you are familiar with the command prompt, you can follow the steps below:
- Open command prompt on your computer
- Navigate to the directory where the JAR file is located using
cd [JAR file location]
- Type
java -jar networkbook.jar
and press enter - NetworkBook should launch
If you have any further issues, please raise an issue on our GitHub page. We will attend to you as soon as we can.
Checking Java version
Q: How can I check my Java version?
A: Open command prompt (Windows) or terminal (MacOS or Linux) on your computer, and type java -version
. If you do not have Java installed, you can download it here.
Loading data from another device
Q: How can I load my contacts stored in NetworkBook used in another device?
A: Locate the data file stored at [JAR file location]/data/networkbook.json
. Copy over the data file to the corresponding location on your current device. After that, launch NetworkBook to check whether your contact details have been loaded properly.
Editing data file manually
Q: Can I edit the data file for NetworkBook manually (i.e. from outside the NetworkBook app)?
A: You can edit the data file for NetworkBook manually, but at your own risk (if there are errors in the file related to formatting/invalid data, the app will not read the data file and begin from an empty data file instead.)