User Guide
TAlent Assistant™ is a desktop, lightweight and centralized management system catered to NUS School of Computing professors for managing the interview scheduling process of candidates applying to be undergraduate Teaching Assistants (TA). Professors will be able to access the candidates’ application data easily and review their general availability for scheduling interviews during office hours. TAlent Assistant™ 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, this application will be able to help you manage all things under the hood of the TA initiative faster than traditional GUI applications.
- Quick start
- Navigating the Display
- Features
- Viewing help
-
Managing candidates
- Adding a candidate:
add
- Editing a candidate:
edit
- Listing all candidates :
list
- Finding candidates by keyword(s) search:
find
- Sorting candidates by attribute field:
sort
- Updating a candidate’s remark:
remark
- Deleting a candidate :
delete
- Bringing a Candidate’s Information to the Center Panel :
focus
- Adding a candidate:
- Scheduling interviews
- Miscellaneous commands
- Processing data
- New features to be added (Coming Soon!)
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
TAlentAssistant.jar
from here. -
Copy the file to the folder you want to use as the home folder for your TAlent Assistant™.
-
Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
-
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:-
add id/A0123456B n/John Doe p/87654321 e/E0123456@u.nus.edu c/Computer Science yr/2 avail/1,2,3
Adds a new candidate into the system. -
list
: Lists all candidates. -
delete 1
: Deletes the first candidate displayed in the system. -
find k/Alex f/name
: Searches for all candidates with name containing “alex” (case-insensitive). -
sort s/name
: Sorts all candidates by name in ascending alphabetical order (i.e. A-Z). -
schedule add candidate/1 at/05-05-2022 10:00
: Schedules the first candidate for an interview at 5 May 2022 10AM. -
help
: List all commands in the system. -
exit
: Closes and exits the system.
-
-
Refer to the Features section below for details of all the available commands.
Navigating the Display
Notes about GUI display layout:
-
CommandBox Input : Top panel for user to type in commands.
-
Feedback Panel : Middle panel to show the feedback message after execution of command.
-
Candidates List : Bottom leftmost panel displays the list of candidates in the system, alongside some key information.
-
Candidate Profile : Bottom middle panel brings up a focused view of the candidate’s profile when the related
focus
command is entered. -
Scheduled Interviews : Bottom rightmost panel displays the list of scheduled interviews.
The three bottom panels can be resized based on user preferences, by dragging the shared vertical borders.
Features relating to the display of information within these panels are described below.
Features
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
If a parameter is expected only once in the command but you specified it multiple times, only the last occurrence of the parameter will be taken.
e.g. if you specifyp/82341234 p/86785678
, onlyp/86785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
. -
Optional parameters for commands are represented with
[
and]
.
e.g.[ATTRIBUTE_FIELD/VALUE]
. -
The following table lists some common abbreviations used in the command prefixes or
ATTRIBUTE_FIELD
s.
Abbreviation(s) | Refer(s) to |
---|---|
is or intstatus
|
interview status |
as or appstatus
|
application status |
yr |
seniority |
avail |
availability |
Notes about the entities’ values:
- A candidate’s
course
can only be either of the 5 computing courses in NUS School of Computing i.e. Business Analytics, Computer Engineering, Computer Science, Information Security or Information Systems.- Reason being, our Target User Profile is restricted to NUS SoC.
- A candidate’s
seniority
ranges as such [1, 4], i.e. 1, 2, 3 or 4. It will be displayed asCOMX
where X is [1, 4].- To address seniority of students in double-degree programmes, it has been discussed that
COM5
has not been seen in NUS SoC system. Thus, the restriction of the range [1, 4].
- To address seniority of students in double-degree programmes, it has been discussed that
Notes about duplicate candidate:
- A candidate is said to be a duplicate when any of the following input fields
STUDENT_ID
,EMAIL
orPHONE
exists in the system. - e.g. The system contains
candidate A
with the following details:-
STUDENT_ID
: A0234567B -
EMAIL
: E0123456@u.nus.edu -
PHONE
: 87438807
Adding or editingcandidate B
with any of these 3 fields ascandidate A
constitutes as a duplicate candidate.
-
Viewing help
Viewing help window: help
Lists the application commands that are available in the system.
Format: help
Managing candidates
Adding a candidate: add
Adds a candidate into the system.
Format: add id/STUDENT_ID n/NAME p/PHONE e/EMAIL c/COURSE yr/SENIORITY avail/AVAILABILITY
All fields of a candidate
below should not be blank and will be validated.
-
STUDENT_ID
is format-sensitive with ease of case sensitivity i.e. Allowing lower caps, and in this formatAXXXXXXXX
e.g.A0123456B
.- The first character has to be
A
ora
. - Followed by 7 digits.
- The last character with any alphabet is allowed.
- The first character has to be
-
NAME
should only contain alphanumeric characters and spaces. -
EMAIL
is format-sensitive, and should only be in this formatEXXXXXXX@u.nus.edu
. -
PHONE
is format-sensitive, and should only be a local Singapore number. i.e. Starting number of Singapore’s common phone/telephone numbers - 6, 8, 9. -
COURSE
should only be Computing courses. e.g. Business Analytics, Computer Engineering, Computer Science, Information Security, Information Systems.- The first character of each word in the course i.e.
C
inComputer
andS
inScience
forComputer Science
is case-sensitive.
- The first character of each word in the course i.e.
-
SENIORITY
is a single integer ranging from 1 to 4. i.e. 1 to 4 inclusive.- This attribute field serves as a gauge for the SoC professor (user) on which year the candidate is in to better understand how far along they are in their undergraduate studies. It follows the faculty classification from
COM1
toCOM4
, and does not differentiate beyondCOM4
following the faculty system classification.
- This attribute field serves as a gauge for the SoC professor (user) on which year the candidate is in to better understand how far along they are in their undergraduate studies. It follows the faculty classification from
-
AVAILABILITY
is an input to represent the available days. e.g.1,2,3
corresponds to an availability ofMonday
,Tuesday
andWednesday
. It accepts a number range from only 1 to 5.- Each available day represented by the corresponding integer number should be comma-separated. It does not matter how the days are ordered in the user input.
Examples:
-
add id/A0123456B n/John Doe p/87654321 e/E0123456@u.nus.edu c/Computer Science yr/2 avail/1,2,3
adds a new candidate with Student ID, A0123456B, named John Doe.
Editing a candidate: edit
Edits a candidate in the system.
Format: edit INDEX PREFIX/NEW_VALUE [PREFIX/NEW_VALUE]…
Notes about the edit format:
PREFIX
can take on the following values id
, name
, email
, phone
, course
, yr
, as
, avail
- Edits the candidate at the specified
INDEX
. The index refers to the index number shown in the displayed candidate list. The index must be a positive integer 1, 2, 3, … . - At least one field must be provided and the rest are optional fields.
- Existing values will be updated to the input values.
-
as
prefix short for Application Status should only be eitherPending
,Accepted
orRejected
.
Examples:
-
edit 1 n/Jane Doe yr/3 avail/1
Edits the name, year and availability of the 1st candidate to be Jane Doe, Year 3, Monday only respectively. -
edit 2 c/Business Analytics
Edits the course of the 2nd candidate to beBusiness Analytics
. -
edit 3 as/Accepted
Edits the application status of the 3rd candidate toAccepted
.
Listing all candidates : list
Displays all candidates found in the system.
Format: list
Finding candidates by keyword(s) search: find
Finds and lists candidates whose attribute field(s) contain(s) any of the given keyword(s).
Format: find k/KEYWORD [k/MORE_KEYWORDS]… [f/ATTRIBUTE_FIELD]
Notes about the find format:
ATTRIBUTE_FIELD
can take on the following values
all
, avail
, appstatus
, course
, email
, intstatus
, name
, phone
, seniority
, studentid
, remark
- A candidate’s
seniority
may match any case variation ofCOM1
,COM2
,COM3
orCOM4
. - A candidate’s
avail
may match any case variation of days in the format ofMON
,TUE
,WED
,THU
orFRI
.
- The keyword search is case-insensitive. e.g
hans
will matchHans
. - The attribute field is case-insensitive. e.g.
NAME
is equivalent toname
. - The search will return a list of all candidates containing any of the specified keyword(s) in the specified attribute field.
- For
f/all
, the search will find keywords across all attribute fields of the candidate records. - Only full keywords will be matched
e.g.
k/jane doe f/name
will not match candidates with namejane koe
or justjane
. - Candidates matching at least one full keyword (in the specified attribute field) will be returned i.e. OR search,
e.g.
k/Jane k/Doe f/name
will return candidates with nameJane Koe
,John Doe
. - If multiple
ATTRIBUTE_FIELD
s are provided, only the last field will be used. - If no
ATTRIBUTE_FIELD
is provided, the search will be conducted across all fields by default.
Examples:
-
find k/Jane f/name
returns candidates with name e.g.jane
andjane doe
. -
find k/Computer k/science f/course
returns candidates with the course field i.e.Computer Science
andComputer Engineering
. -
find k/Jane k/Tan f/name
returns candidates with name e.g.Jane
,tan
andJohn Tan
.
Sorting candidates by attribute field: sort
Returns a list of candidates sorted by the specified attribute field in ascending order (A-Z, 0-9).
Format: sort s/ATTRIBUTE_FIELD
Notes about the sort format:
ATTRIBUTE_FIELD
can take on the following values
appstatus
, course
, intstatus
, name
, seniority
, studentid
- The attribute field is case-insensitive. e.g.
NAME
is equivalent toname
. - The search will return a list of all candidates sorted in ascending order. (i.e. A-Z, 0-9) with regard to the specified attribute field.
Examples:
Let’s reference a default sample list of unique candidates with attribute fields stated as (name
, studentid
):
- (
Ben
,A5588565L
) - (
Alice
,A2344567B
) - (
Charlie
,A0188565L
)
sort s/name
returns candidates sorted by name in the following order:
- (
Alice
,A2344567B
) - (
Ben
,A5588565L
) - (
Charlie
,A0188565L
)
sort s/studentid
returns candidates sorted by student id in the following order:
- (
Charlie
,A0188565L
) - (
Alice
,A2344567B
) - (
Ben
,A5588565L
)
Updating a candidate’s remark: remark
Updates the remark
field of a candidate to the user input keyed in.
Format: remark INDEX [r/REMARK]
Notes about the remark format:
INDEX
must be valid within the range of candidates in the system and non-negative.
- To remove the remark of the first candidate displayed in the system, the user can simply key in
remark 1
orremark 1 r/
, which will update the remark of the candidate to be empty.
Examples:
-
remark 1 r/a good candidate
Updates the candidate’s remark field to reflect ‘a good candidate’. -
remark 1 r/
Removes the candidate’s remark field to reflect ``.
Deleting a candidate : delete
Deletes the specified candidate from the system.
Format: delete INDEX
- Deletes the candidate at specified
INDEX
. - The index refers to the index number shown in the displayed candidate list
- The index must be a positive integer 1, 2, 3, …
Examples:
-
list
followed by delete 2 deletes the 2nd candidate in the candidate list. -
find k/bernice k/alex f/name
followed by delete 1 deletes the 1st candidate in the results of the find command.
Note: Deleting a candidate from the system deletes his or her scheduled interview (if any) as well.
Bringing a Candidate’s Information to the Center Panel : focus
View more details about the Candidate in the middle panel.
Format: focus INDEX
- Additional details of the Candidate will be displayed on the center panel in the application.
- To switch to another Candidate’s information, user can enter a new
focus
command and the newindex
of the candidate. -
If a
Candidate
is in focus and the user decides todelete
the candidate, the middle panel will be cleared.
Scheduling interviews
Note:
- The duration of an interview is fixed at 30 minutes.
- Interviews that have expired will automatically be deleted from the interview schedule upon a restart of the application. An interview is considered to be expired once its duration has fully passed. (e.g. If an interview is scheduled at 5PM, the interview is deemed to have expired from 5:30PM onwards).
- The
Interview Status
of a candidate is automatically set toScheduled
upon a successful scheduling of interview. Once the candidate’s scheduled interview has expired, theInterview Status
will be set toCompleted
upon a restart of the application.
Scheduling a candidate for interview: schedule add
Schedules the specified candidate for an interview.
Format: schedule add candidate/INDEX at/DATE_TIME
- Schedules the candidate at the specified
INDEX
for an interview on givenDATE_TIME
. - The candidate index refers to the index number shown in the displayed candidate list.
- The candidate index must be a positive integer 1, 2, 3, …
-
DATE_TIME
must be specified in the formatdd-MM-yyyy HH:mm
. -
DATE_TIME
must not be earlier than the present date and time. - Interviews must be scheduled within the office hours, defined as Monday to Friday, 8AM - 6PM (i.e. The last interview for the day allowed is at 5:30PM).
- Attempts to schedule an interview within the duration of another interview will result in an error. (e.g. Interview A starts at 10AM on a given day. Scheduling an interview from 9:31AM up to 10:29AM is prohibited).
Examples:
-
list
followed byschedule add candidate/2 at/05-05-2022 10:00
schedules the second candidate in the candidate list for an interview on 5 May 2022 10AM.
Rescheduling an interview: schedule edit
Reschedules the specified interview to a new date and time.
Format: schedule edit SCHEDULE_INDEX at/DATE_TIME
- Reschedules the interview at the specified
SCHEDULE_INDEX
to the given newDATE_TIME
. - The schedule index refers to the index number shown in the displayed interview schedule.
- The schedule index must be a positive integer 1, 2, 3, …
-
DATE_TIME
must be specified in the formatdd-MM-yyyy HH:mm
. -
DATE_TIME
must not be earlier than the present date and time.
Examples:
-
view all
followed byschedule edit 2 at/06-06-2022 15:00
reschedules the second interview in the interview schedule to 6 June 2022 3PM.
Deleting an interview: schedule delete
Deletes the specified interview.
Format: schedule delete SCHEDULE_INDEX
- Deletes the interview at the specified
SCHEDULE_INDEX
. - The schedule index refers to the index number shown in the displayed interview schedule.
- The schedule index must be a positive integer 1, 2, 3, …
Examples:
-
view all
followed byschedule delete 2
deletes the second interview in the interview schedule.
Note: Deleting an interview will automatically trigger the associated candidate’s
Interview Status
to Not Scheduled
, regardless of the state of the deleted interview (upcoming, ongoing or expired).
Viewing scheduled interviews view
Returns the list of scheduled interviews within the specified time period.
Format: view TIME_PERIOD
Notes about the view format:
TIME_PERIOD
can take on the following values all
, today
, week
, month
.
- The attribute field is case-insensitive. e.g.
ALL
is equivalent toall
. - Scheduled interviews are automatically sorted from earliest to latest.
Examples:
-
view all
returns all scheduled interviews still in system whether in the past or upcoming. -
view today
returns all scheduled interviews on the same date as the current time. -
view week
returns all upcoming scheduled interviews within the next 7 days. -
view month
returns all upcoming scheduled interviews within the next month period.
Clearing interview schedule schedule clear
Clears the list of interviews in the schedule.
Format: schedule clear
Note: The interview status of candidates who have an
upcoming interview in the schedule will be reset from Scheduled
to Not Scheduled
. However, if a candidate has
an interview which has just expired (and TAlent Assistant™ has not been refreshed) upon the execution of the command,
his or her interview status will be updated to Completed
.
Miscellaneous commands
Clearing all entries : clear
Clears all entries (candidates and interviews) from the system.
Format: clear
Exiting the program : exit
Exits the program.
Format: exit
Processing data
Saving the data
TAlent Assistant™ 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
TAlent Assistant™ candidate and interview data are saved as JSON files [JAR file location]/data/talentassistant.json
and [JAR file location]/data/interviewlist.json
respectively. Advanced users are welcome to update data directly by editing that data file.
New features to be added (Coming Soon!)
- The following features are being considered for future versions of TAlent Assistant™:
- A new feature to pinpoint the exact interview in conflict (if any) when a user attempts to schedule an interview
- A new feature to allow the user to schedule interviews of flexible duration is under consideration for future versions of TAlent Assistant™.
- Extension of the
find
command to enable searching across multiple fields. - Extension of the
view
command to enable user to bring up a list of scheduled interviews for a customised date range. - Extension of the
sort
command to enable user to customise the sorting order (ascending or descending) as well as sorting by availabilities.
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 TAlent Assistant™ home folder.
Command summary
Commands in this section have been organised based on the expected scope of behaviour.
Managing candidates
Action | Format, Examples |
---|---|
Add |
add id/STUDENT_ID n/NAME p/PHONE e/EMAIL c/COURSE yr/SENIORITY avail/AVAILABILITY e.g., add id/A0123456B n/John Doe p/87654321 e/E0123456@u.nus.edu c/Computer Science yr/2 avail/1,2,3
|
Delete |
delete INDEX e.g., delete 3
|
Edit |
edit INDEX [PREFIX/VALUE] [MORE_PREFIX/VALUE]… e.g., edit 2 n/James Lee p/98765432 yr/4
|
Find |
find k/KEYWORD [k/MORE_KEYWORDS]… [f/ATTRIBUTE_FIELD] e.g., find k/Jane k/Doe f/name
|
Sort |
sort s/ATTRIBUTE_FIELD e.g., sort s/name
|
Remark |
remark INDEX [r/REMARK] e.g., remark 1 r/a good candidate
|
Focus |
focus INDEX e.g., focus 1
|
Scheduling interviews
Action | Format, Examples |
---|---|
Schedule interview |
schedule add candidate/INDEX /at DATE_TIME e.g., schedule add candidate/2 at/05-05-2022 10:00
|
Reschedule interview |
schedule edit SCHEDULE_INDEX at/DATE_TIME e.g., schedule edit 1 at/06-06-2022 15:00
|
Delete interview |
schedule delete SCHEDULE_INDEX e.g., schedule delete 1
|
Clear all interviews | schedule clear |
View scheduled interviews |
view TIME_PERIOD e.g., view all , view today
|
Miscellaneous commands
Action | Format, Examples |
---|---|
Clear | clear |
Exit | exit |
Help | help |