:information_source: Preface:

  • This guide is on the usage of Team Builder.
  • For a guide on developing Team Builder with us, see our developer guide.
  • We are still working on making our user guide as user friendly as possible. You can help us by providing feedback here

Team Builder (TB) is a desktop app primarily for cross-faculty students to manage their contacts and build a multidisciplinary team based on soft skills and technical skills.

It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, TB can help you build your team through your contacts much faster than traditional GUI apps.

About this guide

Labelled App Window

Welcome to Team Builder, we hope that this product will allow you to manage your contacts to build fantastic teams for your events/competitions.

This guide is designed for users with and without technical experience and is to be followed narratively from top to bottom. However, if you are an experienced user, feel free to skip the Example context. If you are looking for a specific command, you can view the table of commands here.

:information_source: What do the symbols and formatting mean?:

  • :information_source: - are important specific information to note

  • :bulb: - are usage tips/shortcuts

  • :exclamation: - are some warnings about certain actions

  • links - these blue words are links and can be clicked on

This guide is split into 6 sections:

  1. Full Table of Commands
  2. Quick Start
  3. Managing Contacts
  4. Making a Team
  5. Extra Team Builder Features
  6. FAQ

Sections 3,4,5 contain descriptions and instructions for the main features of Team Builder.

Below is the full table of contents, in case you are looking for something very specific.

:bulb: Tip: Access this guide quickly through the help command or by clicking the help menu icon.
help message

Full Table of Commands

:information_source: Notes about the command format:

  • command - are the command words. They are case-sensitive!

  • UPPER_CASE - are the input data fields to be supplied by the user.
    e.g. in add n/NAME, NAME is an input data field which can be used as add n/John Doe.

  • [] - are optional input data fields.
    e.g. [e/EMAIL] can be used like   (i.e. not used) or e/lmao@lmao.com

  • []... - are input data fields that can be supplied any number of times including zero times.
    e.g. [t/TAG]... can be used like   (i.e. 0 times), t/React, t/React t/AWS etc.

Command Type Format, Examples
add Modifying add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]... [T/TEAM_NAME]...
clear Modifying clear
delete Modifying delete INDEX
e.g., delete 3
edit Modifying edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]... [T/TEAM_NAME]... ​
find Listing find NAME/MAJOR/TAG [MORE_KEYWORDS]
e.g., find James Jake
sort Listing sort ORDER SORT_BY
e.g., sort desc tcount
create Modifying create tn/TEAM_NAME td/TEAM_DESC [t/TAG]
e.g., create tn/TeamA td/2103T_tP t/Java
show Listing show TEAM_NAME [OTHER_TEAM_NAME]...
list Listing list
remove Modifying remove TEAM_NAME
undo Special
Modifying
undo
redo Modifying redo
help Window help

:bulb: Tips on command behaviour:

  • You can place input data fields in any order.
    e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

  • If a input data is expected only once in the command but you specified it multiple times, only the last occurrence of the input data will be taken.
    e.g. if you specify p/12341234 p/56785678, only p/56785678 will be taken.

  • If you enter extraneous input fields for commands with no input data fields (such as help, list, exit and clear), the command will execute as per normal while ignoring the fields.
    e.g. if the command specifies help 123, it will be interpreted as help.


Quick start

Prerequisite:

  1. Downloaded Java JDK 11 for your operating system.

Team Builder Installation:

  1. Open a command terminal

  2. Ensure you have Java 11 or above installed in your Computer by typing java --version in the command terminal. Information on the Java version installed should appear in the command terminal. Otherwise, click here to troubleshoot.

  3. Download the latest teambuilder.jar from here.

  4. Copy the file to the folder you want to use as the home folder for your Team Builder.

  5. In the command terminal, cd into the folder you put the jar file in, and use the java -jar teambuilder.jar command to run the application.
    A window (seen below without the labels) should appear in a few seconds. Note how the app contains some sample data.

    As you can see there are two main panels. The left panels shows your contacts, and the right panel shows the teams that you have in Team Builder.

    • The blue tags are the skill tags of a person, to denote the skills or specialisation of the person.
    • The red tags are the team tags, which tell you which team a person is in
    • The yellow-orange tags are the members of a team, which tells you the names of the team members in a team
    • The green tags are the skill tags of a team, which are the skills that you think this team needs.

    You will find more details below the tags of the respective person/team, such as the team description or the contact’s phone number.

  6. Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window.
    Some example commands you can try:

    • list : Lists all contacts.

    • add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 m/computer science : Adds a contact named John Doe to the Team Builder.

    • delete 3 : Deletes the 3rd contact shown in the current list.

    • clear : Deletes all contacts.

    • exit : Exits the app.

  7. Refer to the Full Table of Commands above for details of each command.


Managing Contacts

Team Builder allows you to easily manage contacts of individuals that you would want to be teammates with.

Your contacts can be managed in these ways:

  1. Adding new potential teammates as a contact.
  2. Updating any existing contact’s information and tags.
  3. Deleting contacts that you no longer want to be teammates with or have lost contact.

Adding a new contact : add

Format: add n/NAME [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]... [T/TEAM_NAME]...​

Example context:

**John Pic**

You have exchanged contacts with a person named John at a Computer Science Event. He seems like a nice guy that you might want to do projects with. You note that he is a business major with great presentations skills.

Let’s add his contacts to Team Builder as a new potential teammate for future events and projects!

What to type:

add n/John p/98765432 m/Business t/Good Presentor

Result:

Image of John added

:information_source: Note: The order of persons added in the list may not be in chronological order.

:exclamation: Caution: You can only add a team tag to a person if the team has been created beforehand!
:bulb: Tip: A contact can have any number of tags (including 0). Tags are especially useful for keeping track of skills and traits! A contact must have a name, other features are optional.

Updating a contact : edit

Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]… [T/TEAM_NAME]​

Example context:

**BACK OF JOHN'S CARD**

It seems that we forgot to add some information about John. We missed out the back of his card that has his email. Let’s use the edit command to update his information.

John at index 1

We see John is index 1 in our display.

What to type:

edit 1 e/john@example.com

Result: John with email added

John's email is now reflected on our contact list.

:information_source: Notes about the edit command:

  • Edits the person at the specified INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …​
  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.
  • When editing tags and teams, the existing tags and teams of the person will be removed i.e adding of tags and teams is not cumulative.
  • You can remove all the person’s tags or teams by respectively typing t/ or T/ without specifying any after it.

Deleting a contact : delete

Format: delete INDEX

Example context:

You hear from your friends that John is actually a snake* :snake: and we do not want a snake as a teammate.

Let’s delete him from our Team Builder.

Again, we see John is index 1 in our display.

What to type:

delete 1

Result:

John deleted

John is no longer in your Team Builder contact list!

* snake refers to a backstabber.

Making a Team

Team Builder helps you to make a team easily and keep in mind any skills that are required.

Our current team management features include:

  1. Creating a team
  2. Finding the right teammate using find, list and sort
  3. Adding a person to a team
  4. Listing all teammates in a team
  5. Removing a person from a team
  6. Removing a team entirely

Creating a team: create

Format: create tn/TEAM_NAME td/TEAM_DESC [t/TAG]...

Example context:

You have decided to participate in NUS Hack&Roll hackathon. Let’s create a team called “NUSMeets”! Since your idea involves creating a web application, you will need someone with technical experience in React and AWS. You would also prefer to have a UI person to make your web app presentable. As this hackathon involves a tight timeline, proper project management skills are required too.

What to type:

create tn/NUSMeets td/A multidisciplinary team for upcoming HacknRoll in mid Jan. t/JavaScript t/React t/AWS t/Project Management t/UI Design

Result:

result for 'create team'

Finding the right teammate I : find

Format: find NAME/MAJOR/TAG [MORE_KEYWORDS]...

Example context 1:

You recall that two of your tutorial classmate named Alex and David are good at UI Design and you want to invite them to your team, but you have forgotten their full name and contact numbers.

What to type:

find alex david

Result:

result for 'find alex david'

Example context 2:

You still feel your team needs more people, and you decide to find someone who majored in computer science.

What to type:

find computer science

Result:

result for 'find computer science'

Example context 3:

Now your team is almost formed, but you still need a person who mastered JavaScript.

What to type:

find javascript

Result:

result for 'find javascript'

:information_source: Specificity of find:

  • The search is case-insensitive. e.g hans will match Hans
  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
  • Only the name is searched.
  • Only full words will be matched e.g. Han will not match Hans
  • Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Finding the right teammate II : list

Format: list

Example context:

You feel that you have narrowed down to too little people. Let’s display our whole contact list again.

What to type:

list

If you have accidentally added extra input fields after list, the command would be accepted as anything after list is discarded.

Finding the right teammate III : sort

Format: sort ORDER SORT_BY

Example context:

Perhaps you are not too sure which skills are required in your team, so you want to list persons who know a wide range of skills first.

What to type:

sort desc tcount

Result:

result for 'create team'

:information_source: Specificity of sort:

  • The ORDER and SORT_BY are case-insensitive. e.g tcount will match tCount
  • The ORDER can only be either ascending (asc) or descending (desc)
  • The following SORT_BY are available:
  • tcount Sorts by person’s tag count (this applies to the blue skill tags only, not including team tags)

:information_source: Note: Sort would be performed on the current list of persons displayed on the UI. If you are looking to sort all persons after performing a find command etc., remember to use list command before using sort.

Add a person to a team : edit

Format: edit INDEX [T/TEAM_NAME]...

Example context:

You recall participating in a Hackathon previously with Alex Yeoh and knows he is familiar with React. You decide to reach out to him to form your team for Hack&Roll.

What to type:

edit 1 T/NUSMeets

Result:

result for 'edit 1'

:information_source: Note: edit command is used here as adding a person to a team is equivalent to editing the team tags of a person.

:exclamation: Caution:

  • You can only add a person to the team if the team has been created beforehand!

  • If you are adding a team to a person with existing teams, you need to type out their other team names as well. e.g. edit 1 T/Old Team T/New Team

Listing all teammates in a team : show

Format: show TEAM_NAME [OTHER_TEAM_NAME]...

Example context:

The Hack&Roll announced that there is a limit on team size. You want to list all people who are currently added to your NUSMeets team.

What to type:

show NUSMeets

Result:

result for 'show'

Removing a teammate from a team : edit

Format: edit INDEX [T/TEAM_NAME]

Example context:

Alex reached out to you later that he is now unable to attend Hack&Roll due to some personal circumstances. We have no choice but to remove Alex from our team.

What to type:

edit 1 T/

Result:

result for 'edit 1'

We see that Alex's team tag is removed and the team no longer has Alex as a member

:information_source: Note: edit command is used here as removing a person to a team is equivalent to editing the team tags of a person.

:exclamation: Caution: If you are removing just one team from a person with multiple teams, you need to type out their other team names to keep them on their other teams.
(e.g. John is in Team1 and Team2 but he will be removed from Team2, edit 1 T/Team1)

Removing a team : remove

Format: remove TEAM_NAME

Example context:

Oh no, you realised that you have a number of deadlines during the period of time Hack&Roll would run. Taking into account Alex’s absence as well, You decide to not participate in it anymore.

What to type:

remove NUSMeets

Result:

NUSMeets will be removed from the team list panel.

:information_source: Note: The remove command will also remove the team tags for people who were in the team.

Extra Team Builder Features

Team Builder has some quality of life features that may help you in many different ways.

This includes:

  1. Clearing all entries
  2. Undoing a command
  3. Redoing an undo command
  4. Exiting the program
  5. Saving data
  6. Editing the data file

Clearing all entries : clear

Format: clear

Clears all entries from the Team Builder, instead of manually removing teams and persons.

What to type:

clear

Undoing a command : undo

Format: undo

Example context:

Oops! It looks like we accidentally used the clear command to remove all our contacts.

Let’s use the undo command to revert our Team Builder back to before we typed the clear command.

What to type:

undo

:exclamation: Caution:

  • You can only undo up to 10 times in a row! After the 10th undo, no more undo is possible.

  • You can only undo modifying commands.

  • You may also undo into a state where find was called and so your contact list is not shown fully. Simply use list to view the full contact list again.

Redoing an undo command : redo

Format: redo

Example context:

Perhaps we want to clear the example contacts after all.

Let’s use the redo command to revert our Team Builder back to before we typed the undo command.

What you can type:

redo, redo 123, redo ada adw v zklw, etc.

These are all acceptable as anything after redo is discarded.

:exclamation: Caution: Typing any modifying command (other than an undo) after an undo makes it impossible to redo that undo command!

Exiting the program : exit

Format: exit

Exits the program.

Saving the data

Team Builder data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.

Editing the data file

Team Builder data are saved as a JSON file [JAR file location]/data/addressbook.json. Advanced users are welcome to update data directly by editing that data file.

:exclamation: Caution: If your changes to the data file makes its format invalid, Team Builder will discard all data and start with an empty data file at the next run.

FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Team Builder home folder.

Q: Why is my command text in red and not working?
A: You might have input an invalid command. Either the command word doesn’t exist or the parameters entered are invalid.


Future features

These are features that will improve your experience using Team Builder, to be added in the future. Look forward to them!

Support for long tags

Currently, whether it is a skill tag or a team tag, Team Builder will try to display the whole tag regardless of how long it is, causing it to overflow out of the window and be un-readable. Future changes:

  • Tags that exceed a character count of 20 characters will be truncated and have a “…” after it.
  • Users will be able to view the full tag by hovering their cursor over the tag.
  • This will not change the behaviour of the add, edit, or find commands.

Phone number limit

Currently, there is no limit to the length of a contacts phone number. Future changes:

  • Phone number will have a maximum length of 15 digits, as that is the longest viable phone number.