Skip to the content.

ConTech User Guide

Introduction

ConTech (pronounced as Contact) is a Command Line Interface (CLI) application for managing computing-related contacts. Specially designed to be optimised for use on the CLI, ConTech allows you to seamlessly add, edit, view, list, search, and import your contacts.

If you are a computing professional that often uses the command line for work, ConTech can get your contact management tasks done faster than any traditional GUI app.

This guide serves to introduce our various features such as add, edit, view, and other commands, and guide you to easily manage your ConTech Book.

ConTech aims to improve your efficiency at work, be it by cutting down the time required to look up for various usernames when working with colleagues, or by importing hundreds of contacts with just one simple command.

How to use the User Guide

To make full use of the user guide, we have provided a table of contents with their hyperlinks. This would allow you to quickly access portions of the guide you require.

However, for first time users, you are highly encouraged to go through the user guide in order, from the top to bottom. This is because the guide is also written in a specific order to allow you to maximise your understanding when learning how to use ConTech.

Table Of Contents


Quick Start

This section aims to get you started with using ConTech.

  1. Ensure that you have Java 11 or above installed in your Computer.
  2. Download the latest version of contech.jar from here.
  3. Copy the contech.jar file to the folder you want to use as the home folder for ConTech.
  4. Open your desired Command Line Interface from the folder with contech.jar and enter the following code: java -jar contech.jar.
  5. As a first time user, you would be required to type in your personal details.
  6. Type a command in the command box and press Enter to execute it. e.g., typing help and pressing Enter will display the help message.
    Some example commands you can try:
    • add -n Alex Lee -g alexlee -e alex.lee@contech.sg -te alexl33: Adds a contact named Alex Lee to the ConTech Book.
    • ls: Lists all contacts.
    • view 1: Displays all the details of the contact at index 1.
    • rm 1: Deletes the contact at index 1 in the list.
    • exit: Exits the program.

If you have reached this step without any issues, congratulations! You have successfully set up ConTech.

:information_source: You are advised to go through the following two sections. Before moving on to the features of ConTech, we have prepared some documentation regarding some common notations that will be used throughout this guide. You are strongly recommended to familiarise yourself with the notations used.

You may also refer to the features below for details of each feature and its respective command.

Contact flags: -flag

When using commands such as add,edit and search, you can specify details with the use of flags in the form: -flag.

ConTech currently supports six flags and has in built checkers to check if the format of the details are fulfilled. These flags include:

Common notations used

Throughout the user guide, you will find the following notations:

Do familiarise yourself with these notations to better utilise the user guide.

Features

Adding a contact: add

Adds a specified contact to the ConTech Book.

Command format: add <-n> <NAME> {-g <GITHUB>} {-l <LINKEDIN>} {-te <TELEGRAM>} {-tw <TWITTER>} {-e <EMAIL>}

Expected outcome of usage:

add -n Le Zong -g lezongmun -e lezongmun@gmail.com -te lezongg
____________________________________________________________
ConTech has added the specified contact:
Name:     Le Zong
Github:   github.com/lezongmun
Email:    lezongmun@gmail.com
Telegram: t.me/lezongg

You now have 1 contact(s).
____________________________________________________________

Back to Table of Contents

Listing all contacts: ls

Lists all the contacts in the ConTech Book with their indexes and names.

Command format: ls

Expected outcome of usage:

ls
____________________________________________________________
ConTech has 5 contacts stored.
Here's the list :
____________________________________________________________

0. Andre
1. Marcus
2. Le Zong
3. Ashraf
4. Mayank
____________________________________________________________

Back to Table of Contents

Viewing a contact: view

Displays all the details saved to a contact in the ConTech Book.

Command formats:

view <INDEX>

view me

:information_source: You can easily run the ls command to view your contact indexes before running any command requiring indexes.

Expected outcome of usage:

view 0
____________________________________________________________
0.
Name:     Alex Lee
Github:   github.com/alexlee
Email:    alex.lee@contech.sg
____________________________________________________________
view me
____________________________________________________________
Name:     Marcus Bo
Github:   github.com/marcusbohre
Email:    marcus.bo@contech.sg
____________________________________________________________

Back to Table of Contents

Viewing personal contact: me

Displays all your details saved to the personal contact in the ConTech Book.

Personal contact details are filled in by user while setting up ConTech.

Command format: me

Expected outcome of usage:

me
____________________________________________________________
Name:     Marcus Bo
Github:   github.com/marcusbohre
Email:    marcus.bo@contech.sg
____________________________________________________________

Back to Table of Contents

Deleting a contact: rm

Removes the contact with a specified index from the ConTech Book. The rm command can also be used to delete all your contacts at one go, or to remove specific fields for each of your contacts.

To improve user experience, before any deletion, ConTech Book will display the details of the contact you specified to be deleted, and prompt you to confirm deletion. Any additional input not specified in the required command format will be treated as erroneous input and discarded.

Command formats:

rm <INDEX>

rm <INDEX> {-g} {-l} {-te} {-tw} {-e}

rm all

Expected outcome of usages:

rm 0
____________________________________________________________
Delete this contact?  (y/n)

0. 
Name:     Alex Lee
Github:   github.com/alexlee
____________________________________________________________

y
____________________________________________________________
ConTech has removed the specified contact: Alex Lee
You now have 2 contact(s).
____________________________________________________________
rm 3 -g -te -l -e
____________________________________________________________
Delete the following fields for Le Zong?  (y/n)

Github:   github.com/lezongmun
Telegram: t.me/lezongg
____________________________________________________________

y
____________________________________________________________
The specified fields for Le Zong have been deleted.
____________________________________________________________
rm all
____________________________________________________________
Delete all of your contacts?  (y/n)
____________________________________________________________

y
____________________________________________________________
ConTech has removed all 2 of your contact(s).
____________________________________________________________

Back to Table of Contents

Editing a contact : edit

Edits the details of a specified contact in the ConTech Book, as well as the personal contact.

Command formats:

edit <INDEX> {-n <NAME>} {-g <GITHUB>} {-l <LINKEDIN>} {-te <TELEGRAM>} {-tw <TWITTER>} {-e <EMAIL>}

edit me {-n <NAME>} {-g <GITHUB>} {-l <LINKEDIN>} {-te <TELEGRAM>} {-tw <TWITTER>} {-e <EMAIL>}

Expected outcome of usage:

edit 0 -n John Lee -g johnlee -te johnlee123 -e john.lee@contech.sg
____________________________________________________________
ConTech has edited the specified contact:
Name:     John Lee
Github:   github.com/johnlee
Email:    john.lee@contech.sg
Telegram: t.me/johnlee123
____________________________________________________________
edit me -n Marcus Bo -g marcusbory -te boryy -e marcusong@gmail.com
____________________________________________________________
ConTech has edited your personal contact:
Name:     Marcus Bo
Github:   github.com/marcusbory
Email:    marcusong@gmail.com
Telegram: t.me/boryy
____________________________________________________________

Back to Table of Contents

Search the ConTech Book for a contact whose details contain the specified query.

Command format: search {-n | -g | -l | -te | -tw | -e} <SEARCH QUERY>

Expected outcome of usage:

search -g lee
____________________________________________________________
1.
Name:     Alex Lee
Github:   github.com/alexlee
Email:    alex.lee@contech.sg
Telegram: t.me/alexl33
____________________________________________________________

____________________________________________________________
6.
Name:     John Lee
Github:   github.com/johnlee
Email:    john.lee@contech.sg
Telegram: t.me/johnlee123
____________________________________________________________

Back to Table of Contents

Importing contacts: import

Import contacts from a comma-separated value (CSV) text file into your contact list.

Command format: import

Le Zong,lezongmun,null,lezongg,null,lezongmun@gmail.com
marcus,null,null,null,null,null

:date: Coming Soon: Duplicate checks for importing contacts will be added in future versions, with more granular controls.

Expected outcome of usage:

import
data/import.txt:3 - "andre,null" is corrupted and not loaded.
data/import.txt:5 - There is an invalid field.
____________________________________________________________
The github username is not correctly formatted,
Rules for Github username :
* Only contain alphanumeric characters or hyphens
* Only lowercase allowed
* Maximum 39 characters allowed
* Cannot have multiple consecutive hyphens
* Cannot begin or end with a hyphen
____________________________________________________________

____________________________________________________________
ConTech has successfully imported 4 lines
____________________________________________________________

Back to Table of Contents

Viewing help: help

Displays a help message explaining what commands are available and each input format.

:information_source: After learning of all the crucial features and commands of ConTech, you are ready to begin using the app. A condensed version of this user guide can be accessed by typing help.

Command format: help

Expected outcome of usage:

help
____________________________________________________________
add: ConTech adds the specified contact with provided parameters.
 Parameters: -n NAME -g GITHUB -e EMAIL -te TELEGRAM -l LINKEDIN -tw TWITTER
 Note: Parameters need not be in order and are optional except for NAME.
 Example: add -n John Doe -g johndoecoder -e john@email.com -te johndoe

ls: Displays the name of all saved contacts.
 Example: ls

edit: Edit any parameter in an existing contact.
 Parameters: INDEX -n NAME -g GITHUB -e EMAIL -te TELEGRAM -l LINKEDIN -tw TWITTER
 Note: Parameters need not be in order and are optional except for INDEX.
       "me" is used as the INDEX for personal contact.
 Examples: edit 1 -e john.doe@email.com
           edit me -e john.doe@email.com

view: Displays all details for index specified contact.
 Parameter: INDEX
 Note: Index starts from 0.
       "me" is used as the INDEX to view personal contact details.
 Example: view 2
          view me

me: Displays all details for personal contact.
 Example: me

rm: Deletes the index specified contact.
 Parameter: INDEX
 Note: Index starts from 0.
       "all" is used as the INDEX to delete all contacts.
 Examples: rm 0
           rm all

search: Search for a contact containing a specified query.
 Note: Flags may be used to specify a detail type to search.
       If no flag is specified, contact name is searched by default.
 Example: search -g QUERY

help: Displays application usage instructions.
 Example: help

import: Imports contacts from a CSV Text File.
 Note: Please ensure that data is saved in data/import.txt
 Example: import
____________________________________________________________

Back to Table of Contents

Exiting the program: exit

Exits the application.

Command format: exit

Excepted outcome of usage: exit

exit
____________________________________________________________
ConTech will now shutdown.
We hope you have enjoyed using it.
____________________________________________________________

FAQ

Q: How do I transfer my data to another computer?

A: Transfer the files inside data/ to a new directory data/ in the same location as the jar file on the target computer. The files are data/contacts.txt and data/me.txt.

Q: Can I edit the files in data/ manually?

A: Yes, ConTech supports manual editing of contacts.txt and me.txt in the data/ directory, although this is not recommended. When doing so, remember to follow the correct syntax for contact details. Any contacts with incomplete/ incorrect/corrupt data such as missing fields will be discarded by ConTech upon launch. In addition, extra fields will be ignored. As such, users are recommended to use the add and edit commands in the app instead of manually editing the save data files. For adding a large number of contacts at once, the import function can be used.

Q: Does ConTech support duplicate prevention?

A: Yes, ConTech has built-in duplicate protection for all commands except import currently. This will be added in a future revision with more granular controls to allow users to easily handle multiple duplicate contacts when importing. For more information on the implementation, please refer to the Developer Guide.

Back to Table of Contents

Command Summary

Below is a concise summary of frequently used commands in ConTech. The command format and examples are provided for each command for a quick view when using the application.

Action Command Format Example
List all valid commands and usage help help
Add a new contact add -n <NAME> {-g <GITHUB>} {-e <EMAIL>} {-te <TELEGRAM>} {-l <LINKEDIN>} {-tw <TWITTER>} add -n Marcus
add -n John Doe -g johndoecoder -e john@email.com -te johndoe
List all contacts ls ls
View a contact view <INDEX> view 2
View personal contact view me or me view me or me
Edit a contact edit <INDEX> {-n <NAME>} {-g <GITHUB>} {-e <EMAIL>} {-te <TELEGRAM>} {-l <LINKEDIN>} {-tw <TWITTER>} edit 1 -e john.doe@email.com
edit 0 -n Tan -g tanned -te tantan
Edit personal contact edit me {-n <NAME>} {-g <GITHUB>} {-e <EMAIL>} {-te <TELEGRAM>} {-l <LINKEDIN>} {-tw <TWITTER>} edit me -e bobby@email.com
edit me -n Tan -g tanned -te tantan
Delete contact fields rm <INDEX> {-g} {-l} {-te} {-tw} {-e} rm 3 -g -te -l -e
Delete all contacts rm all rm all
Delete a contact rm <INDEX> rm 1
Search for a contact search {-n | -g | -l | -te | -tw | -e} <QUERY> search Ashraf
search -g revflash
Import contacts from .txt file import import
Exit ConTech exit exit

Back to Table of Contents