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
11
or above installed in your Computer. -
Download the latest
FaculType.jar
from 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
help
and 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_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
. -
Items in square brackets are optional.
e.gn/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times.
e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is 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-A3
add 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:
-
clist
followed bydelete 2
deletes the 2nd contact in FaculType. -
find n/Janson
followed bydelete 1
deletes the 1st contact in the results of thefind
command.
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-02
edits the department and office of the 1st contact to beComputing
andCOM2-01-02
respectively. -
edit 2 n/Brenda Chan t/
edits the name of the 2nd contact to beBrenda Chan
and 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 glasses
adds 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.
chris
will matchChris
. - The order of the keywords does not matter. e.g.
Chris Evans
will matchEvans Chris
. - Partial words will be matched e.g.
Chri Evan
will matchChris Evans
. - Results must contain every keyword e.g.
Chris Evans
will not matchChris Pratt
. - At least one of the optional fields must be provided.
Examples:
-
find n/John
returns all contacts with names containingJohn
. -
find n/alex yeoh
returns all contacts with names containingalex
andyeoh
. -
find n/victor tan d/computing
returns all contacts with names containingvictor
andtan
and 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_CODE
specified to the active semester. TheMODULE_CODE
must not exist in the active semester in the first place.
Examples:
-
addmod m/CS50 n/Introduction to Computer Science
adds a module namedIntroduction to Computer Science
with codeCS50
to the active semester. -
addmod m/CS2102 n/Database Systems
adds a module namedDatabase Systems
with codeCS2102
to the active semester.
Deleting a module: delmod
Deletes a module from the active semester.
Format: delmod m/MODULE_CODE
- Deletes the
MODULE_CODE
specified from the active semester. TheMODULE_CODE
must exist in the active semester in the first place. The command takes in only oneMODULE_CODE
parameter and does not allow for the deletion of multiple modules.
Examples:
-
delmod m/CS50
deletes the existing module with codeCS50
from the active semester. -
delmod m/CS2102
deletes the existing module with codeCS2102
from 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_CODE
parameter does not allow for multiple keywords. e.g.cs1 cs2
would not be allowed. - Partial words will be matched for all parameters. e.g.
data
will matchDatabase Systems
. - The search is case-insensitive for all parameters. e.g.
cs50
will matchCS50
. - The order of the keywords do not matter. e.g.
Statistics and Probability
will matchProbability and Statistics
. - At least one of the optional fields must be provided.
Examples :
-
findmod m/cs210
returns all modules with codes containingCS210
. -
findmod n/programming
returns all modules with names containingprogramming
. -
findmod n/software methodology
returns all the modules with names containingsoftware
andmethodology
. -
findmod m/CS2 n/security i/Alex
returns all modules with codes containingCS2
, names containingprogramming
, and instructors with names containingAlex
. -
findmod m/CS2 n/Software Programming i/Damith
returns all modules with codes containingCS2
and names containingSoftware
andProgramming
and 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
INDEX
to everyMODULE_CODE
specified. AllMODULE_CODE
must be unique and must exist in the active semester in the first place.
Examples :
-
assign 1 m/CS3233
Assigns the contact at index 1 to the existing module with codeCS3233
. -
assign 2 m/CS2030S
Assigns the contact at index 2 to the existing module with codeCS2030S
. -
assign 3 m/CS2100 m/CS2106
Assigns the contact at index 3 to the existing modules with codesCS2100
andCS2106
.
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
INDEX
from everyMODULE_CODE
specified. AllMODULE_CODE
must be unique and the contact must be assigned to allMODULE_CODE
in 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/CS3233
Unassigns the contact at index 1 from the existing module with codeCS3233
. -
unassign 3 m/CS2100 m/CS2106
Unassigns the contact at from 3 to the existing modules with codesCS2100
andCS2106
. -
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.json
file 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 INDEX e.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_NAME e.g. addmod m/CS2103 n/Software Engineering
|
Delete modules |
delmod m/MODULE_CODE e.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 |