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 text based 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.

Table of Contents

About This User Guide

This user guide provides in-depth documentation on the various commands that are available in NetworkBook. These commands are grouped into 4 broad categories:

  1. Manage contact information
  2. View contact details
  3. Miscellaneous commands
  4. Accessibility features

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. You can check the FAQ section if you face any difficulty.

For more experienced users, this user guide gives an overview on how to use specific commands. You can use the table of contents to navigate to a specific command, or refer to the command summary as a help sheet.

What’s new in NetworkBook 1.3

NetworkBook 1.3 includes several new features and improvements for ease of use.

  • Additional view commands (e.g. sort and filter) 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.
  • New accessibility features 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

  1. 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.
  2. Download the latest version of NetworkBook (networkbook.jar) from the top of the NetworkBook GitHub releases page.
  3. Create a new folder on your computer (e.g. on your computer desktop). You can name this folder however you want.
  4. Move the networkbook.jar file into the folder you just created.
  5. Open NetworkBook:
    • If you are using Windows:
      1. Double-click the networkbook.jar file to open it.
    • If you are using MacOS:
      1. Open Terminal.app.
      2. Navigate to the folder you have created using the cd command:
        1. Type cd, then space, into the Terminal window.
        2. Drag the folder icon from Finder into the Terminal window.
        3. Press enter.
      3. Type in java -jar networkbook.jar, then press enter to open the app.
    • If you are using Linux:
      1. Open your terminal emulator app.
      2. Navigate to the folder you have created using cd.
      3. Type in java -jar networkbook.jar, then press enter to open the app.
  6. You should now see the NetworkBook window on your screen.
    • This is what the NetworkBook window looks like: Annotated diagram of the _NetworkBook_ window
    • This is what a contact in NetworkBook looks like: Annotated diagram of a _NetworkBook_ contact
  7. You can now use NetworkBook! Learn more about the commands in the features section.

Features

Contact Fields

Many commands in NetworkBook allow you to specify a particular field (piece of information) of a contact to operate on. This section lists all of the available fields, as well as how you can specify them in commands.

:information_source: Fields and prefixes

Each field in NetworkBook has a corresponding prefix. To specify a field in your command, follow the format of [field prefix] [field value], e.g. /name Tom.

Some fields are single-valued fields, meaning that each contact has only 1 value for each of these fields.

Single-valued fields Prefix Value 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 Value 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 /email 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

:bulb: 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 have a corresponding item in your NetworkBook. If your command contains an invalid index, an error message will be shown.

Category 1 - Manage contact information

This category focuses on storing and modifying a contact list. It involves specific commands that allow you to add, edit and delete contact information. 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 is 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.

:information_source: 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 Contact Fields section.

:bulb: 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

     

    In the screenshot above, the contact “Jiale” has been created. Jiale’s index number depends on the list’s current sorting - in this case, “Jiale” is #6 when sorted by name.  

  • create /name Jiale

Table of Contents

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.
  • [field prefix] specifies the corresponding field to add.
  • [field value] is the value to add to the field specified by the preceding prefix.

You can add multiple fields with one add command by entering multiple sets of [field prefix] and [field value].

:information_source: 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 fields and their prefixes, go to the Contact Fields section.

:bulb: This command ignores any input field values that are already present in your target contact. For example, if your contact at index 1 already has the phone number 12345678, the command add 1 /phone 12345678 does nothing.

Example usage:

  • add 1 /phone 91234567

     

    In the screenshot above, the phone number 91234567 has been added to contact #1 (Alex Yeoh).  

  • 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

Table of Contents

Edit contact details: 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.
  • [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.

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.

:bulb: Note: If index of a multi-valued field is not specified, it will default to 1.

:information_source: 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 Contact Fields section.

Example usage:

  • edit 3 /priority low

     

    In the screenshot above, contact #3 (Charlotte Oliveiro)’s priority has been changed to low (1 star)  

  • edit 2 /phone 10938472 /index 1
  • edit 3 /email nkn@gmail.com

Table of Contents

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.

Example usage:

  • delete 6

     

    In the screenshot above, the contact previously numbered #6 (Jiale) has been deleted.  

  • delete 1

Table of Contents

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.
  • [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.

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.

:bulb: Note: If index of a multi-valued field is not specified, it will default to 1.

:information_source: 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 Contact Fields section.

Example usage:

  • delete 1 /phone /index 2

     

    In the screenshot above, the 2nd phone number of contact #1 (Alex Yeoh) has been deleted.  

  • delete 5 /link /index 2
  • delete 10 /priority

Table of Contents

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.

:warning: Warning: This command deletes all of your contacts. Only do this if you are sure.
:bulb: Tip: You can undo a clear command using undo.

Format: clear

Parameters: N/A

Example usage:

  • clear

Table of Contents

Category 2 - View contact details

This category is centered around displaying and using contact details you previously stored. It contains commands that allow you to retrieve and use information efficiently. 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

Table of Contents

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.
:bulb: Note: Using the find command will update the filter status to 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

Table of Contents

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.

:bulb: Note: When you first open NetworkBook, the list starts off sorted by name in ascending order.

Format: sort /by [field] /order [order]

Parameters:

  • [field] is the information to sort by. You can specify the following fields:
    • name : Sort alphabetically by contact name
    • grad : Sort chronologically by graduation year
    • priority : Sort by priority

  • [order] (optional) is the order to sort in (defaults to ascending if not specified). You can specify the following orders:
    • asc/ascending : Sort in ascending order
    • desc/descending : Sort in descending order
:bulb: Note: If sorting by an optional field (i.e. 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

Table of Contents

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.

:bulb: Tip: You can undo a filter command using undo. You can reset filtering at any time using list.

Format: filter /by [field] /with [term] /taken [taken]

Parameters:

  • [field] is the information to filter by. You can specify the following fields:
    • 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 by course, this parameter additionally filters out contacts who have finished/haven’t started the course as of the current date of your system. You can specify the following values:
    • 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.
:bulb: Note: 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

Table of Contents

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.
  • [link index] is the index of the link within the contact’s link list.
:bulb: Note: It is optional to provide the link index. If not specified, it will default to 1.

Example usage:

  • open 2 /index 2

     

    In the screenshot above, the 2nd link of contact #2 (Bernice Yu) has been opened in a web browser.

    Note: The web browser used will be your computer’s default web browser.  

  • open 1

Table of Contents

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.
  • [email index] is the index of the email address within the contact’s email list.
:bulb: Note: It is optional to provide the email index. If not specified, it will default to 1.

Example usage:

  • email 1

     

    In the screenshot above, a new draft email has been created, addressed to the the 1st email address of contact #1 (Alex Yeoh).

    Note: The email app used will be your computer’s default email app.  

  • email 1 /index 2

Table of Contents

Category 3 - Miscellaneous commands

This category covers miscellaneous commands for additional functionalities in 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

Table of Contents

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

Table of Contents

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

   

Table of Contents

Manually save to data file: save

You can use the save command to manually save your contacts to the data file.

:bulb: Tip: You do not need to manually save in most casesNetworkBook automatically saves your data, as long as it has permission to write to the data file. You may need to manually save if NetworkBook’s permission to write to the data file is compromised.

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

Table of Contents

Category 4 - Accessibility features

This category introduces available interactions using keyboard and mouse that add more scaffolding to your networking experience. Relevant features are outlined below:

Keyboard shortcuts

NetworkBook supports many convenient keyboard shortcuts for you to execute commands efficiently.

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 with find
  • ctrl-N: auto-fill with create
  • ctrl-G: auto-fill with edit
  • ctrl-U: auto-fill with undo
  • ctrl-R: auto-fill with redo

Table of Contents

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.

Table of Contents

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 to undo command)
  • ctrl-Y: redo last change undone (equivalent to redo command)
:bulb: Note: These shortcuts only work 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.

Table of Contents

Other useful shortcuts: ctrl-S/W, F1

:bulb: Note: If the F1 key is bound to a different function in your computer settings, the keyboard shortcut to view help window may not work as expected.

Table of Contents

Mouse interaction

While NetworkBook is optimised for use with keyboards and text commands, it also has buttons you can click to execute certain commands.

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.

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 draft an email to the contact.

Table of Contents

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.
email [/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.

Table of Contents

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:

  1. Open command prompt on your computer
  2. Navigate to the directory where the JAR file is located using cd [JAR file location]
  3. Type java -jar networkbook.jar and press enter
  4. 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.)

Table of Contents