User Guide
FaculType is a desktop app for managing faculty members and their modules, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Table of Contents
Quick Start
-
Ensure you have Java
11or above installed in your Computer. -
Download the latest
FaculType.jarfrom here. -
Copy the file to the folder you want to use as the home folder for FaculType.
-
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
helpand pressing Enter will open the help window. -
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/friendor 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/friend,t/friend t/familyetc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also acceptable.
General Features
Listing all contacts and modules: list
Shows a list of all contacts in FaculType and all modules in the active semester.
Format: list
Listing all contacts : clist
Shows a list of all contacts in FaculType.
Format: clist
Listing all modules : mlist
Shows a list of all modules in the active semester.
Format: mlist
Switching the active semester : switch
Switches the active semester from Semester 1 to Semester 2 and vice versa.
Format: switch
Reseting FaculType : reset
Resets FaculType to its initial state by clearing all entries of persons and modules.
Format: reset
Clearing all contacts : cclear
Clears all entries of contacts in FaculType.
Format : cclear
Clearing all modules : mclear
Clears all entries of modules in the active semester.
Format : mclear
Viewing help : help
Shows a message explaining how to access the help page.
Format: help
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
FaculType data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Contact Management
Adding a contact: add
Adds a contact to FaculType.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL d/DEPARTMENT o/OFFICE [t/TAG]…
Examples:
add n/Janson Garrick p/98765432 e/jansongarrick@example.com d/Computer Science o/B01-A3add n/Amanda Holt p/98765431 e/amanda123@example.com d/Data Science o/COM1-02-03 t/lecturer t/friend
Deleting a contact : delete
Deletes the specified contact from FaculType.
Format: delete INDEX
- Deletes the contact at the specified
INDEX. - The index refers to the index number shown in the displayed contact list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
clistfollowed bydelete 2deletes the 2nd contact in FaculType. -
find n/Jansonfollowed bydelete 1deletes the 1st contact in the results of thefindcommand.
Editing a contact : edit
Edits an existing contact in FaculType.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [d/DEPARTMENT] [o/OFFICE] [t/TAG]…
- Edits the contact at the specified
INDEX. The index refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, … - At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the contact will be removed i.e. adding of tags is not cumulative.
- You can remove all the contact’s tags by typing
t/without specifying any tags after it.
Examples:
-
edit 1 d/Computing o/COM2-01-02edits the department and office of the 1st contact to beComputingandCOM2-01-02respectively. -
edit 2 n/Brenda Chan t/edits the name of the 2nd contact to beBrenda Chanand clears all existing tags.
Adding or updating a remark : remark
Adds or updates the remark of an existing contact in FaculType.
Format: remark INDEX r/[REMARK]
- Adds a remark to the contact at the specified
INDEX. The index refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, … - You can remove the contact’s remark by typing
r/without specifying any remark after it.
Examples:
-
remark 1 r/Wears red glassesadds the remark “Wears red glasses” to the 1st contact in the list. -
remark 2 r/erases the remark of the 2nd contact in the list.
Locating contacts by attributes: find
Finds all contacts that match the given fields.
Format: find [n/NAME] [p/PHONE] [e/EMAIL] [d/DEPARTMENT] [o/OFFICE] [r/REMARK] [t/TAG]
- The search is case-insensitive. e.g.
chriswill matchChris. - The order of the keywords does not matter. e.g.
Chris Evanswill matchEvans Chris. - Partial words will be matched e.g.
Chri Evanwill matchChris Evans. - Results must contain every keyword e.g.
Chris Evanswill not matchChris Pratt. - At least one of the optional fields must be provided.
Examples:
-
find n/Johnreturns all contacts with names containingJohn. -
find n/alex yeohreturns all contacts with names containingalexandyeoh. -
find n/victor tan d/computingreturns all contacts with names containingvictorandtanand with departments containingcomputing.
Module Management
Adding a module: addmod
Adds a new module to the active semester.
Format : addmod m/MODULE_CODE n/MODULE_NAME
- Adds the
MODULE_CODEspecified to the active semester. TheMODULE_CODEmust not exist in the active semester in the first place.
Examples:
-
addmod m/CS50 n/Introduction to Computer Scienceadds a module namedIntroduction to Computer Sciencewith codeCS50to the active semester. -
addmod m/CS2102 n/Database Systemsadds a module namedDatabase Systemswith codeCS2102to the active semester.
Deleting a module: delmod
Deletes a module from the active semester.
Format: delmod m/MODULE_CODE
- Deletes the
MODULE_CODEspecified from the active semester. TheMODULE_CODEmust exist in the active semester in the first place. The command takes in only oneMODULE_CODEparameter and does not allow for the deletion of multiple modules.
Examples:
-
delmod m/CS50deletes the existing module with codeCS50from the active semester. -
delmod m/CS2102deletes the existing module with codeCS2102from the active semester.
Finding modules : findmod
Finds all modules in the active semester that match the given fields.
Format : findmod [m/MODULE_CODE] [n/MODULE_NAME] [i/INSTRUCTOR_NAME]
-
MODULE_CODEparameter does not allow for multiple keywords. e.g.cs1 cs2would not be allowed. - Partial words will be matched for all parameters. e.g.
datawill matchDatabase Systems. - The search is case-insensitive for all parameters. e.g.
cs50will matchCS50. - The order of the keywords do not matter. e.g.
Statistics and Probabilitywill matchProbability and Statistics. - At least one of the optional fields must be provided.
Examples :
-
findmod m/cs210returns all modules with codes containingCS210. -
findmod n/programmingreturns all modules with names containingprogramming. -
findmod n/software methodologyreturns all the modules with names containingsoftwareandmethodology. -
findmod m/CS2 n/security i/Alexreturns all modules with codes containingCS2, names containingprogramming, and instructors with names containingAlex. -
findmod m/CS2 n/Software Programming i/Damithreturns all modules with codes containingCS2and names containingSoftwareandProgrammingand instructors with namesDamith.
Instructor Assignment
Assigning an instructor to modules : assign
Assigns a contact to one or more modules in the active semester. The contact will be an instructor in those modules.
Format: assign INDEX m/MODULE_CODE [m/MODULE_CODE]…
- Assigns the contact at the specified
INDEXto everyMODULE_CODEspecified. AllMODULE_CODEmust be unique and must exist in the active semester in the first place.
Examples :
-
assign 1 m/CS3233Assigns the contact at index 1 to the existing module with codeCS3233. -
assign 2 m/CS2030SAssigns the contact at index 2 to the existing module with codeCS2030S. -
assign 3 m/CS2100 m/CS2106Assigns the contact at index 3 to the existing modules with codesCS2100andCS2106.
Before assignment:

After assignment:

Unassigning an instructor from modules : unassign
Unassigns a contact from one or more modules in the active semester. The contact will no longer be an instructor in those modules.
Format: unassign INDEX m/[MODULE_CODE] [m/MODULE_CODE]…
- Unassigns the contact at the specified
INDEXfrom everyMODULE_CODEspecified. AllMODULE_CODEmust be unique and the contact must be assigned to allMODULE_CODEin the active semester in the first place. - You can unassign the contact from all modules in the active semester by typing
m/without specifying any module codes after it.
Examples :
-
unassign 1 m/CS3233Unassigns the contact at index 1 from the existing module with codeCS3233. -
unassign 3 m/CS2100 m/CS2106Unassigns the contact at from 3 to the existing modules with codesCS2100andCS2106. -
unassign 2 m/Unassigns the contact at index 2 from all modules in the active semester.
Clearing all assignments : unassignall
Unassigns all contacts from all modules in the active semester.
Format: unassignall
Upcoming Features
The following features are not done yet and will be implemented in the next update.
- Order filter results of contacts and modules by how much they match the specified parameters (Coming soon).
- Differentiate instructor tags in module cards for instructors with the same name (Coming soon).
Current Bugs
The following bugs still occur in the current version of FaculType and will be fixed in the next update. Using features in the following ways should be avoided.
- Editing a contact’s identifying attributes (name, phone, email) to be the same as another contact’s causes problems due to the detection of duplicate contacts. This bug is inherited from the parent project AddressBook Level 3.
- A tag in a contact card and an instructor tag in a module card may be cut off if the text inside is too long or if there are too many tags. This bug is inherited from the parent project AddressBook Level 3.
Example of the tag bug:

- No validation of instructor existence for modules. Adding a non-existent instructor by editing the
addressbook.jsonfile will not throw any error.
Example of the instructor bug:


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 FaculType home folder.
Q: What are instructors?
A: Instructors are contacts that have been assigned to one or more modules.
Q: Can I directly assign a contact to a module in the non-active semester?
A: No. Use switch to switch the active semester first and then use assign.
Q: What happens if I accidentally clear all my data using reset?
A: FaculType currently does not support an undo operation so it is not possible to retrieve deleted data. Please ensure that you wish to delete all your data before using reset.
Q: When and why does FaculType use sample data?
A: FaculType uses sample data when the application is first launched. The purpose of providing sample data is to let users experiment with the data while getting familiar with FaculType. If you wish to insert your own data, you can use reset.
Command Summary
| Action | Format, Examples |
|---|---|
| List all contacts and modules | list |
| List all contacts | clist |
| List all modules | mlist |
| Switch active semester | switch |
| Action | Format, Examples |
|---|---|
| Add |
add n/NAME p/PHONE_NUMBER e/EMAIL d/DEPARTMENT o/OFFICE [t/TAG]… e.g. add n/Betsy Crowe p/98765431 e/betsycrowe@example.com d/Data Science o/COM1-02-03 t/lecturer t/friend
|
| Delete |
delete INDEXe.g. delete 3
|
| Edit |
edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [d/DEPARTMENT] [o/OFFICE] [t/TAG]… e.g. edit 1 d/Information Systems o/COM2-01-02
|
| Remark |
remark INDEX r/[REMARK]e.g. remark 1 r/Wears red glasses
|
| Find |
find [n/NAME] [p/PHONE] [e/EMAIL] [d/DEPARTMENT] [o/OFFICE] [r/REMARK] [t/TAG] e.g. find n/Victor Tan d/Math
|
| Add modules |
addmod m/MODULE_CODE n/MODULE_NAMEe.g. addmod m/CS2103 n/Software Engineering
|
| Delete modules |
delmod m/MODULE_CODEe.g. delmod m/CS2103
|
| Find modules |
findmod [m/MODULE_CODE] [n/MODULE_NAME] [i/INSTRUCTOR_NAME] e.g. findmod m/CS2
|
| Assign a contact |
assign INDEX m/MODULE_CODE [m/MODULE_CODE]… e.g. assign 3 m/CS2100 m/CS2106
|
| Unassign a contact |
unassign INDEX m/[MODULE_CODE] [m/MODULE_CODE]… e.g. unassign 3 m/CS2100 m/CS2106
|
| Unassign all contacts | unassignall |
| Action | Format, Examples |
|---|---|
| Clear all data | reset |
| Clear all contacts | cclear |
| Clear all modules | mclear |
| Help | help |
| Exit | exit |