User Guide
Welcome to TalentHub, an all-in-one desktop application designed to help you, a Celebrity Talent Manager, with the management of your celebrities and their relevant industrial contacts.
TalentHub is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
CLI and GUI:
Having access to both a Command Line Interface (CLI) and a Graphical User Interface (GUI) means that you can do everything by simply typing commands into the command box, and you can easily view and navigate results on the screen. This way, you can type fast and manage your contacts and your celebrities’ events efficiently, while still having the ease of viewing all of them in a graphical format.
- Quick start
- Features
- Managing Contacts
- Managing Events
- Utility Commands
- Saving the data
- Editing the data file
- FAQ
- Known issues
- Command summary
Quick start
-
Ensure you have Java
17or above installed in your computer. You can view an installation guide here. -
Download the latest
.jarfile from here. -
Copy the file to the folder you want to use as the home folder for your TalentHub.
-
Open a command terminal,
cdto change directory to the folder your TalentHub is in, and use thejava -jar talenthub.jarcommand to run the application. A 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
helpand pressing Enter will open the help window.
Some example commands you can try:-
list person: Lists all persons. -
add person n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01: Adds a contact namedJohn Doeto TalentHub. -
delete person 3: Deletes the 3rd person shown in the current list after receiving confirmation from you. -
clear all: Deletes all events and persons after receiving confirmation from you.
Caution!
Running this command will clear all your data in TalentHub. This action is irreversible after confirmation.-
exit: Exits the app.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis a parameter which can be used asadd n/John Doe. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]can be used asn/John Doe t/Celebrityor asn/John Doe. -
Items with
… after them can be used multiple times including zero times.
e.g.[t/TAG]…can be used as(i.e. 0 times),t/Celebrity,t/Stylist t/Hairdresseretc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp. -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Managing Contacts
Adding a person: add person
This command allows you to add a person to a list of persons on TalentHub!
Format: add person n/NAME p/PHONE_NUMBER [e/EMAIL] [a/ADDRESS] [t/TAG]…
Person constraints
-
A person’s name must be unique (case-sensitive).
-
A person’s name can only contain alphanumeric characters and spaces.
-
A person’s phone number must be unique.
-
A person’s tag must not contain any spaces e.g
Twitch Streameris not a valid tag.
Optionals
A person can have any number of tags or none at all!
The address and email address fields are also optional!
Examples:
-
add person n/John Doe p/98765432 e/johnd@example.com t/Celebrityadds a person namedJohn Doewith the phone number98765432, email addressjohnd@example.comand tagCelebrity. -
add person n/Bernice Yu e/berniceyu@example.com a/Yu Apartment p/99272758 t/Hairdresseradds a person namedBernice Yuand the email addressberniceyu@example.com, addressYu Apartment, phone number99272758and tagHairdresser.
add person n/John Doe p/98765432 e/johnd@example.com t/CelebrityListing all persons : list person
This command allows you to view a list of all persons on TalentHub!
Format: list person
Example:
list personEditing a person : edit person
This command allows you to edit an existing person in TalentHub!
Format: edit person INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
- Edits the person at the specified
INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer and no greater thanInteger.MAX_VALUE(2147483647) e.g. 1, 2, 3, … - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative.
Person constraints
-
A person’s name must be unique (case-sensitive).
-
A person’s name can only contain alphanumeric characters and spaces.
-
A person’s phone number must be unique.
t/, e/ or a/ respectively!
Examples:
-
edit person 7 p/91234567 e/ a/123 Clementi RdEdits the phone number and address of the 7th person to be91234567and123 Clementi Rdrespectively and clears the email address. -
edit person 2 n/Bernice Yu a/ t/Edits the name of the 2nd person to beBernice Yuand clears the address and all existing tags.
edit person 7 p/91234567 e/ a/123 Clementi RdFinding persons by name: find person
This command allows you to find persons whose names contain any of the given keywords on TalentHub!
Format: find person KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g.
hanswill matchHans - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans - Only full words will be matched. e.g.
Hanwill not matchHans - Persons matching at least one keyword will be returned (i.e.
ORsearch). e.g.Hans Bowill returnHans Gruber,Bo Yang - Exact spacing must be used
Bernice Yuis not the same asBernice Yu.
Examples:
-
find person JohnreturnsjohnandJohn Doe -
find person john bernicereturnsJohn Doe,Bernice Yu
find person John BerniceViewing person by name: view person
This command allows you to view the comprehensive details, which includes address and email address, of a specific person whose name exactly matches the given keywords on TalentHub!
Format: view person KEYWORD [MORE_KEYWORDS]
- The search is case-sensitive. e.g.
johnwill not matchJohn - The order of the keywords matters. e.g.
John Doewill matchJohn Doebut notDoe John - Only the full name is searched.
- Only full words will be matched. e.g.
Johnwill not matchJohnny - Persons matching all keywords exactly will be returned. e.g.
John Doewill returnJohn Doe
Examples:
-
view person Bernice Yureturns the details forBernice Yu -
view person John Doereturns the details forJohn Doe
view person John DoeFiltering person by tag: filter person
This command allows you to filter persons based on the exact tag provided, ensuring only persons with that tag are displayed on TalentHub!
Format: filter person TAG
- The search is case-insensitive. e.g.
celebritywill matchCelebrity. - Only exact full-word matches will return a result.
e.g.
Hairwill returnHairbut notHairdresser
Examples:
-
filter person Hairdresserreturns the person with tagHairDresser. -
filter person Celebrityreturns the person with tagCelebrity.
filter person CelebrityDeleting a person : delete person
This command allows you to delete the specified person from the lists of persons on TalentHub!
Format: delete person INDEX
- Deletes the person at the specified
INDEX. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer and no greater than
Integer.MAX_VALUE(2147483647) e.g. 1, 2, 3 …
When you delete a person, you will also delete events which the person is the celebrity for, and you remove the person from all events’ contact lists. This action is irreversible after confirmation.
Examples:
-
list personfollowed bydelete person 2deletes the 2nd person in the TalentHub. -
find person Bernicefollowed bydelete person 1deletes the 1st person in the results of thefind personcommand.
delete person 7
N or n and pressing enter would return the following message.
Y or y and pressing enter would return the following message.Managing Events
Adding an event: add event
This command allows you to add an event to a list of events on TalentHub!
Format: add event n/NAME t/TIME [v/VENUE] c/CELEBRITY [p/POINTS OF CONTACT]…
Event constraints
- The celebrity and all points of contacts must be existing persons in TalentHub.
- Current implementation does not require the person to be added to have the celebrity tag attached to their name.
- You cannot add an event with the same
Celebrityand overlappingTimeas an existing event. - When adding a person to the point of contacts list, only the first tag will be displayed.
Optionals
An event can have any number of points of contact or none at all!
The venue field is also optional!
Examples:
-
add event n/Oscars t/2022-03-27 10:00 to 2022-03-27 18:00 v/Dolby Theatre c/Alex Yeoh p/Charlotte Oliveiro p/David Liadds an event namedOscarswith the time2022-03-27 10:00 to 2022-03-27 18:00, venueDolby Theatre, celebrityAlex Yeohand points of contactCharlotte OliveiroandDavid Li. -
add event n/Hair Cut t/2022-03-27 16:00 to 2022-03-27 18:00 v/Salon c/Bernice Yuadds an event namedHair Cutwith the time2022-03-27 16:00 to 2022-03-27 18:00, venueSalon, celebrityBernice Yuand no points of contact.
add event n/Hair Cut t/2022-03-27 16:00 to 2022-03-27 18:00 v/Salon c/Bernice YuListing all events: list event
This command allows you to view a list of all events on TalentHub!
Format: list event
Example:
list eventEditing an event : edit event
This command allows you to edit an existing event on TalentHub!
Format: edit event INDEX [n/NAME] [t/TIME] [v/VENUE] [c/CELEBRITY] [p/POINTS OF CONTACT]…
- Edits the event at the specified
INDEX. The index refers to the index number shown in the displayed event list. The index must be a positive integer and no greater thanInteger.MAX_VALUE(2147483647) e.g. 1, 2, 3, … - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
Event constraints
- The celebrity and all points of contacts must be existing persons in TalentHub.
- You cannot add an event with the same
Celebrityand overlappingTimeas an existing event.
v/, p/ respectively!
Examples:
-
edit event 1 t/2024-03-21 v/Jane's SalonEdits the time and venue of the 1st event to be2024-03-21andJane's Salonrespectively. -
edit event 2 n/Movie Screening v/ p/Edits the name of the 2nd event to beMovie Screeningand clears the venue and points of contact.
edit event 2 n/Movie Screening v/ p/Finding events by name: find event
This command allows you to find events whose names contain any of the given keywords on TalentHub!
Format: find event KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g.
hikingwill matchHiking - The order of the keywords does not matter. e.g.
Hair Cutwill matchCut Hair - Only full words will be matched. e.g.
Oscarwill not matchOscars - Persons matching at least one keyword will be returned.
e.g.
Hair Hikingwill returnHair Cut,Park Hiking,Hiking
Examples:
-
find event HikingreturnsHikingandPark Hiking -
find event Hair OscarsreturnsHair Cut,Oscars
find event Hair OscarsViewing event by name: view event
This command allows you to view the comprehensive details, which includes points of contact, of a specific event whose name exactly matches the given keywords on TalentHub!
Format: view event KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g.
hikingwill matchHiking - The order of the keywords matters. e.g.
Hair Cutwill matchHair Cutbut notCut Hair - Only the full name is searched.
- Only full words will be matched. e.g.
Oscarwill not matchOscars. - Events matching all keywords exactly will be returned.
e.g.
Hikingwill not matchPark Hiking - Only the first tag of every person in the Point of Contact list is displayed.
Examples:
-
view event Oscarsreturns the details forOscars -
view event Hair Cutreturns the details forHair Cut
view event Hair CutFiltering events by celebrity name: filter event
This command allows you to filter events based on the exact celebrity name provided, ensuring that only events associated with that celebrity are displayed on TalentHub!
Format: filter event CELEBRITY_NAME
- The search is case-sensitive. e.g.
bernice yuwill not matchBernice Yu - The order of the keywords matters. e.g.
Bernice Yuwill not matchYu Bernice - Only the full celebrity name is searched.
- Only full name will be matched. e.g.
Berwill not matchBernice - Persons matching all keywords exactly will be returned.
e.g.
Bernicewill matchBernicebut notBernice Yu
Examples:
-
filter event Alex Yeohreturns the events for celebrityAlex Yeoh -
filter event Bernice Yureturns the events for celebrityBernice Yu
filter event Bernice YuDeleting an event : delete event
This command allows you to delete the specified event from the list of events on TalentHub!
Format: delete event INDEX
- Deletes the event at the specified
INDEX. - The index refers to the index number shown in the displayed event list.
- The index must be a positive integer and no greater than
Integer.MAX_VALUE(2147483647) e.g. 1, 2, 3, …
Examples:
-
list eventfollowed bydelete event 2deletes the 2nd event in the TalentHub. -
find event Oscarsfollowed bydelete event 1deletes the 1st event in the results of thefind eventcommand.
delete event 4Clearing all events : clear event
This command allows you to clear all event entries from the TalentHub after receiving confirmation from you!
Format: clear event
Running this command will clear all events in TalentHub. This action is irreversible after confirmation.
Example:
clear event
N or n and pressing enter would return the following message.
Y or y and pressing enter would return the following message.Utility Commands
Clearing all entries : clear all
This command allows you to clear all entries from TalentHub!
Running this command will clear all persons and events in TalentHub. This action is irreversible after confirmation.
Format: clear all
Example:
clear all
N or n and pressing enter would return the following message.
Y or y and pressing enter would return the following message.Exiting the program : exit
This command allows you to exit TalentHub!
Format: exit
More information on Commands : help
This command provides you with a link to the application’s user guide in a new window. This link can be copied using the copy URL button to access the user guide online!
Format: help
Example:
helpSaving the data
The data that you store into TalentHub is saved in the hard disk automatically after any command that changes the data. There is no need for you to save your data manually!
Editing the data file
Your data is saved automatically as a JSON file [JAR file location]/data/talenthub.json! If you are experienced with handling such files, you are welcome to update data directly by editing that data file.
If your changes to the data file makes its format invalid, TalentHub will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause TalentHub to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the data file (talent.json) it creates with the file that contains the data of your previous TalentHub home folder.
Q: How do I add multiple tags to a contact?
A: When adding a person, use t/TAG multiple times. For example, add person n/John Doe p/98765432 t/CameraMan t/Producer will add “CameraMan” and “Producer” as tags.
Q: How can I delete an optional field in Person or Event I have added?
A: You can delete the field using the edit command by specifying a blank prefix for the field you want to delete. For example, edit event v/ deletes the venue field.
Q: How do I undo a mistake?
A: An update to provide an undo feature is currently in progress.
Known issues
-
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the
preferences.jsonfile created by the application before running the application again. -
When editing Person or Event name in View mode, the Person or Event being viewed will be exited and a blank screen will be displayed. The remedy is to use the
viewcommand to view the new Contact or Event name. -
If you minimize the Help Window and then run the
helpcommand (or use theHelpmenu, or the keyboard shortcutF1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window. -
When using the
add personandadd eventcommands, if you enter an empty prefix for tags and contacts to set as no tags or points of contacts (e.g.,t/orp/), the application will not recognize the empty prefix. The remedy is to remove the prefix entirely if you are not adding any tags or points of contacts. - When inputting indexes for commands, if you enter a large integer (greater than 2147483647), the application will not recognize the index as it is too large.
Command summary
Managing Contacts
| Action | Format | Examples |
|---|---|---|
| Add |
add person n/NAME p/PHONE_NUMBER [e/EMAIL] [a/ADDRESS] [t/TAG]… |
e.g., add person n/Jake Doe p/98765432 e/jaked@example.com a/123, Clementi Rd, 1234665 t/Celebrity
|
| Delete |
delete person INDEX |
e.g., delete person 3
|
| Edit |
edit person INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]… |
e.g., edit person 1 n/James Lee e/jameslee@example.com
|
| Filter |
filter person TAG |
e.g., filter person Celebrity
|
| Find |
find person KEYWORD [MORE_KEYWORDS] |
e.g., find person James Jake
|
| List | list person |
|
| View |
view person KEYWORD [MORE_KEYWORDS] |
e.g., view person Jake Doe
|
Managing Events
| Action | Format | Examples |
|---|---|---|
| Add |
add event n/NAME t/TIME [v/VENUE] c/CELEBRITY [p/POINTS OF CONTACT]… |
e.g., add event n/Oscars t/2024-03-01 12:10 to 2024-03-01 18:30 v/Dolby Theatre c/Jim Bob p/John Doe, Jane Doe
|
| Clear | clear event |
|
| Delete |
delete event INDEX |
e.g., delete event 3
|
| Edit |
edit event INDEX [n/NAME] [t/TIME] [v/VENUE] [c/CELEBRITY] [p/POINTS OF CONTACT]… |
e.g., edit event 1 t/2024-03-21 10:00 to 2024-03-21 12:30 v/Jane's Salon
|
| Filter |
filter event CELEBRITY_NAME |
e.g., filter event Jim Bob
|
| Find |
find event KEYWORD [MORE_KEYWORDS] |
e.g., find event Hair Oscars
|
| List | list event |
|
| View |
view event KEYWORD [MORE_KEYWORDS] |
e.g., view event Oscars
|
Utility Commands
| Action | Format |
|---|---|
| Clear | clear all |
| Exit | exit |
| Help | help |