User Guide
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
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.
What do the symbols and formatting mean?:
-
- are important specific information to note
-
- are usage tips/shortcuts
-
- are some warnings about certain actions
-
links - these blue words are links and can be clicked on
This guide is split into 6 sections:
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.
Full Table of Content:
Full Table of Commands
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. inadd n/NAME
,NAME
is an input data field which can be used asadd n/John Doe
. -
[]
- are optional input data fields.
e.g.[e/EMAIL]
can be used likee/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 liket/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 |
Tips on command behaviour:
-
You can place input data fields in any order.
e.g. if the command specifiesn/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 specifyp/12341234 p/56785678
, onlyp/56785678
will be taken. -
If you enter extraneous input fields for commands with no input data fields (such as
help
,list
,exit
andclear
), the command will execute as per normal while ignoring the fields.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
.
Quick start
Prerequisite:
- Downloaded Java JDK 11 for your operating system.
Team Builder Installation:
-
Open a command terminal
-
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. -
Download the latest teambuilder.jar from here.
-
Copy the file to the folder you want to use as the home folder for your Team Builder.
-
In the command terminal,
cd
into the folder you put the jar file in, and use thejava -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.
-
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 namedJohn Doe
to the Team Builder. -
delete 3
: Deletes the 3rd contact shown in the current list. -
clear
: Deletes all contacts. -
exit
: Exits the app.
-
-
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:
- Adding new potential teammates as a contact.
- Updating any existing contact’s information and tags.
- 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:
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:
Note: The order of persons added in the list may not be in chronological order.
Updating a contact : edit
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [m/MAJOR] [t/TAG]… [T/TEAM_NAME]
Example context:
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.
What to type:
edit 1 e/john@example.com
Result:
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/
orT/
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* 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:
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:
- Creating a team
- Finding the right teammate using
find
,list
andsort
- Adding a person to a team
- Listing all teammates in a team
- Removing a person from a team
- 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:
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:
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:
Example context 3:
Now your team is almost formed, but you still need a person who mastered JavaScript.
What to type:
find javascript
Result:
Specificity of find
:
- The search is case-insensitive. e.g
hans
will matchHans
- The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
- Only the name is searched.
- Only full words will be matched e.g.
Han
will not matchHans
- Persons matching at least one keyword will be returned (i.e.
OR
search). e.g.Hans Bo
will returnHans 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
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:
Specificity of sort
:
- The ORDER and SORT_BY are case-insensitive. e.g
tcount
will matchtCount
- 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)
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:
Note:
edit
command is used here as adding a person to a team is equivalent to editing the team tags of a person.
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:
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:
Note:
edit
command is used here as removing a person to a team is equivalent to editing the team tags of a person.
(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.
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:
- Clearing all entries
- Undoing a command
- Redoing an undo command
- Exiting the program
- Saving data
- 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
Caution:
-
You can only
undo
up to 10 times in a row! After the 10thundo
, no moreundo
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 uselist
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.
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.
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
, orfind
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.