User Guide
Prof-iler is a desktop app for managing student research records, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Designed for fast typing research professors at SoC, Prof-iler helps streamline research management by organizing, tracking, and maintaining student records over time. These tasks can be done faster than traditional GUI apps.
- Quick start
-
Features
- Changing Theme
- Viewing help :
help - Adding a student:
add - Listing all students :
list - Editing a student :
edit - Editing the progress :
progress - Entering log for a student:
log - Locating students by name:
find - Filter for specific projects:
filter - Sorting based on progress:
sort - Deleting students :
delete - Clearing all entries :
clear - Exiting the program :
exit - Saving the data
- Editing the data file
- FAQ
- Known issues
- Command summary
- Glossary
Quick start
-
Ensure you have Java
17or above installed in your Computer.
Mac users: Ensure you have the precise JDK version prescribed here. -
Copy the file to the folder you want to use as the home folder for your Prof-iler application.
-
Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar Prof-iler.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: Lists all students. -
add n/John Doe p/98765432 id/A0253517M e/johnd@example.com pr/Prof-iler pb/72 t/Y3: Adds a student namedJohn Doeto Prof-iler -
delete 3: Deletes the 3rd student shown in the current list. -
clear: Deletes all students. -
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.g.n/NAME [t/TAG]can be used asn/John Doe t/Y4or 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/Y4,t/CS t/Y4etc.
e.g.pr/KEYWORD...can be used aspr/Prof-iler(i.e. 0 times),pr/Project Prof-iler(i.e. 1 time),pr/Project Orbital Apollo(i.e. 2 times). -
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.
Changing Theme
Clicking ‘Theme’ shows a drop-down box with options Dark and Light. A GUI similar to the below should appear on clicking Light.

Viewing help : help
Shows a link to the user guide and a list of all commands available in Prof-iler.

Format: help, can also be accessed via F1 function key
Adding a student: add
Adds a student to Prof-iler.
Format: add n/NAME id/STUDENT_ID p/PHONE e/EMAIL pr/PROJECT [pb/PROGRESS] [t/TAG]…
- All included fields must not be blank.
-
NAMEshould only contain alphanumeric characters and spaces. -
STUDENT_IDis unique, should start withAora, followed by 7 digits, and end with a letter. -
PHONEshould only contain numbers, and it should be 3 - 15 digits long. -
EMAILshould be of the formatlocal-part@domainand adhere to the following constraints:- The local-part should only contain alphanumeric characters and the special characters
+_.-. - The local-part may not start or end with any special characters.
- The local-part may not contain consecutive special characters.
- This is followed by
@and then a domain name. - The domain name is made up of domain labels separated by periods, and must:
- end with a domain label at least 2 characters long,
- have each domain label start and end with alphanumeric characters,
- have each domain label consist of alphanumeric characters, separated only by hyphens (non-consecutive), if any.
- A top-level domain (e.g.
.com) is optional.
- The local-part should only contain alphanumeric characters and the special characters
-
PROJECTcan be any value. -
PROGRESSshould be a whole number between 0 and 100. - Each
TAGshould be alphanumeric, contain no spaces and is case-sensitive (e.g.csandCsare counted as two different tags).
A student can have any number of tags (including 0).
A student can have unmentioned progress (default = 0).
Duplicate students are detected by the same
STUDENT_ID.
Examples:
add n/John Doe id/A0253517M p/98765432 e/johnd@example.com pr/Project Prof-ileradd n/Betsy Crowe t/Y4 id/A0055729D e/betsycrowe@example.com p/1234567 pr/Orbital
Listing all students : list
Shows a list of all students in Prof-iler.
Format: list
Editing a student : edit
Edits an existing student in Prof-iler.
Format: edit INDEX [n/NAME] [id/STUDENT_ID] [p/PHONE] [e/EMAIL] [pr/PROJECT] [pb/PROGRESS] [t/TAG]…
- Edits the student at the specified
INDEX. The index refers to the index number shown in the displayed student 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 student will be removed i.e adding of tags is not cumulative.
- You can remove all the student’s tags by typing
t/without specifying any tags after it.
Examples:
-
edit 1 p/91234567 e/johndoe@example.comEdits the phone number and email address of the 1st student to be91234567andjohndoe@example.comrespectively. -
edit 2 n/Betsy Crower t/Edits the name of the 2nd student to beBetsy Crowerand clears all existing tags.
Editing the progress : progress
Edits the progress of an existing student in Prof-iler.
Format: progress INDEX pb/PROGRESS
- Edits the student at the specified
INDEX. - The index refers to the index number shown in the displayed student list.
- The index must be a positive integer 1, 2, 3, …
- Existing progress will be updated to the input progress.
Example:
-
progress 1 pb/45Edits the progress of the 1st student to be45.
Entering log for a student: log
Adds log for the student whose index is specified.
Format: log INDEX l/LOG
- Adds a log to the student at the specified
INDEX. - Student can only have one log at a time.
- To remove a log, use
log INDEX l/. - The index refers to the index number shown in the displayed student list.
- The index must be a positive integer 1, 2, 3, …
Examples:
-
log 1 l/CS2103T tutorEdits the log of the 1st student to beCS2103T tutor.
Locating students by name: find
Finds students whose names contain any of the given keywords.
Format: find 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 the name is searched.
- Only full words will be matched e.g.
Hanwill not matchHans - Students matching at least one keyword will be returned (i.e.
ORsearch). e.g.Hans Bowill returnHans Gruber,Bo Yang
Examples:
-
find JohnreturnsjohnandJohn Doe -
find alex davidreturnsAlex Yeoh,David Li
Filter for specific projects: filter
Filters for projects that contain all the given keywords or tags that contain any of the given keywords.
Format: filter pr/KEYWORD... or filter t/KEYWORD...
- The search is case-insensitive. e.g.
PROF-ILERwill matchprof-iler - The order of the given keywords does not matter. e.g.
Project Orbitalwill matchOrbital Project - At least one fields must be provided, but not both. e.g.
filter pr/Prof-iler t/Y4will not work. - Whitespaces in between each keywords separates the keywords. e.g.
Project Orbitalsearches for both keywordsProjectandOrbital - Only the full keyword will be matched. e.g.
Prof-ilerwill not matchProf-ilers - Filtering for project requires the project to contain all the given keywords. e.g.
filter pr/Project Orbitalwill not match students with projectOrbitalwhilefilter pr/Orbitalwill match student withProject Orbital - Filtering for tag requires the student to contain any of the given tags. e.g.
Y4andCSwill match any student that contain eitherY4orCSor both tags. - All the filtered students will be shown in the displayed student list to the screen. Examples:
-
filter pr/prof-ilerreturnsCharlotte OliveiroandDavid Liwhich are the two students under the projectProf-iler
-
filter t/Y4 CSreturnsDavid LiandIrfan Ibrahimwhich are the students that contain at least one of the given keywords for the tag.
Sorting based on progress: sort
Sorts the student based on the progress, in either ascending or descending order.
Format: sort asc or sort desc
- The order
ascordescis case-insensitive. -
ascwill sort the students based on ascending order of progress anddescwill sort the students based on descending order of progress. - All the sorted students will be shown in the displayed student list to the screen.
Use
list command to return to the original list after commands such as sort, filter and find. The
sort command works in conjunction with the filter command. For example, the user can first apply a
filter command (e.g. filter pr/Prof-iler) to view the students in the project that contains the word Prof-iler. After filtering, user can execute sort desc to arrange students in those project based on their progress in descending order. This can also be done the other way round by applying the
sort command first followed by filter command.
Example usage of filter pr/Prof-iler followed by sort desc:

Deleting students : delete
Deletes the specified student from Prof-iler.
Format: delete INDEX [,INDEXES] ...
- Deletes the student(s) at the specified
INDEXorINDEXES. - The indexes refer to the index numbers shown in the displayed student list.
- The indexes must be positive integers 1, 2, 3, …
- Indexes can be specified in a list separated by commas
,, allowing for multiple deletions in a single command.
Examples:
-
listfollowed bydelete 2deletes the 2nd student in Prof-iler. -
find Betsyfollowed bydelete 1deletes the 1st student in the results of thefindcommand. - delete 1, 3, 4 deletes the 1st, 3rd, and 4th students from the displayed list in Prof-iler.
Clearing all entries : clear
Clears all entries from Prof-iler, or clears a given project.
Format: clear [PROJECT]
- If no project is given, all the entries are cleared.
- The project field is case-insensitive.
- All the students under the project will be cleared.
A pop-up message to confirm your action will appear. It defaults to No to prevent accidental deletion.

Simply use keyboard tab or arrow keys to toggle between the options. Press enter on your keyboard to confirm the selection. Alternatively, you can also click on the buttons using your cursor.
Examples:
-
clearclears all entries. -
clear prof-ilerclearsCharlotte OliveiroandDavid Liwhich are the two students under the projectProf-iler.
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
Prof-iler 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
Prof-iler data are saved automatically as a JSON file [JAR file location]/data/prof-iler.json. Advanced users are welcome to update data directly by editing that data file.
Furthermore, certain edits can cause the Prof-iler application 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 empty data file it creates with the file that contains the data of your previous Prof-iler home folder.
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. -
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.
Command summary
| Action | Format, Examples |
|---|---|
| Add |
add n/NAME id/STUDENT_ID p/PHONE_NUMBER e/EMAIL pr/PROJECT [pb/PROGRESS] [t/TAG]… e.g. add n/James Ho id/A0223615H p/82793554 e/jamesho@example.com pr/Project_Orbit t/Y3 pb/29 t/BZA
|
| Clear |
clear [PROJECT]e.g. clear e.g. clear prof-iler
|
| Delete |
delete INDEX [,INDEXES] ...e.g. delete 1, 3
|
| Edit |
edit INDEX [n/NAME] [id/STUDENT_ID] [p/PHONE] [e/EMAIL] [pr/PROJECT] [pb/PROGRESS] [t/TAG]…e.g. edit 2 n/James Lee id/A0112946T e/jameslee@example.com
|
| Filter |
filter pr/KEYWORD... or filter t/KEYWORD...e.g. filter pr/prof-iler e.g. filter t/CS2103T CS2109S
|
| Sort |
sort asc or sort desc
|
| Find |
find KEYWORD [MORE_KEYWORDS]e.g. find James Jake
|
| Progress |
progress INDEX pb/PROGRESSe.g. progress 1 pb/45
|
| List | list |
| Log |
log INDEX l/LOG e.g. log 1 l/CS2103T tutor for Class 2A
|
| Help | help |
Glossary
This glossary defines key terms and abbreviations used in the Prof-iler User Guide.