User Guide
Welcome to the User Guide for TruthTable!
If you’re a student team leader for a software engineering project, and you’re struggling to keep track of your team’s tasks, links, and overall progress, you’ve come to the right place!
About TruthTable
TruthTable is a desktop application that enables student team leaders to manage their software engineering teams, including tasks, links and team members’ information - all in a single application!
TruthTable is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). This means that if you can type fast, TruthTable can get your task and team management done blazingly fast, faster than traditional GUI applications.
Unsure what CLI or GUI means?
Head over to this section to learn more!
This guide will help you understand how the various features of TruthTable can help you manage your teams more efficiently.
Feel free to read on, or if you can’t wait to get started, skip ahead to our Getting Started Guide to start using TruthTable now!
Using This Guide
This document will guide you on how to get familiar with all of TruthTable’s features. If you are an experienced user of TruthTable, this guide also contains valuable tips on how you can maximize your productivity while using TruthTable.
While this guide can be quite long, feel free to jump ahead to any section in the Table of Contents below.
Here are the alerts to look out for while using this guide:
Important alert:
Important information for all users to take note
Tip for all users:
Useful information to help you use TruthTable more effectively
Tip for advanced users:
Useful information for more experienced users
Warning alert:
Important information to be cautious of
Throughout this guide, we use different text styles for different purposes. Here is what each one means:
Text Style Example | Meaning |
---|---|
Glossary link | Clickable link to navigate to a section in the guide |
text with background |
Text relevant to commands or file names |
Esc | Keyboard button |
Table of Contents
- About TruthTable
- Using This Guide
- Table of Contents
- Key Features of TruthTable
- Getting Started
- Navigating TruthTable’s Interface
- Understanding TruthTable’s CLI
-
Commands
- Commands to Manage Persons
- Commands to Manage Members
- Commands to Manage Teams
-
Commands to Manage Tasks
- Add task to team:
add task
- Edit task in team:
edit task
- Delete task from team:
delete task
- Finding a task:
find task
- Mark tasks as done:
mark
- Unmark tasks as done:
unmark
- Set Deadline for task:
set deadline
- Assign a task to team member:
assign task
- Assign a task to random team member:
assign random
- Filter tasks by team member:
tasksof
- List tasks in team:
list tasks
- Sort tasks:
sort tasks
- View summary of task assignments in team:
summary
- Add task to team:
- Commands to Manage Links
- General Commands
- Saving the data
- Editing the data file
- FAQ
- Command Summary
- Glossary
Key Features of TruthTable
Organize All Your Information In One Place
We understand that managing project documents and information is a difficult task. Aside from the large number of links and slides created by your team, you may be using task management applications like Notion to track your team’s progress as well.
This is why TruthTable allows you to collate and organize your tasks, links, and team members’ information in a single application!
Track Progress And Delegate Work
We know that it is often difficult to visualize and communicate your team’s progress to various stakeholders (e.g. professors, tutors, etc.).
Well, you never have to worry about tracking your team’s progress anymore! Using TruthTable, you can see the number of tasks completed by your team as well as which members have been assigned to which tasks - all in one glance!
This can also help you to delegate future tasks more fairly, by considering the workload of all your members.
Convenient And Fast
We all know that context switching is a productivity killer.
Having to switch back and forth between project management and coding usually means switching between GUI-based applications (for project management) CLI code editors (for coding).
To solve this issue, TruthTable allows you to use a single CLI for all your project management needs, reducing the impact of context switching. You never have to use a mouse again!

TruthTable’s command syntax is actually very similar to other command line applications like Git and Docker! So, fret not, you will become familiar with TruthTable’s commands in no time.
Getting Started
-
Ensure you have Java 11 or above installed on your computer. If not, follow the Java Installation Guide for further instructions on how to download and install Java 11.
-
Download the latest version of
truthtable.jar
from our “Releases” page. The file can be located under the “Assets” section of the page as seen in the image below. - Double-click on
truthtable.jar
to start the application. A window which looks similar to the screenshot below should appear in a few seconds.
Sample data: We have also added some sample data for you to play around with and get familiar with TruthTable’s commands!
- That’s it! You can now follow our guide below on how to navigate the application.
Navigating TruthTable’s Interface
After opening TruthTable for the first time, you should see the following screen.
Each section contains several components, which will be labelled in their respective sections below. These components are numbered, and their names and descriptions will be displayed in a tabular format.
Teams Section
This section displays the names of all the teams that you have created in TruthTable. Only the names of each team are listed.
Note:
There will always be one team in TruthTable named “default” (if you do not specify any name).
Number | Component | Description |
---|---|---|
1 | Index | The position of the team in the list of all teams |
2 | Name | The name of the team at the specified index |
Current Team Section
This section contains information about your current team. It displays the currently selected team, along with the team description, links, tasks, and members related to this team.
Number | Component | Description |
---|---|---|
1 | Team Name | The name of the selected team |
2 | Team Description | The description of the selected team |
3 | Link Index | The name of a link related to the selected team |
4 | Link Name | The name of a link related to the selected team |
5 | Member Index | The position of a member in the team’s list of members |
6 | Member Name | The name of a member at the specified member index |
7 | Task Index | The position of a task in the team’s list of tasks |
8 | Task Name | The name of a task at the specified task index |
9 | Task Assignee(s) | The name(s) of the member(s) assigned to the task |
10 | Task Completion Status | The completion status of a task. [X] is displayed if task is completed, whereas [ ] is displayed if the task is incomplete |
11 | Task Completion Rate | The number (and percentage) of tasks that have been completed by the selected team |
Persons Section
This section displays the names, phone number, email, address, and tags of all persons that you have created in TruthTable. This section is also known as the “Contacts” section.
Number | Component | Description |
---|---|---|
1 | Index | The position of a person in TruthTable’s contact list |
2 | Name | The name of the person at a specific index |
3 | Tags | The attributes associated with a person |
4 | Phone Number | The phone number of a person |
5 | The email address of a person |
Command Section
This section contains an input box where you can enter commands for the actions that you want to perform.
Try typing help
in the input box and press Enter to see what happens!
Number | Component | Description |
---|---|---|
1 | Command Result | The result of executing a command in the Command Input Box |
2 | Command Input Box | The input box for commands to be entered, which can be executed by pressing Enter |
Congratulations! You’ve successfully understood the entire TruthTable User Interface! Continue reading on to find out more about how TruthTable makes use of a Command Line Interface.
Understanding TruthTable’s CLI
Command Line Interface (CLI) applications like TruthTable requires you to type specific words (called commands) to make use of the application’s features. On the other hand, Graphical User Interface (GUI) programs usually require you to use a mouse to click on the screen and perform certain actions.
If you are not an experienced CLI user, terms like “commands”, “flags”, and “parameters” may appear daunting.
But fret not! This section will cover what all these terms actually mean. By the end of it, you’ll be able to confidently explain it to your friends too!
Commands, flags, and parameters
All instructions in TruthTable are executed through commands. Each command can have flags specified after the command, which modifies how the instruction should be carried out.
For each of these flags, there may be parameters specified after it. But, not all commands require parameters.
Note that flags and parameters always come after the command.
Do I need to memorize all these commands,
parameters, and flags?
Nope!
While you’re going through this section, don’t worry too much about memorizing the details of every command, as they all
have their own help messages that you can refer to at any time.
Also, the commands in TruthTable are designed to be easy to remember and intuitive, so you will get familiar
with them in no time!
Let’s use an example to break down what we’ve talked about.
Example Command: add person
Here’s a summary of what each highlighted section represents.
Number | Name | Meaning |
---|---|---|
1 | Command | The name of an instruction |
2 | Flag/Option | Text that is used to modify the operation of a command, often starting with - or -- |
3 | Parameter/Argument | Information specified for a command to operate, often used after flags |
Important note for flags
- Specifying an “equal” sign (
=
) after the flag is optional, and it has no effect on the command. - Optional flags are wrapped with square brackets (
[]
) - Flags can be specified in any order
- For e.g.
-n name -p 98765432
is the same as-p 98765432 -n name
- For e.g.
Important note for parameters
Use of quotation marks around parameters (""
and ''
) is optional.
However, if you are specifying a parameter with multiple words, you will need to wrap the words in quotes.
Otherwise, TruthTable will not carry out the command properly.
For instance,
-
add person -n "full name" ...
will recognize “full name” as the name being specified for the new person -
add person -n full name ...
will recognize “full” as the name being specified for the new person, however, this command will not execute successfully asname
will be treated as a flag (and this flag does not exist for theadd person
command)
Also, if your quotes are not closed properly (i.e. some open quotation mark does not have a corresponding close quotation mark), the command will not be executed. If the parameter specified contains quotation marks, they will be rejected as well.
For instance,
-
'word
is invalid as the open quotation mark'
does not have a corresponding close quotation mark. -
"'"
is invalid as'
will be passed as a parameter, which is invalid.
Flags with multiple parameters
If a flag is displayed with
...
behind it, this means that the flag accepts more than 1 parameter.
For instance, in the assign task
command, we can specify more than 1 assignee (provided they are valid).
A valid command is assign task 1 -a 1 2 3
where 1 2 3
are recognized as the assignees to the task with index 1
.
Understanding the help message
While using TruthTable, you might have entered the command in an incorrect format - perhaps you forgot to specify a flag or a parameter. Will the application crash? Will all your precious data be lost? Absolutely not!
Rather, we understand that it is possible for anyone to forget the correct format or command name, and we want to help you as much as possible! This is why every command in TruthTable has its own help message.
Each command allows you to specify the -h
or --help
flag, which will show you all the available flags and
parameters for the command. Alternatively, you can also refer to this user guide to find out the details of any command.
So, you never have to worry about typing a wrong command since there’s always help available at your fingertips.
Let’s dive a little deeper into what a help message looks like and how to interpret it.
Example Command Help Message: assign task --help
Here’s a summary of what each highlighted section represents.
Number | Name | Special Syntax | Remarks |
---|---|---|---|
1 | Command | - | Only alphabets and spaces (all commands can be found here) |
2 | Optional Flag with no Parameter | [-flag] |
- |
3 | Optional Flag with Parameters | [-flag=<parameters>] |
An ellipsis ... is present only if more than 1 parameter is allowed |
4 | Required Flag with Parameters | flag=<parameters> |
An ellipsis ... is present only if more than 1 parameter is allowed |
5 | Required Parameter | <parameter> |
All parameters are required by default |
6 | Flag/Parameter Name and Alias | - | All aliases of a flag/parameter will be listed and separated with commas (, ) |
7 | Flag/Parameter Description | - | Brief description of flag/parameter |
Aliases
To help you use our program even faster, we have introduced short forms for our commands and flags!
We call these short forms “aliases”, and they allow you to execute instructions blazingly fast by minimizing the number of characters you need to type.
For instance, the add person
command has the following command aliases,
add p
a person
a p
The add person
command also has the following flags and their corresponding aliases,
- aliases for
-h
:--help
- aliases for
-e
:--email
- aliases for
-n
:--name
- aliases for
-p
:--phone
- aliases for
-t
:--tags
You can find out more about these flags here.
Feel free head over to the command summary section to find out more about each command and its corresponding aliases.
Congrats! You’ve successfully understood how TruthTable makes use of Command Line Interface to improve your productivity.
You’re about halfway through this User Guide already! Continue reading to find out about important commands that you can use to solve your project management problems
Commands
Make sure you have
read the section on TruthTable’s CLI before continuing!
This section contains important information that requires you to pay close attention.
If you don’t understand something, don’t worry! You can always read it again or refer to the help messages in our application.
TruthTable allows you to manage members, tasks, links, and members through the use of commands.
Persons vs Members
Some persons in TruthTable (as seen in the persons section) may not be in a team. However, any member of a team must be a person in TruthTable.
The commands are split into 5 main sections:
Parameters and Constraints
Parameters are written in uppercase and wrapped with angle brackets (e.g. <PARAMETER>
) in this guide.
Each parameter has its own constraints, which can be found here.
Flags and Parameters
- Every command has a
-h
and--help
flag available to see their help message - Flags wrapped with brackets (
()
) indicates that at least 1 flag inside the brackets must be specified- For
([-n <NAME>] [-p <PHONE>] [-e <EMAIL>] [-t [<TAGS>]]...)
, the following examples are valid-n name
-p 98765432
-e new@email.com
-t developer
- For
- Flags wrapped with brackets (
()
) and separated with|
indicates that you must specify only 1 flag inside the brackets- For
(-n=<NAME_KEYWORDS> | -e=<EMAIL_KEYWORDS>)
, the following examples are valid-n one two
-e three four
- However, the following are invalid
-n one two -e three four
- when both flags are empty
- For
- Flags/Parameters with ellipsis (
...
) behind them means that more than 1 parameter can be specified- For
[-t [TAGS...]]...
, the following examples are valid-t
-t one
-t one two
-t one -t two
- For
- Flags can be combined if they all begin with
-
, where the flags are clustered. Find out more here- For
[-h] [-c] [-i]
, the following examples are valid-h
-hc
-ci
-hci
- For
- If an extra parameter is specified, the command will not execute and an error message will be displayed
- For e.g.
help with extra words
will display an error message
- For e.g.

Note that the parameters in this user guide are all upper-cased, which differs from the lower-cased parameters in the help message that TruthTable displays whenever you run a command with
-h
.
Commands to Manage Persons
If you’re looking for a quick summary of the commands to manage persons, you can find it here.
If you want to understand how each command can be used, we have provided some examples and illustrations on how to use them, so continue reading on!
Creating a new person: add person
It’s the start of a new semester, and you are excited to work with your new classmates on software engineering
projects. You meet a person that seems like a really fun person to work with, and you can’t wait to know more about
them. After getting their name, email, and phone number, you can save their contact details on TruthTable with this
add person
command! Now you can contact them easily when you are forming your project teams. You may optionally
specify some tags for any interesting qualities about the person!
This add person
command allows you to add a new person to TruthTable. The new person is added to the
persons section.
Here, let us take walk through an example on how to add a person.
Let’s try to add a new person called John Doe to our application.
We can do so by entering the command add person -n "John Doe" -p 98765432 -e johnd@example.com
.
If done successfully, you should see a new person show up in the persons section as seen below.
Format: add person [-h] -e=<EMAIL> -n=<NAME> -p=<PHONE> [-t[=<TAGS>...]]...
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-e , --email
|
![]() |
Email of person (e.g. johndoe@gmail.com) |
-n , --name
|
![]() |
Name of person (e.g. “John Doe”) |
-p ,--phone
|
![]() |
Phone of person (e.g. 98765432) |
-t ,--tags
|
![]() |
Tags of person (e.g. Frontend, Backend) |

Command Aliases:
a person
add p
a p
Examples:
-
add person -n "John Doe" -p 98765432 -e johnd@example.com
adds a person named “John Doe”, with phone number “98765432” and email “johnd@example.com”. -
a p -n "Betsy Crowe" -e betsycrowe@example.com -p 12345678 -t designer friend
adds a person named “Betsy Crowe”, with phone number “12345678” and tags “designer” and “friend”.
Editing a person: edit person
Oops! Seems like another classmate, Alex Yeoh, might have provided his school email instead of his personal email. You
can edit their contact details easily with edit person
!
The edit person
command allows you to edit an existing person in TruthTable. The edited person’s details will be
shown in the persons section. As always, don’t panic if you see an
error message. Let us run through an example on how to edit the details of a person.
Suppose your classmate, Alex Yeoh, has provided you with the wrong phone and email. Identify the index of “Alex Yeoh” in the application (1 in the image below). If you are not able to find their name, refer to find person command on how you can find them.
Then, enter the command edit person 1 -p 91234567 -e johndoe@example.com
.
If done successfully, you should see the new details show up in the persons section under “Alex Yeoh” as seen below.
Unable to find a person you are looking for? Please check that you have added the person into TruthTable! Refer to the above add person command to add a new person into TruthTable.
Format: edit person [-h] ([-n=<PERSON_NAME>] [-p=<PERSON_PHONE>] [-e=<PERSON_EMAIL>]
[-t[=\<PERSON_TAGS\>...]]...) <PERSON_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-e , --email
|
![]() |
Email of person (e.g. johndoe@example.com) |
-n , --name
|
![]() |
Name of person (e.g. “John Doe”) |
-p ,--phone
|
![]() |
Phone of person (e.g. 98765432) |
-t ,--tags
|
![]() |
Tags of person (e.g. Frontend, Backend) |
- at least one of the flags for email, name, phone, and tags must be specified
Tip:
To remove all tags of a person, you can use
-t
without specifying any tags.
Please take note that:
- The command edits the person at the specified
PERSON_INDEX
, which refers to the index shown in the persons section -
PERSON_INDEX
must be a positive integer: 1, 2, 3,… - Each field only updates if the flag for that field is specified.
- When editing tags, the existing tags of the person will be completely replaced by the new tags specified.
Command Aliases:
edit p
e person
e p
Examples:
-
edit person 1 -p 91234567 -e johndoe@example.com
edits the phone number and email address of the 1st person to be “91234567” and “johndoe@example.com” respectively. -
edit person 2 -n Betsy Crowe -t
edits the name of the 2nd person to be “Betsy Crowe” and clears all existing tags.
Deleting a person: delete person
Alas, you are done with the project and will no longer be working with this classmate. You
can delete their contact details easily with delete person
!
The delete person
command allows you to delete the specified person from TruthTable. The person deleted will be
removed from the persons section. Let us run through an example on how you can delete a person in TruthTable.
Suppose you want to delete Alex Yeoh from your application. Identify the index of “Alex Yeoh” in the application (1 in the image below). First, identify the index of your classmate in the persons section. If you are not able to find their name, refer to find command on how you can find them.
Then, enter the command delete person 1
.
If done successfully, you should see that the person “Alex Yeoh” has been removed under the persons section.
Unable to find a person you are looking for? Please check that you have added the person into TruthTable! Refer to the above add person command to add a new person into TruthTable.
Format: delete person [-h] <PERSON_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
- The command deletes the person at the specified
PERSON_INDEX
, which refers to the index shown in the persons section -
PERSON_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
delete p
d person
d p
Examples:
-
list persons
followed bydelete person 2
deletes the 2nd person in TruthTable. -
find person Betsy
followed bydelete person 1
deletes the 1st person in the results of thefind person
command.
Finding a person: find person
You recall talking to someone in your class, but you can’t seem to remember his full name. Or, you are
having trouble finding someone in the persons section. With the find person
command, you can now retrieve their details easily!
The find person
command allows you to find all persons whose names contain any of the keywords you specify.
The persons with matching names will be shown in the persons section.
Let us run through how you can find a person.
Suppose that you remember that this person has the words Alex or David in their name. Then, to find all persons
with Alex and David in their names, enter the command find person alex david
.
If done successfully, you should the see all persons named Alex and David show up in the persons section.
Unable to find a person you are looking for? Please check that you have added the person into TruthTable! Refer to the above add person command to add a new person into TruthTable.
To show everyone in the person list again, see the list persons command.
Format: find person [-h] <PERSON_NAME_KEYWORDS>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
- Only the name is searched.
- The search is case-insensitive, e.g.
alex
will matchAlex
. - The order of the keywords does not matter, e.g.
Yeoh Alex
will matchAlex Yeoh
. - Persons with names partially matching the keywords will be returned, e.g.
ale
will matchAlex
. - Persons with names matching at least one keyword will be returned, e.g.
alex yu
will matchAlex Yeoh
,Bernice Yu
.
Command Aliases:
find p
f person
f p
Examples:
-
find person John
returnsjohn
andJohn Doe
. -
find person alex david
returnsAlex Yeoh
,David Li
.
Listing all persons: list persons
If you want to see all the persons you have added to TruthTable, key in list persons
, and they will all
appear in the persons section. This is especially helpful if you have previously run the
find person
command.
The list persons
command shows the list of all persons in TruthTable.
Unable to find a person you are looking for? Please check that you have added the person into TruthTable! Refer to the above add person command to add a new person into TruthTable.
Format: list persons [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
list p
l persons
l p
Commands to Manage Members
Summary of the commands to manage members can be found here.
Adding a new member to the team: add member
You have made up your mind on whom you want to work with for your group projects, and now you want to
add them to your team. You can add persons to your team with the add member
command! You can finally begin to work
on some exciting software engineering projects with them!
The add member
command allows you to add a new team member in your currently selected team. The new member is added
to the member list in the current team section.
Unsure of which team you are currently on? Please refer to the current team section.
Here, let us take a quick walk-through on how to add a person.
Let us try to add a new person called Alex Yeoh to our team. Identify the index of “Alex Yeoh” in the application (1 in the image below). If you are not able to see their name in the list of persons, refer to find person command on how to find a person.
Then, enter the command add member 1
.
If done successfully, you should see a new member “Alex Yeoh” show up in the member list in the current team section as seen below.
Format: add member [-h] <PERSON_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
PERSON_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
add m
a member
a m
Examples:
-
add member 1
will add the first person in the persons sections as a new member to the currently selected team.
Delete a member from team: delete member
Due to unfortunate circumstances, one of your teammates needs to be shuffled to another group, and he will no longer
be on your team! You can delete members from your team using the delete member
command.
The delete member
command allows you to delete an existing team member in your currently selected team.
The corresponding team member will be removed from the current team section.
Unsure of what team you are currently on? Please refer to the currently selected team
Here, let us take a quick walk-through on how to delete a member.
Let us delete Alex Yeoh from our team. Firstly, identify the index of “Alex Yeoh” in the member list (1 in the image below). If you are not able to see their name on the list, refer to the find member command
Then, enter the command delete member 1
.
If done successfully, “Alex Yeoh” should be removed from the current team section as seen below.
Unable to delete an existing team member? Please check that you have added the team member into your team as shown in
the current team section. Refer to the
add member command above on how to add a new team member.
Format: delete member [-h] <MEMBER_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
MEMBER_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
delete m
d member
d m
Examples:
-
delete member 2
will delete the second member of the current team.
Finding a member: find member
As your software project is growing and your team is getting bigger, you are no longer able to find specific team
members. You can find your team members easily with the find member
command.
The find member
command allows you to find all team members whose names or emails contain any of the given keywords.
The members with matching names will be shown in the member list in the current team section.
Let us run through the steps to find a team member.
Suppose you want to find all team members named Alex or David.
Enter the command find member -n alex david
.
If done successfully, you should the see all team members named Alex and David show up in the member list in the
current team section. You can also find your team members by their email using the -e
flag.
Unable to find an existing team member? Please check that you have added the team member into your team as shown in the current team section. Refer to the add member command above on how to add a new team member.
To reset the member list, see the list members command.

You can find members using either emails or names. This means that you should not use both
-n
and -e
in the find member
command.
Format: find member [-h] (-n=<MEMBER_NAME_KEYWORDS> | -e=<MEMBER_EMAIL_KEYWORDS>)
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-n , --name
|
![]() |
Keywords to filter the name by |
-e , --email
|
![]() |
Keywords to filter the email by |
- exactly one of the flags for name or email must be specified
Please take note that:
- Only the name or email is searched.
- The search is case-insensitive, e.g.
alex
will matchAlex
. - The order of the keywords does not matter, e.g.
Yeoh Alex
will matchAlex Yeoh
. - Persons with names partially matching the keywords will be returned, e.g.
ale
will matchAlex
. - Persons with names matching at least one keyword will be returned, e.g.
alex yu
will matchAlex Yeoh
,Bernice Yu
.
Command Aliases:
find m
f member
f m
Examples:
-
find member -n Alex
finds team members with names containing the word “Alex”. -
find member -n Alex Beatrice
finds team members with names containing either “Alex” or “Beatrice”. -
find member -e alex@gmail.com
finds team members with emails containing “alex@gmail.com”.
Listing all members of the team: list members
TruthTable allows you to see a list of all your team members with the list members
command. After running the
find member command, you may wish to view all team members again.
To do so, enter list members
and the member list in the current team section will be
updated.
Unable to find an existing team member? Please check that you have added the team member into your team as shown in the current team section. Refer to the add member command above on how to add a new team member.
View all the members currently in the team, in the form of a list.
Format: list members [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
list m
l members
l m
Sort members: sort members
Your team size is getting larger, and it is getting confusing for you to track the members in your team. You can sort your team members by name with our sort members
command!
The sort members
command allows you to sort your team members in alphabetical order. The sorted team members will
be shown in member list the current team section.
Let us run through an example on how to sort your team members.
Suppose you want to check whether there is team member called Caroline
, but you are unsure of how to spell it.
Enter the command sort members asc
.
If done successfully, the sorted team members will be shown in the member list in current team section
You can now verify if Caroline
indeed exists in your team by scrolling to all names that begin with c
. You may
sort your team members in descending order with sort members dsc
or reset to the original list order with
sort members res
.
Unable to find an existing team member? Please check that you have added the team member into your team as shown in the current team section. Refer to the add member command above on how to add a new team member.
Format: sort members [-h] <ORDER>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Order Value | Description |
---|---|
asc |
Sorts team members in alphabetical order (based on their names) |
dsc |
Sorts team members in reverse alphabetical order (based on their names) |
res |
Resets the order of the team members shown back to default (unsorted) |
Command Aliases:
sort m
so members
so m
Examples:
-
sort members asc
sorts team members in ascending order. -
sort members dsc
sorts team members in descending order. -
sort members res
resets the order of team members shown.
Commands to Manage Teams
Summary of the commands to manage teams can be found here.
Creating a new team: add team
You have formed your group for the project and are ready to work on your software engineering project! After deciding on a team name and a description, you are now ready to create a new team.
The add team
command allows you to add a new team to your list of teams. The new team is added to the
teams section.
Here, let us take a quick walk-through on how to add a team.
Let us try to add a new team named CS2103T
, with a description called Software Engineering
.
Enter the command add team CS2103T -d "Software Engineering"
.
If done successfully, you should see a new team show up in the teams section as shown below.
Combine this with set team command to directly switch to the team you just created.
Format: add team [-h] [-d=TEAM_DESCRIPTION] <TEAM_NAME>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-d , --description
|
![]() |
Description of team (e.g. “A team to manage CS2103T”) |
Command Aliases:
add te
a team
a te
Examples:
-
add team CS2103T
will create a new team by the name of “CS2103T” -
add team CS2102 -d "Database Systems"
will create a new team with the name “CS2102” and description “Database Systems”
Edit current team: edit team
After a while, your group decides to change its team name. You are able to edit both the name and the description of a
team with the edit team
command.
The edit team
command allows you to edit the details your currently selected team. The edited team details will be
shown in the currently selected team.
Here, let us take a quick walk-through on how to edit your currently selected team.
Suppose you have decided on better team name NUS TruthTable
Enter the command edit team -n "NUS TruthTable"
.
If done successfully, the details that you specified will be shown in the
currently selected team as shown below. You can also edit the team description directly
using the -d
flag.
Format: edit team [-h] ([-n=<TEAM_NAME>] [-d=<TEAM_DESCRIPTION>])
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-n , --name
|
![]() |
Name of team (e.g. “CS2103T”) |
-d , --description
|
![]() |
Description of team (e.g. “A team to manage CS2103T”) |
- at least one of the flags for name and description must be specified
Command Aliases:
edit te
e team
e te
Examples:
-
edit team -n CS2103T -d "Software Engineering"
will edit the name of the currently selected team to CS2103T and description to “Software Engineering”
Delete an existing team: delete team
The semester is coming to an end, and the group project is finally completed. You can delete a team once it is no longer
needed with the delete team
command.
The delete team
command allows you to delete an existing team. The team deleted will be removed from the
teams section. Let us show you an example of deleting a team.
Suppose you have an existing team called CS2103T
and want to remove it.
Enter the command delete team CS2103T
.
If done successfully, you should see the team CS2103T
removed under the teams section.
Unable to find the team that you want to delete? Please check that you have added the team into TruthTable as shown in the teams section. Refer to the add team command above on how to add a new team.
Format: delete team [-h] <TEAM_NAME>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
delete te
d team
d te
Examples:
-
delete team CS2103T
will delete the team with the name “CS2103T”
Set a new team: set team
It is a busy semester, and you have multiple teams that you need to manage. You can change the team you
are managing using the set team
command.
The set team
command allows you to change the currently selected team to a new team from
the list of teams in the teams section. Let us show you an example of how to use this command.
Suppose you have finished the tasks in your current team CS2103T
and have an existing team called CS2102
.
Enter the command set team CS2102
.
If done successfully, your currently selected team will change to the team CS2102
along
with all of its team information, as shown below.
Unable to find the team that you want to check? Please check that you have added the team into TruthTable as shown in the teams section. Refer to the add team command above on how to add a new team.
Format: set team [-h] <TEAM_NAME>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
set te
s team
s te
Examples:
-
set team CS2103T
will change the currently selected team to be the “CS2103T” team.
Commands to Manage Tasks
Summary of the commands to manage tasks can be found here.
Add task to team: add task
Your professor has just announced a list of submissions that you need to complete for the project. You want to record
the list of tasks that needs to be done in order to complete the submission on time. You can use the add task
command for this!
The add task
allow you to add a new task to your current team. Each task can have a deadline and multiple assignees.
The new task will be displayed in the task list of your current team section.
Here, let us take a quick walk-through on how to add a new task.
Suppose we have a new task called “Create PR”.
Enter the command add task "Create PR"
.
If done successfully, a new task with the name “Create PR” will be added to the task list in current team section as shown below.
You may optionally specify a deadline and assignees for this command using -d <TASK_DEADLINE>
and
-a <TASK_ASSIGNEES>
respectively.
Please refer to the respective commands on how to set deadlines and set assignees after a task has been created.
Format: add task [-h] [-d=<TASK_DEADLINE>] [-a[=<TASK_ASSIGNEES>...]]... <TASK_NAME>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-d , --deadline
|
![]() |
Deadline of task (e.g. 2023-02-25 23:59) |
-a , --assignee
|
![]() |
Index of members in members section |
Please take note that:
-
TASK_DEADLINE
contains both the date and time inYYYY-MM-DD HH:MM
format, and it does not have quotation marks (""
) around the parameter. -
TASK_ASSIGNEES
must be positive integers: 1, 2, 3,…
Command Aliases:
add ta
a task
a ta
Examples:
-
add task "Create PR"
will add a task with the name “Create PR”, to the current team’s task list. -
add task "Merge PR" -a 1 -d 2022-12-02 23:59
will add a task with the name “Merge PR”, assigned to the first member of your team’s members list, and a deadline of 2nd Dec 2022 23:59, to the current team’s task list. -
add task "Review PR" -a 1 3 -d 2022-12-02 23:59
will add a task with the name “Review PR”, assigned to the first and third members of your team’s members list, and a deadline of 2nd Dec 2022 23:59, to the current team’s task list.
Edit task in team: edit task
Accidentally spelt the name of a task incorrectly? You can edit the details of the task easily with the edit task
command!
The edit task
command allows you to edit an existing task in your team. The edited task’s details will be shown in the
task list of the current team section. Let
us run through how to edit the details of a task.
Suppose you want to change the task name from “Create PR” to “Merge PR”. Identify the index of “Create PR” in the application (1 in the image below). If you are not able to find the task, refer to the find task command.
Then, enter the command edit task 1 -n "Merge PR"
.
If done successfully, you should see the new details show up in the task list of the current team section, with the task name of “Merge PR” as shown below. You can edit other information such as deadline and assignees as well. Please refer to the respective commands on how to set deadlines and set assignees!
Please refer to the respective commands on how to set deadlines and set assignees.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
Format: edit task [-h] ([-n=<NAME>] [-d=<DEADLINE>] [-a[=<ASSIGNEES>...]]...) <TASK_INDEX>

Ensure that
TASK_INDEX
is entered before entering any ASSIGNEES
, as they both take in positive integers.
Passing TASK_INDEX
after ASSIGNEES
makes it impossible to distinguish which number is actually the TASK_INDEX
.
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-n , --name
|
![]() |
Name of task (e.g. “merge PR#12”) |
-d , --deadline
|
![]() |
Deadline of task (e.g. 2023-02-25 23:59) |
-a , --assignee
|
![]() |
Index of members in members section |
- at least one of the flags for name, deadline, and assignees must be specified
Please take note that:
- The command edits the person at the specified
TASK_INDEX
, which refers to the index shown in the team members section -
DEADLINE
contains both the date and time inYYYY-MM-DD HH:MM
format, and it does not have quotation marks (""
) around the parameter. -
TASK_INDEX
andASSIGNEES
must be positive integers: 1, 2, 3,… - Each field only updates if the flag for that field is specified.
- When editing assignees, the existing assignees of the task will be completely replaced by the new assignees specified.
- So, you can remove all the assignees of the task by typing
-a
without specifying any assignees after it.
Command Aliases:
edit ta
e task
e ta
Examples:
-
edit task 1 "Merge PR" -a 1 -d 2022-12-02 23:59
will edit the first task in the current team’s task list, setting the name as “Merge PR”, assignees as the first member in the team list, and deadline as 2nd Dec 2022 23:59. -
edit task 1 "Update UG" -d 2022-12-02 23:59
will edit the first task in the current team’s task list, setting the name as “Update UG” and deadline as 2nd Dec 2022 23:59. The assignees are not modified in this example. -
edit task 1 -a
will edit the first task in the current team’s task list, removing all assignees from the task. The name and deadline are not modified in this example.
Delete task from team: delete task
You realize that the task that you created is actually not very important, and you’d like to remove it. You can delete the tasks easily with delete task
!
The delete task
command allows you to delete the specified task from TruthTable. The task deleted will be
removed from the task list of the current team section. Let us run through an example on how to delete a
task.
Suppose you want to delete a task called “Merge PR”. Identify the index of “Merge PR” in the application (1 in the image below). If you are not able to find the task, refer to find task command.
Then, enter the command delete task 1
.
If done successfully, you should the task “Merge PR” removed under the task list of current team section as shown below.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
Format: delete task [-h] <TASK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
TASK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
delete ta
d task
d ta
Examples:
-
delete task 1
will delete the first task of the current team.
Finding a task: find task
The final deadline is coming up, and there so many tasks yet to complete. You recall adding a task called “merge”, but you are not sure
of the full name of the task. You can find the task easily with the find task
command!
The find task
command allows you to finds all tasks whose names contain any of the given keywords.
The tasks with matching names will be shown in the task list of current team section.
Let us run through an example on how to find a task.
Suppose you want to find all tasks containing the keywords “User” or “Guide”. Enter the command
Enter the command find task User Guide
.
If done successfully, you should the see all tasks whose name contain “User” or “Guide” show up in the task list of current team section.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
To reset the task list, see the list tasks command.
Format: find task [-h] <TASK_NAME_KEYWORDS>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
- Only the task name is searched.
- The search is case-insensitive. e.g.
user guide
will matchUser Guide
- The order of the keywords does not matter. e.g.
User Guide
will matchguide user
- Tasks with names partially matching the keywords will be returned, e.g.
user
will matchuserguide
. - Tasks with names matching at least one keyword will be returned, e.g.
guide case
will matchuse case
,user guide
.
Command Aliases:
find ta
f task
f ta
Examples:
-
find task User Guide
finds tasks with names containing either the word “User” or “Guide”.
Mark tasks as done: mark
Seems like the task is finally completed. Hooray! You can mark the task as done easily with the mark task
command!
The mark task
command allows you to mark an existing task as done. The marked task will be shown in the
task list of the current team section.
Let us run through an example on how to mark an existing task.
Suppose you want to mark the task of “User Stories” as done. Identify the index of “User Stories” in the application (1 in the image below). If you are not able to find the task, refer to the find task command.
Then, enter the command mark task 1
.
If done successfully, you should see a cross appear beside the task named “Merge PR” in the task list of the current team section as shown below.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
To undo this command, please see the unmark command
Format: mark [-h] <TASK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
TASK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
m
Examples:
-
mark 1
will mark the first task in the team as done.
Unmark tasks as done: unmark
Oops, a small portion of the task was still incomplete. You can mark the task as incomplete easily with the
unmark task
command!
The unmark task
command allows you to mark an existing task as incomplete. The unmarked task will be shown in the
task list of the current team section.
Let us run through how to mark an existing task.
Suppose the task “User Stories” was originally complete, and you want to mark the task “User Stories” as incomplete. Identify the index number of “User Stories” in the application (1 in the image below). If you are not able to find the task, refer to the find task command.
Then, enter the command unmark task 1
.
If done successfully, you should see the cross beside the task named Merge PR
disappear from the task list of the
current team section as shown below.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
To undo this command, please see the mark command.
Format: unmark [-h] <TASK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
TASK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
u
Examples:
-
unmark 1
will mark the first task in the team as incomplete.
Set Deadline for task: set deadline
You realize that this task needs to be done more urgently than expected, and you need to change its deadline.
Look no further, as you can set deadlines for your tasks using the set deadline
command!
The set deadline
command allows you to set a deadline for an existing task, and the deadline must be in
YYYY-MM-DD HH:MM
format. The task with the new deadline will be shown in the task list of the
current team section.
Let us run through an example on how to set deadlines.
Suppose you have task called “User Stories”, and you need it to be completed by 11 November 2022, 2359hrs. Identify the index of “User Stories” in the application (1 in the image below). If you are not able to find the task, refer to the find task command.
Then, enter the command set deadline 1 2022-11-11 23:59
.
If done successfully, you should see the “User Stories” task with the new deadline show up in the task list of the current team section.
Unable to find a task you are looking for? Please check that you have added the task into TruthTable! Refer to the above add task command to add a new task into TruthTable.
Format: set deadline [-h] <TASK_INDEX> <TASK_DEADLINE>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
TASK_INDEX
must be a positive integer: 1, 2, 3,… -
TASK_DEADLINE
contains both the date and time inYYYY-MM-DD HH:MM
format, and it does not have quotation marks (""
) around the parameter.
Command Aliases:
set d
s deadline
s d
Examples:
-
set deadline 1 2023-12-25 23:59
will set the deadline for the first task on the task list as 25 Dec 2023 23:59
Assign a task to team member: assign task
You have tasks that you need to assign people to work on. You can do this
using the assign task
command.
The assign task
command allows you to assign tasks to members in your team.
The task with the new assignees will be shown in the task list of the current team section.
Let us run through an example on how to assign tasks to your team members.
Suppose you have task called “User Stories”, and you want to assign it to Alex Yeoh.
Identify the index of “User Stories” in the application (1 in the image below). If you are not able to find the task, refer to the find task command.
Next, identify the index of “Alex Yeoh” in the application (1 in the image below). If you are not able to find the member, refer to the find member command.
Then, enter the command assign task 1 -a 1
.
If done successfully, you should see the “User Stories” task being assigned to “Alex Yeoh” show up in the task list of the current team section as shown below. You can also specify multiple members to assign a task to multiple team members.
Format: assign task [-h] -a[=<TASK_ASSIGNEES>...] [-a[=<TASK_ASSIGNEES>...]]... <TASK_INDEX>
Note:
The format for the -a
flag indicates that you must specify at least 1 -a
flag in your command,
- the first instance of
-a
indicates that you must specify the-a
flag, and - the second instance of
-a
indicates that you can specify 0 or more-a
flags.
This results in requiring at least 1-a
flag.
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-a , --assignee
|
![]() |
Index of members in members section |
Please take note that:
-
TASK_INDEX
andTASK_ASSIGNEES
must be positive integers: 1, 2, 3,… - The original assignees of the task will not be replaced with this command. Instead, only new assignees can be added.
- To remove assignees from a task, you can use the
edit task
command
Command Aliases:
assign ta
as task
as ta
Examples:
-
assign task 1 -a
will not do anything. -
assign task 1 -a 1
will assign the first task on the task list to the first member in the team. -
assign task 2 -a 1 2
will assign the second task on the task list to the first and second member in the team.
Assign a task to random team member: assign random
You have tasks and are looking to assign them to different people to work on. Since everyone is capable of
doing all the tasks, you are not sure whom to assign the tasks to. You can assign tasks to people randomly using
the assign random
command.
The assign random
command allows you to assign tasks randomly to members in your team. The task with the new
assignees will be shown in the task list of the current team section. Let us run through an
example on how to assign tasks randomly to your team members.
Suppose you have task called “Developer Guide”, and you want to assign it randomly to your team members.
Identify the index of “Developer Guide” in the application (1 in the image below). If you are not able to find the task, refer to the find task command on how you can find your task easily.
Then, enter the command assign random 1
.
If done successfully, you should see the “Developer Guide” task being assigned to a random member. It should show up
in the task list of the current team section as shown below.
Format: assign random [-h] <TASK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
TASK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
assign r
as random
as r
Examples:
-
assign random 1
will assign the first task on the task list to a random team member.
Filter tasks by team member: tasksof
Your team member privately tells you that he has been assigned too many tasks in this team project. Fortunately, you can
see how many tasks each team member is assigned in your teams with tasksof
command.
The tasksof
command allows you to view the specific tasks assigned to a specified member. The tasks that are assigned
to that member will be shown in the task list of the current team section.
Let us run through an example on how to assign tasks to your team members.
Suppose you want to check the tasks being assigned to “Alex Yeoh”.
Firstly, identify the index of “Alex Yeoh” in the application (1 in the image below). If you are not able to find the member, refer to find member command on how you can find that member easily.
Then, enter the command tasksof 1
.
If done successfully, you should see the all the tasks that “Alex Yeoh” is assigned to. It should show up in the task list of the current team section as shown below.
Format: tasksof [-h] <MEMBER_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
MEMBER_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
to
Examples:
-
tasksof 1
will show all tasks assigned to the first member in your current team’s member list.
List tasks in team: list tasks
The final deadline is approaching, and you want to view all the tasks for your team. You can use the
list tasks
command to see a list of all your tasks in your team.
The list tasks
command shows a list of all tasks in your team. After running the
find task command, you may wish to view all tasks again.
To do so, enter list tasks
.
If done successfully, you should the see all tasks show up in the member list in the
current team section as shown below. You can also view all incomplete and complete tasks by
supplying the -i
flag or the -c
flag respectively.
You can also view all incomplete and complete tasks by adding the -i
flag or the -c
flag respectively.
Unable to find an existing task? Please check that you have added the task into your team as shown in the current team section. Refer to the add task command above on how to add a new task.
Format: list tasks [-h] [-c] [-i]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-c , --complete
|
![]() |
Filter for completed tasks |
-i , --incomplete
|
![]() |
Filter for incomplete tasks |
Command Aliases:
list ta
l tasks
l ta
Examples:
-
list tasks
will list all the tasks of the current team. -
list tasks -i
will list all the incomplete tasks of the current team. -
list tasks -c
will list all the completed tasks of the current team. -
list tasks -ic
will list all tasks of the current team.
Sort tasks: sort tasks
The number of tasks is increasing, and it is getting difficult for you to find tasks in the list. You can sort your
team’s tasks by name with our sort tasks
command!
The sort tasks
command allows you to sort your tasks in alphabetical order. The sorted tasks will
be displayed in task list the current team section.
Let us run through an example on how to sort your tasks.
Suppose you want to see whether there is task called “User Stories”, but you are unsure of how to spell it.
Enter the command sort tasks asc
.
If done successfully, the sorted tasks will be shown in the task list in current team section as shown below.
You can now verify if “User Stories” indeed exists in your team by scrolling to all names that begin with c
.
You may sort your tasks in descending order with sort tasks dsc
or reset to the original list order with sort tasks res
.
Format: sort tasks [-h] <ORDER>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Order Value | Description |
---|---|
asc |
Sorts tasks in alphabetical order (based on their names) |
dsc |
Sorts tasks in reverse alphabetical order (based on their names) |
res |
Resets the order of the tasks shown back to default (unsorted) |
Command Aliases:
sort ta
so tasks
so ta
Examples:
-
sort tasks asc
sorts tasks in ascending order. -
sort tasks dsc
sorts tasks in descending order. -
sort tasks res
resets the order of the tasks shown.
View summary of task assignments in team: summary
As always, the number of tasks keep increasing, and you want to assign tasks fairly to everyone. How do you check the
number of tasks each person is assigned? You can use the summary
function to gain an overview of the
number of tasks each person is assigned in your team! Now you can make better decisions on whom to assign the new
tasks to.
To do so, simply enter summary
and the number of tasks each person is assigned will be displayed in the
result panel as shown below.
Format: summary [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
sum
su
Commands to Manage Links
Summary of the commands to manage links can be found here.
Add a new link: add link
Your project has started, and you’re now having weekly meetings. As the meeting link is always the same, wouldn’t it
be nice if it is recorded down permanently somewhere? TruthTable helps you do that with the add link
command!
The add link
command allows you to add a new link you wish to keep track of. The new link is added to the list of links in
the currently selected team. Here, let us take a quick walk-through on how to add a link.
Let us try to add a new weekly meeting link, with a name “Meeting Link”, and URL of “https://nus-sg.zoom.us/j/87390425930?pwd=aUZNZ1NJdW5hUjcxSGxXZyt0NjdLQT09”.
Enter the command add link -n "Meeting Link" -l https://nus-sg.zoom.us/j/87390425930?pwd=aUZNZ1NJdW5hUjcxSGxXZyt0NjdLQT09
.
If done successfully, you should see a new link show up in the list of links in the currently selected team as shown below.
Format: add link [-h] -l=<LINK_URL> -n=<LINK_NAME>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-l , --link
|
![]() |
URL of link (e.g. https://google.com) |
-n , --name
|
![]() |
Name of link (e.g. “Meeting #1”) |
Command Aliases:
add l
a link
a l
Examples:
-
add link -n google -l https://google.com
will add a link named “google” with the URL “https://google.com”.
Edit an existing link: edit link
Oops! Seems like the meeting link for the weekly meeting has changed. You can edit the link URL easily with the edit link
command!
The edit link
command allows you to edit an existing link in TruthTable. The edited link will be shown in the list of
links in the currently selected team. Let us run through an example on how to edit the details of a link.
Suppose the URL of your weekly meeting has changed to “https://zoom.us/j/94669589458?pwd=bTQvWTlWbzR5T29Ja0w2d0J1R1R4QT09#success”. Identify the index of the link with a name “Meeting Link” in the application (1 in the image below).
Then, enter the command edit link 1 -n "monthly meeting" -l https://zoom.us/j/94669589458?pwd=bTQvWTlWbzR5T29Ja0w2d0J1R1R4QT09#success
If done successfully, the edited monthly meeting
link will appear in the list of links in the
currently selected team as shown below. You can edit the name of
the link directly as well by supplying the -n
tag.
Format: edit link [-h] ([-n=<LINK_NAME>] [-l=<LINK_URL>]) <LINK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
-l , --link
|
![]() |
URL of link (e.g. https://google.com) |
-n , --name
|
![]() |
Name of link (e.g. “Meeting #1”) |
- at least one of the flags for link and name must be specified
Please take note that:
-
LINK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
edit l
e link
e l
Examples:
-
edit link 1 -n facebook -l https://facebook.com
will update the 1st link to have the name “facebook” with the URL of “https://facebook.com”. -
edit link 1 -n google
will update the 1st link to have the name “google”.
Delete an existing link: delete link
As the deadline approaches, your weekly meetings have become in-person and you no longer need to keep track of the
meeting link. You can delete links easily with the delete link
command!
The delete link
command allows you to delete the specified link from TruthTable. The deleted link will be
removed from the list of links in the currently selected team.
Let us run through an example on how you can delete a link in TruthTable.
Suppose you want to delete the weekly meeting
link from your application. Identify the index of
weekly meeting
in the application (1 in the image below).
Then, enter the command delete link 1
.
If done successfully, you should see that the link weekly meeting
has been removed under the
list of links in the currently selected team.
Format: delete link [-h] <LINK_INDEX>
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Please take note that:
-
LINK_INDEX
must be a positive integer: 1, 2, 3,…
Command Aliases:
delete l
d link
d l
Examples:
-
delete link 1
will delete the 1st link
General Commands
Summary of the general commands can be found here.
Clearing all entries: clear
You graduated from NUS and join a tech company as a Project Manager. You want to continue using TruthTable but need
to remove all your old data. You can use the clear
command to clear all existing data in TruthTable!
Enter clear
command and if done successfully, all data will be cleared (except for a default
team),
and you can start afresh!
Be warned you can no longer recover the deleted data! Think twice before doing it.

Format: clear [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Switching between light and dark theme: theme
Whether you’re someone that likes a light theme or dark theme, we’ve got you covered!
This command allows you to toggle between light theme and dark theme. Enter theme
and your application will enter
the light theme from the dark theme, or dark theme from the light theme.
Format: theme [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
th
Exiting the program: exit
Enough work for today! Get some rest and recharge for tomorrow. See you again soon!
Enter exit
and the program closes after 3 seconds.
Format: exit [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
quit
bye
ex
Viewing help: help
Help! Not sure what to do? You have come to the right place. Enter help
and the list of commands available, as well as the URL to this help page, will be shown.
You can seek help in the application by supplying the -h
flag in any of our commands.
Suppose you are not sure on how to use the add person
command.
Enter add person -h
.
If successful, clear instructions on how to use the add person
command will be provided in the
command section.
Format: help [-h]
Flags | Required | Remarks |
---|---|---|
-h , --help
|
![]() |
Shows help message for this command |
Command Aliases:
h
Saving the data
TruthTable’s data is saved in the hard disk automatically after running any command that changes data. There is no need to save manually.
Editing the data file
TruthTable data is saved as a JSON file, which can be found in the location where truthtable.jar
is opened from (let’s call it TRUTHTABLE_LOCATION
) and going to TRUTHTABLE_LOCATION/data/truthtable.json
.
Advanced users are welcomed 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 TruthTable home folder.
Q: Do I need to save my data manually?
A: No. TruthTable saves your data for you automatically after running any command that changes data. For more information,
you can head to the saving your data section.
Q: Do I need to be connected to the internet to use TruthTable?
A: No, you do not need to be connected to the internet to use our application. However, to open the
team links saved on TruthTable
on your browser, you might need to be connected to the internet for the webpage to load.
Q: Why is the list empty when I use the feature list members
?
A: It is likely that you have not added the relevant contacts as members onto your current team. You can add your
members into the team using the add member
command.
Q: Why am I seeing You must have at least one team!
when trying to delete a team?
A: You can only delete a team if you have more than one team created. You can use the add team
command to add a new team
before deleting the team that you wish to delete.
Q: Why am I unable to use a command?
A: Don’t panic! Head to the Command Summary section to
make sure that you are using the correct command formats.
Command Summary
Command Aliases
Action | Command | Aliases |
---|---|---|
Creating a new person | add person |
a p , add p , a person
|
Editing a person | edit person |
e p , edit p , e person
|
Deleting a person | delete person |
d p , delete p , d person
|
Finding a person | find person |
f p , find p , f person
|
Listing all persons | list persons |
l p , list p , l persons
|
Adding a new member to the team | add member |
a m , add m , a member
|
Delete a member from team | delete member |
d m , delete m , d member
|
Finding a member | find member |
f m , find m , f member
|
Listing all members of the team | list members |
l m , list m , l members
|
Sort members | sort members |
so m , sort m , so members
|
Creating a new team | add team |
a te , add te , a team
|
Edit current team | edit team |
e te , edit te , e team
|
Delete an existing team | delete team |
d te , delete te , d team
|
Set a new team | set team |
s te , set te , s team
|
Add task to team | add task |
a ta , add ta , a task
|
Edit task in team | edit task |
e ta , edit ta , e task
|
Delete task from team | delete task |
d ta , delete ta , d task
|
Finding a task | find task |
f ta , find ta , f task
|
Mark tasks as done | mark |
m |
Unmark tasks as done | unmark |
u |
Set Deadline for task | set deadline |
s d , set d , s deadline
|
Assign a task to team member | assign task |
as ta , assign ta , as task
|
Assign a task to random team member | assign random |
as r , assign r , as random
|
Filter tasks by team member | tasksof |
to |
List tasks in team | list tasks |
l ta , list ta , l tasks
|
Sort tasks | sort tasks |
so ta , sort ta , so tasks
|
View summary of task assignments in team | summary |
su , sum
|
Add a new link | add link |
a l , add l , a link
|
Edit an existing link | edit link |
e l , edit l , e link
|
Delete an existing link | delete link |
d l , delete l , d link
|
Clearing all entries | clear |
|
Switching between light and dark theme | theme |
th |
Exiting the program | exit |
ex , bye , quit
|
Viewing help | help |
h |
Flag And Parameter Constraints
Parameter Name | Flags | Constraints |
---|---|---|
PERSON_EMAIL |
-e , --email
|
- Only valid emails allowed - Click here to test your input |
PERSON_NAME |
-n , --name
|
- Only alphabets, numbers, and spaces allowed, and should not be blank |
PERSON_PHONE |
-p , --phone
|
- Only numbers allowed - Minimum of 3 numbers |
PERSON_TAGS |
-t , --tags
|
- Only alphabets and numbers are allowed, and should not be blank |
PERSON_INDEX |
- Only positive integers are allowed - Must be less than total number of persons in TruthTable |
|
MEMBER_INDEX |
- Only positive integers are allowed - Must be less than total number of members in TruthTable |
|
MEMBER_NAME_KEYWORDS |
-n , --name
|
- Only alphabets and numbers are allowed, and should not be blank |
MEMBER_EMAIL_KEYWORDS |
-e , --email
|
- Only valid emails allowed - Click here to test your input |
MEMBER_DESCRIPTION |
-d , --description
|
- Only alphabets, numbers, and spaces are allowed, and should not be blank |
TEAM_NAME |
-n , --name
|
- Only alphabets and numbers are allowed, and should not be blank |
TASK_NAME |
-n , --name
|
- Any characters allowed, except quotes (' and " ) and should not be blank |
TASK_INDEX |
- Only positive integers are allowed - Must be less than total number of tasks in selected team |
|
TASK_ASSIGNEES |
-a , --assignee
|
- Only positive integers are allowed - Must be less than total number of members in selected team |
TASK_DEADLINE |
-d , --deadline
|
- Must be in YYYY-MM-DD HH:MM format and cannot be blank- Date and time must be separated with a space |
TASK_NAME_KEYWORDS |
- Any characters allowed, except quotes (' and " ) and spaces, and should not be blank |
|
LINK_URL |
-l , --link
|
- Only valid URLs allowed - Click here to test your input |
LINK_NAME |
-n , --name
|
- Only alphabets, numbers, and spaces are allowed, and should not be blank |
LINK_INDEX |
- Only positive integers are allowed - Must be less than total number of links in selected team |
|
ORDER |
- Only asc , dsc , and res allowed- Corresponds to ascending, descending, and reset respectively. |
Summary of Person Commands
Action | Format | Examples |
---|---|---|
Creating a new person | add person [-h] -e=<EMAIL> -n=<NAME> -p=<PHONE> [-t[=<TAGS>...]]... |
add person -n "John Doe" -p 98765432 -e johnd@example.com -t frontend |
Editing a person | edit person [-h] ([-n=<PERSON_NAME>] [-p=<PERSON_PHONE>] [-e=<PERSON_EMAIL>] [-t[=<PERSON_TAGS>...]]...) <PERSON_INDEX> |
edit person 1 -p 91234567 -e johndoe@example.com |
Deleting a person | delete person [-h] <PERSON_INDEX> |
delete person 2 |
Finding a person | find person [-h] <PERSON_NAME_KEYWORDS> |
find person Alex |
Listing all persons | list persons [-h] |
list persons |
View detailed command descriptions
Summary of Member Commands
Action | Format | Examples | ||
---|---|---|---|---|
Adding a new member to the team | add member [-h] <PERSON_INDEX> |
add member 1 |
||
Delete a member from team | delete member [-h] <MEMBER_INDEX> |
delete member 2 |
||
Finding a member | find member [-h] (-n= |
- find member -n Alex - find member -e alexyeoh@example.com
|
||
Listing all members of the team | list members [-h] |
list members |
||
Sort members | sort members [-h] <ORDER> |
sort members asc |
Summary of Team Commands
Action | Format | Examples |
---|---|---|
Creating a new team | add team [-h] [-d=TEAM_DESCRIPTION] <TEAM_NAME> |
add team CS2102 -d "Database Systems" |
Edit current team | edit team [-h] ([-n=<TEAM_NAME>] [-d=<TEAM_DESCRIPTION>]) |
edit team -n CS2103T -d "Software Engineering" |
Delete an existing team | delete team [-h] <TEAM_NAME> |
delete team CS2103T |
Set a new team | set team [-h] <TEAM_NAME> |
set team CS2103T |
Summary of Task Commands
Action | Format | Examples |
---|---|---|
Add task to team | add task [-h] [-d=<TASK_DEADLINE>] [-a[=<TASK_ASSIGNEES>...]]... <TASK_NAME> |
add task "Merge PR" -a 1 -d 2022-12-02 23:59 |
Edit task in team | edit task [-h] ([-n=<NAME>] [-d=<DEADLINE>] [-a[=<ASSIGNEES>...]]...) <TASK_INDEX> |
edit task 1 "Merge PR" -a 1 -d 2022-12-02 23:59 |
Delete task from team | delete task [-h] <TASK_INDEX> |
delete task 1 |
Finding a task | find task [-h] <TASK_NAME_KEYWORDS> |
find task User Guide |
Mark tasks as done | mark [-h] <TASK_INDEX> |
mark 1 |
Unmark tasks as done | unmark [-h] <TASK_INDEX> |
unmark 1 |
Set Deadline for task | set deadline [-h] <TASK_INDEX> <TASK_DEADLINE> |
set deadline 1 2023-12-25 23:59 |
Assign a task to team member | assign task [-h] -a[=<TASK_ASSIGNEES>...] [-a[=<TASK_ASSIGNEES>...]]... <TASK_INDEX> |
assign task 1 -a 1 |
Assign a task to random team member | assign random [-h] <TASK_INDEX> |
assign random 1 |
Filter tasks by team member | tasksof [-h] <MEMBER_INDEX> |
tasksof 1 |
List tasks in team | list tasks [-h] [-c] [-i] |
list tasks -i |
Sort tasks | sort tasks [-h] <ORDER> |
sort tasks asc |
View summary of task assignments in team | summary [-h] |
summary |
Summary of Link Commands
Action | Format | Examples |
---|---|---|
Add a new link | add link [-h] -l=<LINK_URL> -n=<LINK_NAME> |
add link -n google -l https://google.com |
Edit an existing link | edit link [-h] ([-n=<LINK_NAME>] [-l=<LINK_URL>]) <LINK_INDEX> |
edit link 1 -n facebook -l https://facebook.com |
Delete an existing link | delete link [-h] <LINK_INDEX> |
delete link 1 |
Summary of General Commands
Action | Format | Examples |
---|---|---|
Clearing all entries | clear [-h] |
clear |
Switching between light and dark theme | theme [-h] |
theme |
Exiting the program | exit [-h] |
exit |
Viewing help | help [-h] |
help |
Glossary
Command
An instruction that is used to perform some feature.
Find out more in the Understanding TruthTable’s CLI section.
Parameter
Information that is used to modify commands, often used with flags.
For instance, in the edit person 1 -n Name
example command,
-
1
is the parameter for theedit person
command (in this case,1
refers to the index of a person). -
Name
is the parameter for the flag-n
(in this case,Name
is the new name to be assigned to the person at index1
).
Find out more in the understanding TruthTable’s CLI section.
Flag
Specific characters that are used to modify commands, often used with flags.
For instance, in the edit person 1 -n Name
example command,
-
-n
is a flag for theedit person
command (in this case,-n
is used to update the person’s name)
Find out more in the understanding TruthTable’s CLI section.
Index
Refers to the position of an item in some collection.
Indexes must be positive integers, so they can only be 1, 2, 3, …
For instance, in a list of 3 alphabets containing (“a”, “b”, “c”) in that order,
- index 1 would refer to “a”
- index 2 would refer to “b”
- index 3 would refer to “c”
Alias
An alias is used to indicate that a named item is also known as another specified name.
For instance,
-
e
is an alias for theedit
command in TruthTable.
Command Line Interface
A text-based user interface which allows the user to perform some action through the use of commands.
Find out more in the understanding TruthTable’s CLI section.
Examples include
-
Unix shells like
sh
,zsh
,Bash
- Command Prompt in the Windows Operating System
Graphical User Interface
A visual user interface which allows the user to interact with a program using visual elements such as shapes, diagrams, and buttons.
Examples include
- Operating systems like Microsoft Windows, Apple’s macOS, Apple’s IOS, Linux
User Interface
User Interface is the point of contact between the user and a device, application, or website.
Examples include
- Monitors
- Keyboards
Component
A component refers to a part of the user interface.
For instance, the input box in the command section is a component of that section.
JSON File
A file which is used to store data, which adheres to a format called JavaScript Object Notation (JSON).
URL
A URL (Uniform Resource Locator) is a unique identifier used to locate any resource (e.g. websites) on the Internet. It is also referred to as a web address.