User Guide
Introduction
DukePro(f) is a schedule-planning desktop application that assists university professors in managing their consultations, through the usage of an intuitive Command-Line Interface (CLI)1 and an easy-to-navigate Graphical User Interface (GUI)2.
It is named DukePro(f)
(Duke-Professor) because our project’s target audience is professors, and it is also a nod
to our CS2103T iP (individual Project), which was named Duke
.
Amidst long hours of lectures and tutorials in the week, professors may still need to cater timeslots for student consultations, which can be hard to come by and difficult to keep track of. This is where Dukepro(f) comes in to help you out!
With DukePro(f), you will be able to:
- Add, edit, and delete your consultations
- List all of your consultations, or just your next consultation
- List your free time slots for consultation booking
- Block certain time slots to ensure your consultations don’t clash with other commitments
- And many other small quality of life features!
Table of Contents
- Introduction
- Table of Contents
- 1. Purpose
- 2. Meaning of Icons and Textboxes
- 3. Quick Start: Get Started Using DukePro(f)
- 4. Command Summary: A Summary of Commands for DukePro(f)
-
5. Commands and Their Features
- Managing Your Consultations
- 5.1 Adding a Consultation Event :
add
- 5.2 Deleting a Consultation Event :
delete
- 5.3 Editing a Consultation Event :
edit
- 5.4 Listing all Consultation Events :
list
- 5.5 Displaying the next Consultation Event :
next_event
- 5.6 Listing all Upcoming Events :
upcoming_events
- 5.7 Clearing all Consultation Events :
clear
- 5.8 Finding a Consultation Event :
find
- 5.9 Filtering Consultation Events By Tags :
filter_tag
- 5.10 Listing all Free Time Slots :
list_free
- Managing Your Blocked Time Slots
- 5.11 Adding a Blocked Time Slot :
block
- 5.12 Deleting a Blocked Time Slot :
delete_blocked
- 5.13 Listing all Blocked Time Slots :
list_blocked
- Help Commands
- 5.14 Viewing help :
help
- 5.15 Viewing the Command Summary Page:
command_summary
- 5.16: Editing the data file
- 5.17: Exiting the app :
exit
- 6. FAQ
1. Purpose
This document is the User Guide for DukePro(f). It is intended to provide all the necessary information to use this software. The manual assumes that the user has the ability to type fast and prefers typing over other means of input. This User Guide contains the following sections:
- 1. Purpose of the User Guide
- 2. Meaning of Icons and Textboxes
- 3. Quick Start: Get Started Using DukePro(f)
- 4. Command Summary: A Summary of Commands for DukePro(f)
- 5. Commands and their Features
- 6. FAQ
2. Meaning of Icons and Textboxes

Tells you things to take note of
while using DukePro(f).

3. Quick Start: Get Started Using DukePro(f)
3.1 Downloading and Opening the App
-
Ensure you have Java
11
or above installed in your Computer.Tip: Not sure how? Click here!
-
Download the latest
dukeprof.jar
from here. -
Copy the file to the folder you want to use as the home folder (the folder where you want to store the application and its data) for your DukePro(f).
-
Double-click the file to start the app. A GUI similar to the image below should appear in a few seconds. Note that the app will contain some sample data.
Tip: Facing issues? Refer to 6. FAQ for help.
-
Refer to our tutorial on how to use DukePro(f) to start typing commands.
-
Refer to the Commands and their Features section for details on each command.
3.2 How To Use DukePro(f): A Quick Tutorial
These are the different parts of DukePro(f)’s GUI:
Here’s how to add a consultation event to DukePro(f):
Step 1: Type the desired command into the Command Box and press ENTER
.
Step 2: Check the Result Display to see if your command is successful.
Step 3: Check the Consultation List to see if your consultation event has been added.
Here are some other commands you can try:
-
list
Lists all of your consultation events in the Consultation List box. -
add
add n/Galvin Chan d/2021-11-01 t/1000-1100 l/NUS tag/Tutorial4
Adds a consultation event forGalvin Chan
, at date2021-11-01
, time1000-1100
, at locationNUS
, and tagged withTutorial4
to DukePro(f). -
delete
delete 3
Deletes the 3rd consultation event on your consultation list.
4. Command Summary: A Summary of Commands for DukePro(f)
Listed below are the commands that DukePro(f) supports, in alphabetical order:
Action | Format | Example(s) |
---|---|---|
Add | add n/NAME d/DATE t/TIMESLOT l/LOCATION [tag/TAG]... [r/REMARK] |
add n/Lulu Yousef d/2021-11-11 t/0800-0900 l/NUS tag/Important tag/supplementary r/May switch to Zoom |
Add Blocked Time Slots | block d/DATE t/TIMESLOT |
block d/2021-11-12 t/0800-0900 |
Clear | clear |
- |
Delete | delete INDEX |
delete 3 |
Delete Blocked Time Slots | delete_blocked INDEX |
delete_blocked 1 |
Display Next Event | next_event |
- |
Edit | edit INDEX [n/NAME] [d/DATE] [t/TIMESLOT] [l/LOCATION] [tag/TAG]... [r/REMARK] |
edit 2 n/Quan Teng Foong edit 6 tag/ZoomMeeting
|
Exit | exit |
- |
Filter By Tags | filter_tag TAG_NAME [MORE_TAG_NAMES]... |
filter_tag URGENT |
Find | find KEYWORD [MORE_KEYWORDS]... |
find Teng Foong |
Help | help |
- |
List | list |
- |
List Blocked Time Slots | list_blocked |
- |
List Free Time Slots | list_free |
- |
List Upcoming Events | upcoming_events |
- |
View Command Summary | command_summary |
- |
5. Commands and Their Features
Notes about the command format:
- Words in
UPPER_CASE
are parameters to be supplied by the user.
- E.g. In
add n/NAME
,NAME
is a parameter which can be used asadd n/Lulu Yousef
.
- E.g. In
- Items in square brackets are optional. (Items not in square brackets are necessary!)
- E.g.
[tag/TAG]
is an optional parameter.
- E.g.
- Parameters that can have more than one entry will be anteceded by a
...
- E.g.
[tag/TAG]...
can have more than one entry, sotag/supplmentary tag/important
is accepted.
- E.g.
- Parameters can be in any order.
- E.g. If the command specifies
n/NAME d/DATE
,d/DATE n/NAME
is also acceptable.
- E.g. If the command specifies
- If a parameter is expected only once in the command, but you have specified it multiple times, only the
last occurrence of the parameter will be taken.
- E.g. If you specify
d/2021-11-11 d/2021-11-21
, onlyd/2021-11-21
will be taken.
- E.g. If you specify
- Extraneous parameters for commands that do not take in parameters (such as
list
andexit
) will be ignored.
- E.g. If the command specifies
list 123
, it will be interpreted aslist
.
- E.g. If the command specifies
- Entries for
n/NAME
andtag/TAG
must be alphanumeric.
- E.g.
n/Poh Hui-En Ruth
will not be accepted as it has a hyphen in it.
- E.g.
-
Entries for
d/DATE
must be in the format YYYY-MM-DD. - Entries for
t/TIMESLOT
must be in the 24h format of HHmm-HHmm and must be a time slot between 0000 and 2359 (inclusive).
- E.g.
t/2300-0000
will not be accepted as the time passes over to a new day.
- E.g.
- Tags cannot span more than one word.
- E.g.
tag/URGENT
will be accepted but nottag/URGENT MATTER
.
- E.g.
- Tags with the text “URGENT” and “supplementary” have special tag colours to enable the user to indicate
the consultation’s severity (these tag names are case-sensitive!).
-
tag/URGENT
will be shown as -
tag/supplementary
will be shown as
-
Managing Your Consultations
Listed below are the commands for managing your consultations. Consultation events listed in the Consultation List are sorted in chronological order with the earliest consultation at the top and the latest consultation at the bottom. All consultation events, existing or to-be-added, cannot overlap.
Listed is a description of the various fields of a Consultation Event:
- NAME: Name of student involved in the consultation
- DATE: Date the consultation occurs
- TIMESLOT: Start and end time consultation occurs
- LOCATION: Location of consultation
- TAG: Any group that the consultation belongs to (commonly used in conjunction with the
filter_tag
command) - REMARK: Any additional details of the consultation
5.1 Adding a Consultation Event : add
Adds a consultation event to Dukepro(f).
Format: add n/NAME d/DATE t/TIMESLOT l/LOCATION [tag/TAG]... [r/REMARK]

Example(s):
-
add n/Lulu Yousef d/2021-01-12 t/0800-0900 l/NUS tag/CS2103T tag/supplementary
Adds a consultation event forLulu Yousef
, at date12 Jan 2021
and time8am to 9am
, at locationNUS
, tagged withCS2103T
andsupplementary
. -
add n/Ruth Poh d/2021-03-02 t/1300-1400 l/The Deck r/May have to switch to zoom
Adds a consultation event forRuth Poh
, at date2 Mar 2021
and time1pm to 2pm
, at locationThe Deck
, with the remarkMay have to switch to zoom
.
5.2 Deleting a Consultation Event : delete
Deletes a consultation event from DukePro(f) at the specified INDEX
.
Format: delete INDEX

find
command, delete 1
will delete the first consultation event in the filtered list, and not
the complete list of consultation events.
Example(s):
-
delete 2
Deletes the second consultation event indexed in the Consultation List.
5.3 Editing a Consultation Event : edit
Edits the details of a consultation event in DukePro(f) at the specified INDEX
.
Format: edit INDEX [n/NAME] [d/DATE] [t/TIMESLOT] [l/LOCATION] [tag/TAG]... [r/REMARK]

* Editing the tags will automatically erase all previous tags!
* This command edits according to the index of the Consultation List on the right hand side of the application, i.e., if the list has been filtered with the
find
command, edit 1 n/Ruth
will edit the first
consultation event in the filtered list, and not the complete list of consultation events.
Example(s):
-
edit 2 n/Ruth t/0730-0830
Edits the name of the second consultation event indexed in the Consultation List toRuth
and the TimeSlot to0730-0830
. -
edit 3 r/May have to switch to Zoom.
Edits the remark of the third consultation event indexed in the Consultation list toMay have to switch to Zoom.
5.4 Listing all Consultation Events : list
Lists all consultation events in the Consultation List.
Format: list
5.5 Displaying the next Consultation Event : next_event
Displays the next consultation event scheduled for the day in the Consultation List.
Note: If you are currently in the middle of an existing consultation event, DukePro(f) will list the next
event after the current consultation event.
Format: next_event
5.6 Listing all Upcoming Events : upcoming_events
Displays all upcoming consultation events for the current day in the Consultation List.
Note: This will not include the current ongoing consultation event.
Format: upcoming_events
5.7 Clearing all Consultation Events : clear
Clears all consultation events from DukePro(f).

Format: clear
5.8 Finding a Consultation Event : find
Finds all consultation events whose names contain any of the specified keywords and displays them as an indexed list in the Consultation List.
- Keywords are case-insensitive.
Format: find KEYWORD [MORE_KEYWORDS]...

*
find Jacob
can return a consultation event with the name Jacob
but find Jac
cannot return an
event with the name
Jacob
*
find Jacob
can return a consultation event with the name Jacob Ng
*
find jacob
and find jAcOb
can return a consultation event with the name Jacob
*
find Jacob R
can return a consultation event with the name Jacob Ng
, R Ng
and Jacob Ong
but
not Jacob Rong
Example(s):
-
find Jacob
Finds all consultation events that have students with the name
Jacob
(or any case-insensitive variant) and displays them in the Consultation List.
5.9 Filtering Consultation Events By Tags : filter_tag
Finds all consultation events whose tags contain any of the specified tag names (case-insensitive) and displays them as an indexed list in the Consultation List.
Format: filter_tag TAG_NAME [MORE_TAG_NAMES]...

*
filter_tag URGENT
can return a consultation event tagged URGENT
but filter_tag URG
cannot return a consultation event tagged URGENT
*
filter_tag URGENT
can return a consultation event tagged urgent
Example(s):
-
filter_tag URGENT
Finds all consultation events that contain the tagURGENT
and displays them in the Consultation List.
5.10 Listing all Free Time Slots : list_free
Lists down all free time slots from now until 2359 of the day with the last event or blocked slot in the Result Display.
Format: list_free
Here’s an example of what your screen should look like after entering the list_free
command:
Note: An empty schedule i.e. with 0 events and 0 blocked slots in the schedule, will not have any free
slots displayed.
Managing Your Blocked Time Slots
Listed below are the commands for managing your blocked time slots. Blocked time slots ensure that you will not be able to add consultation events during that period.
Listed is a description of the various fields of a Blocked Time Slot:
- DATE: Date the blocked time slot occurs
- TIMESLOT: Start and end time of the blocked time slot
5.11 Adding a Blocked Time Slot : block
Adds a blocked time slot to Dukepro(f).
Format: block d/DATE t/TIMESLOT
Example(s):
-
block d/2021-01-01 t/0800-0900
Blocks the time slot
8am to 9am
onJanuary 1, 2021
. -
block d/2021-02-02 t/1000-1100
Blocks the time slot
10am to 11am
onFebruary 2, 2021
.
5.12 Deleting a Blocked Time Slot : delete_blocked
Deletes a blocked time slot from the list of blocked time slots at the specified INDEX
.
Format: delete_blocked INDEX
Example(s):
-
delete_blocked 1
Deletes the first blocked time slot from the list of blocked time slots.
5.13 Listing all Blocked Time Slots : list_blocked
Lists all blocked time slots in the Result Display.
Format: list_blocked
Here’s an example of what your screen should look like after entering the list_blocked
command:
Help Commands
Listed below are the commands you can use to guide you in case you’re stuck.
5.14 Viewing help : help
Opens a pop-up window with a link to DukePro(f)’s user guide.
Format: help
5.15 Viewing the Command Summary Page: command_summary
Opens a pop-up window with a Command Summary of all of DukePro(f)’s possible commands.
Format: command_summary
5.16: Editing the data file
DukePro(f) data is all saved as a JSON file in [JAR file location]/data/schedule.json
. Advanced users are
welcome to update data directly by editing that data file.

5.17: Exiting the app : exit
Exits DukePro(f).
Format: exit
6. FAQ
Q: Where are the releases?
A: You can download the latest dukeprof.jar
from
here!
Q: How do I transfer my DukePro(f) data into another Computer?
A: Install the DukePro(f) into the other computer (if you’re forgotten how,
click here). Then, in your previous computer, go to
the home folder of DukePro(f), go into thedata
folder, and copy the schedule.json
file and transfer it
into the respective (empty) data
folder in your current computer.
Q: How do I save my edits?
A: All data is automatically saved into the hard disk after any command that changes the data. There is no
need to save manually.
Q: The dukeprof.jar isn’t opening when I double-click it. Please help?
A:
If you’re using Windows, click here for a tutorial video.
If you’re using Mac, click here for a tutorial video.
If you’re using Linux, click here for a tutorial video.