TermiNUS User Guide
Table of Contents
- Introduction
- Getting Started
- Command Syntax
- Section: Managing all your modules
- Returning to previous workspace :
back
- Section: Specific Module
- Displaying all schedules across all modules :
timetable {day}
- Exiting TermiNUS :
exit
- Accessing Help :
help
- Advanced Usage of Commands
- FAQ
- Workspace Command Summary
- Command Summary
Introduction
TermiNUS is a CLI (command line interface) program for NUS students who wish to consolidate their NUS academic needs such as schedules, questions and notes for the modules that they are taking. With TermiNUS, it aims to aid students and improve their learning experiences while studying in NUS.
Purpose of this Guide
This documents aims to provide you with instruction on how to use TermiNUS
and tips & tricks
included to improve your experiences while using it. The document is for both beginners and advanced
users. The document will bring you through the installation process and guide you on all
the commands available within TerminNUS
.
Using this Guide
Along the way, you might encounter these messages with icons throughout this guide:
⚠️A caution that you have to keep in mind when using the command.
💡 Take note when you see this icon, as it might tell you something important.
❗ Important things you should take note of before using the command.
Text that is blue like this example, are clickable links that will bring you to the relevant part of this user guide.
Terminologies used throughout this guide:
Terminology | Description |
---|---|
workspace | A workspace is the environment in which you are currently assessing. For example, when you want to access some files inside a folder, you will need to enter the folder first. As such the folder is a workspace. |
workspace indicator | A workspace indicator shows the current workspace you are currently in when using TermiNUS . For example, in the expected output for commands, you will be able to see [] >>> which means you are in the default workspace, [module] >>> which means you are in the module management workspace. etc. |
default workspace | The very first workspace when executing the TermiNUS program. For example, [] >>> indicates you are currently in the default workspace. |
module | A module refers to a NUS module. For example, CS2113T is a module. |
Getting Started
This section will detail the TermiNUS
installation guide, as well a quick guide on how to use
TermiNUS
.
Installing TermiNUS
- Ensure that you have Java 11 or above installed.
- Download the latest version of
TermiNUS.jar
here. - Copy the file to the folder you want to use for
TermiNUS
.- This is because
TermiNUS
will store all its saved data in the folder it is currently in.
- This is because
- Open your command prompt and go into the folder containing the
TermiNUS.jar
file.- You can do so by
win + R
and runcmd
. - Next, a console will appear, type in the following
cd C:/folder
wherefolder
is the folder containing theTermiNUS.jar
file.
- You can do so by
- Next to run
TermiNUS
, in the command prompt type injava -jar TermiNUS.jar
. -
When you first start the
TermiNUS
, you will be greeted with our banner:Welcome to TermiNUS! You have no schedule for today. Type any of the following to get started: > exit > help > module > go > timetable [] >>>
- For more information of each command, please refer to the Features below.
Quick Guide of TermiNUS
- Before adding any note, schedule and question, we will need to have a module first in which these items belong to.
- You can do so by adding a module within the module management workspace.
Please refer to: Section: Managing all your Modules. - After adding a module, you can proceed to add items such as note, schedule and question into it.
- But firstly you will need to enter the module workspace in which you have just created.
Please refer to: Section: Specific Module. - Once entering the module workspace, you can add the items related to the module here.
- Please refer to Section: Note for any related Note item.
- Please refer to Section: Schedule for any related Schedule item.
- Please refer to Section: Question for any related Question item.
- Once you are done, you can exit TermiNUS using the
exit
command.
Hope you enjoy your experience with TermiNUS!
Command Syntax
💡 Commands are case-insensitive, but the
value
you provide can be case-sensitive.
Commands may also ignore unnecessary data appended behind commands.Example:
HELP
is a valid command, and the spaces afterHELP
will be ignored.
As you use this guide, you will notice commands with specific brackets around some values such as {}
and <>
.
The below table represents what each means.
Command options | Description |
---|---|
{value} |
The value is optional, and including it may provide different results. |
<value> |
The value is required for the command to work properly. |
"<value>" |
Some command have "" quotes in it, this is required for the command to work properly. For example, add "<value>" would need to be add "something" . |
index |
A number identifying an item in TermiNUS. This index can only be viewed using the view command. |
start_time |
The start time must be in a HH:mm format which follows the 24-hour notation. For example, 14:20 is valid which represents 2:20 pm . |
day |
The day must be a day spelled out fully and is case-insensitive. For example, Monday , Tuesday , Wednesday , Thursday , Friday , Saturday and Sunday are the only 7 valid days. |
duration |
The duration must be a positive integer and upon addition with start_time , it must not exceed the 24-hour limit of the day. For example, if start_time is 21:00 , 2 is a valid duration but -1 and 4 are not. |
valid_file_name |
Any value that has the tag valid file name cannot be empty, cannot have more than 30 characters and can only contains ASCII characters between the dec value of 32 and 126 inclusive with the exception of / , \n , \r , \t , \0 , \f , ' , ? , * , \ , < , > , " , : , . , | |
Section: Managing all your modules
All commands related to the workspace Module Management
will be displayed in this section. These
commands enable users to create, delete and view modules
within TermiNUS.
Accessing the module management workspace
Format: module
Enters the Module Management workspace.
Example: module
Expected Output:
[] >>> module
You have 0 modules
Type any of the following to get started:
> add
> exit
> help
> view
> back
> update
> delete
[module] >>>
List of Module Management workspace commands:
Command | Description |
---|---|
add | add a module in TermiNUS |
view | view modules information currently in TermiNUS |
delete | delete a module in TermiNUS |
update | update a module code currently in TermiNUS |
help | view all commands and their usage within the module management workspace |
back | escape and return to the default workspace |
exit | exit and closes TermiNUS |
Adding a module
Format: add "<module_code>"
Adds a module when in the module management workspace.
⚠️The
<module_code>
will be converted to UPPERCASE and cannot be more than 30 characters and cannot have anyspaces
in it. It follows the condition of avalid_file_name
.
💡 When executing this command, it will add the module into TermiNUS and creates a folder with the module code in uppercase (e.g. creating
cs2113t
will create a folder indata
calledCS2113T
).
❗ If there exists a folder with the same code of the newly added module, all contents in that folder will be wiped. Please see the FAQ for more information.
Example: add "cs2113t"
Expected Output:
[module] >>> add "cs2113t"
Module CS2113T has been added
[module] >>>
Viewing module information
Format: view
Views all modules when in the module management workspace.
Example: view
Expected Output:
[module] >>> view
1. CS2113T
2. CS2106
[module] >>>
Deleting a module
Format: delete <index>
Deletes the specified module given by its index in the view
command when in the module
management workspace.
❗ When the specified module is being deleted, all contents in its folder will be wiped.
Please see the FAQ for more information.
Example: delete 1
Expected Output:
[module] >>> delete 1
Deleted module CS2113T.
[module] >>>
Updating a module
Format: update <index> "<new_module_code>"
Updates a module code in the module management workspace.
⚠️The
<new_module_code>
will have the same restrictions as the add command.
Example: update 1 "CS2113"
Expected Output:
[module] >>> update 1 "CS2113"
Updated CS2113T to CS2113 successfully.
[module] >>>
Returning to previous workspace
Format: back
Returns to the previous workspace prior to the current workspace you are in.
💡 The default workspace is the only workspace that has no
back
command. This is because this workspace is the very first workspace of TermiNUS.
Example: back
from module workspace
Expected Output:
[CS2113T] >>> back
Welcome to TermiNUS!
You have no schedule for today.
Type any of the following to get started:
> exit
> help
> module
> go
> timetable
[] >>>
💡 Notice how the workspace indicator changes from
[CS2113T] >>>
to[] >>>
.
Section: Specific Module
All commands related to accessing the existing modules in TermiNUS. These commands enable users to enter the module workspace in Terminus.
💡 The module mentioned here are the modules created within the module management workspace. Please refer to Section: Module Management for more information.
Accessing a specific module workspace
Format: go <module_code>
Enters the module workspace to access data within the module.
⚠️The
module_code
is case-insensitive and will be converted to UPPERCASE as shown below.
Example: go cs2113t
Expected Output:
[] >>> go cs2113t
Entering CS2113T workspace
Type any of the following to get started:
> exit
> help
> note
> schedule
> question
> back
[CS2113T] >>>
List of Module workspace commands:
Command | Description |
---|---|
note | enter the note workspace |
schedule | enter the schedule workspace |
question | enter the question workspace |
help | view all commands and their usage within its module workspace |
back | escape and return to the default workspace |
exit | exit and closes TermiNUS |
Section: Note
All commands related to the workspace Note
will be displayed in this section. These commands
enable users to create, delete and view notes
within the module.
Accessing note workspace
Format: note
Enters the Note workspace.
Example: note
Expected Output:
[CS2113T] >>> note
You have 0 note(s) inside this workspace.
Type any of the following to get started:
> add
> exit
> help
> view
> reload
> back
> delete
> export
[CS2113T > note] >>>
List of Note workspace commands:
Command | Description |
---|---|
add | add a note for the module |
view | view notes information from the module |
delete | delete a note from the module |
reload | reload all the notes from the data/<module_code> folder |
export | export all current notes for the module as a pdf |
help | view all commands and their usage in the note workspace |
back | escape and return to the module workspace |
exit | exit and closes TermiNUS |
Adding a Note
Format: add "<note_name>" "<note_content>"
Adds a note when in the note workspace.
⚠️The
<note_name>
cannot be more than 30 characters and cannot be a name that already exists in this module. It follows the condition of avalid_file_name
.
💡 When executing this command, it will add the note into its module and creates a
.txt
file inside the module folder. The.txt
file will be named after the newly added note name.
❗ If there is a file with the same name as the newly added note and is not registered in TermiNUS, all contents in that file will be overwritten.
To add that note, please refer to Reloading all notes.
Example: add "coding style" "switch case identation should be aligned."
Expected Output:
[CS2113T > note] >>> add "coding style" "switch case identation should be aligned."
Your note on 'coding style' has been added!
[CS2113T > note] >>>
Viewing note information
Format: view {index}
Views a list of notes in the module or views all information for that specific note when in the note workspace.
Example 1: view
Expected Output 1:
[CS2113T > note] >>> view
List of Content
---------------
1. coding style
2. coding comments
Rerun the same command with an index behind to view the content.
[CS2113T > note] >>>
Example 2: view 1
Expected Output 2:
[CS2113T > note] >>> view 1
Name: coding style
Content:
switch case identation should be aligned.
[CS2113T > note] >>>
Deleting a Note
Format: delete <index>
Deletes the specified note given by its index when in the note workspace.
❗ When the specified note is being deleted, the file that stores the note will be deleted.
Example: delete 1
Expected Output:
[CS2113T > note] >>> delete 1
Your note on 'coding style' has been deleted!
[CS2113T > note] >>>
Reloading all notes
Format: reload
Reloads all the notes found within your data/<module_code>
.
💡 This command is useful when you have updated your notes file in another application, and would wish to update the contents into TermiNUS.
⚠️ Any note file that do not follow the same restriction as mentioned in Adding a Note will be ignored.
⚠️ If there are any 2 or more note files with the same exact name regardless of case sensitivity, only 1 of them will be loaded.
⚠️ If storage is disabled, this command will not work as intended. For more information, please refer to FAQ.
⚠️ Any note file within its
data/<module_code>
folder that has an issue while reloading will be ignored.
Example: reload
Expected Output:
[CS2113T > note] >>> reload
Your Notes for CS2113T is being reloaded.
[CS2113T > note] >>>
Exporting all notes
Format: export
For your convenience to print and bring physical notes to exams, you can export all notes within the note workspace as a PDF file.
⚠️ To export a file, there must be at least 1 note contained within the note workspace.
⚠️ The export process can take a while.
A very large text can cause the program to take a long time to export.
⚠️ If storage is disabled, this command will not work as intended. For more information, please refer to FAQ.
Example: export
Expected Output:
[CS2113T > note] >>> export
Exporting notes... Check the data folder.
[CS2113T > note] >>>
Section: Schedule
All commands related to the workspace Schedule
will be displayed in this section. These commands
enable users to create, delete and view schedule
within the module.
Accessing schedule workspace
Format: schedule
Enters the Schedule workspace.
Example: schedule
Expected Output:
[CS2113T] >>> schedule
You have 0 link(s) in this workspace.
Type any of the following to get started:
> add
> exit
> help
> view
> back
> delete
[CS2113T > schedule] >>>
List of Schedule workspace commands:
Command | Description |
---|---|
add | add a schedule for the module |
view | view schedule information from the module |
delete | delete a schedule from the module |
help | view all commands and their usage in the schedule workspace |
back | escape and return to the module workspace |
exit | exit and closes TermiNUS |
Adding a Schedule
Format: add "<link_description>" "<day>" "<start_time>" "<duration>" "<zoom_link>"
Adds a schedule when in the schedule workspace.
⚠️The
<day>
must be a valid day spelled fully. For example,monday
is a valid day butmon
is not.
💡 The accepted input for the
<day>
argument includes “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, and “Sunday”.
⚠️The
<start_time>
must be in a HH:mm format which follows the 24-hour notation. For example,14:20
is valid which represents2:20 pm
.
⚠️The
duration
must be a positive integer and upon addition withstart_time
, it must not exceed the 24-hour limit of the day. For example, ifstart_time
is21:00
,2
is a validduration
but-1
and4
are not.
⚠️The
<zoom_link>
must begin with a “http://” or “https://” in order for the link to be valid.
Example: add "CS2113T Tutorial 1" "Thursday" "10:00" "2" "https://zoom.us/test"
Expected Output:
[CS2113T > schedule] >>> add "CS2113T Tutorial 1" "Thursday" "10:00" "2" "https://zoom.us/test"
Your schedule on 'CS2113T Tutorial 1' has been added!
[CS2113T > schedule] >>>
Viewing schedule information
Format: view {index}
Views a list of schedules in the module when in the schedule workspace.
Example 1: view
Expected Output 1:
[CS2113T > schedule] >>> view
List of Content
---------------
1. CS2113T Tutorial 1 (Thursday, 10:00 - 12:00): https://zoom.us/test
2. CS2113T Lab 1 (Friday, 12:30 - 14:30): https://zoom.us/test
Rerun the same command with an index behind to view the content.
[CS2113T > schedule] >>>
Example 2: view 1
Expected Output 2:
[CS2113T > schedule] >>> view 1
CS2113T Tutorial 1 (Thursday, 10:00 - 12:00): https://zoom.us/test
[CS2113T > schedule] >>>
Deleting a Schedule
Format: delete <index>
Deletes the specified schedule given by its index when in the schedule workspace.
Example: delete 1
Expected Output:
[CS2113T > schedule] >>> delete 1
Your link on 'CS2113T Tutorial 1' has been deleted!
[CS2113T > schedule] >>>
Section: Question
All commands related to the workspace Question will be displayed in this section. These commands enable users to create, delete and view questions within the module.
In addition, users can test themselves with the question added into the module.
List of Question workspace commands:
Command | Description |
---|---|
add | add a question for the module |
view | view question(s) from the module |
delete | delete a question from the module |
test | test yourself with questions from the module |
help | view all commands and their usage in the question workspace |
back | escape and return to the module workspace |
exit | exit and closes TermiNUS |
Accessing question workspace
Format: question
Enters the Question workspace.
Example: question
Expected Output:
[CS2113T] >>> question
You have 0 question(s) in this workspace.
Type any of the following to get started:
> add
> exit
> help
> view
> test
> back
> delete
[CS2113T > question] >>>
Adding a Question
Format: add "<question>" "<answer>"
Adds a question when in the question workspace.
Example: add "What is 1+1?" "2"
Expected Output:
[CS2113T > question] >>> add "What is 1+1?" "2"
Your question on 'What is 1+1?' has been added!
[CS2113T > question] >>>
Viewing question information
Format: view {index}
Views a list of questions in the module or views all information for that specific question when in the question workspace.
Example 1: view
Expected Output 1:
[CS2113T > question] >>> view
List of Content
---------------
1. What is EP?
2. What is UML?
3. What is SUT?
Rerun the same command with an index behind to view the content.
[CS2113T > question] >>>
Example 2: view 1
Expected Output 2:
[CS2113T > question] >>> view 1
Name: What is EP?
Content:
Equivalence partitioning
[CS2113T > question] >>>
Deleting a Question
Format: delete <index>
Deletes the specified question given by its index when in the question workspace.
Example: delete 1
Expected Output:
[CS2113T > question] >>> delete 1
Your question on 'What is 1+1?' has been deleted!
[CS2113T > question] >>>
Testing Yourself with Active Recall
Format: test {question_count}
Starts an Active Recall session.
You may specify the number of questions to be tested by adding a {question_count}
at the end of the
command.
⚠️To start a session, there must be at least 1 question contained within the question workspace.
💡 By default,
{question_count}
will be set to 10 questions if left unspecified.If there are not enough questions, it will take the whole pool of questions in the module (i.e. if you have 7 questions in your current module, you will only receive 7 questions when you indicate a
{question_count}
greater than 7 or leave it empty).
When you begin, you will be prompted with the following:
[CS2113T > question] >>> test 3
---[Active Recall]---
We will be starting your active recall training session.
This session will consist of 3 questions.
When you are ready, press [Enter] to continue.
Press the Enter key to start. The first question will be displayed, and once you are ready to reveal the answer, press the Enter key again.
---
Question:
What is EP?
When you are ready, press [Enter] to continue.
After revealing the answer, provide feedback to TermiNUS to allow it to know if the question should appear more often in the future.
- Key in
1
if you felt it was easy. - Key in
2
if you felt it was normal. - Key in
3
if you felt it was hard. - Key in
E
if you wish to exit the session.
You took 172 seconds to reveal the answer.
Answer:
Equivalence partitioning
How did you find the question?
[1] Easy; [2] Normal; [3] Hard; [E] Exit
[1/2/3/E] >>
💡 Notice how the program displays the time taken you took to answer the question. For example, the output above displays
172 seconds
.This is for you to note of how long you took to answer the question and thus giving you an insight of how difficult the question is to you.
After choosing your difficulty, you may proceed to reveal the next question by pressing Enter key again.
[1/2/3/E] >> 2
When you are ready, press [Enter] to continue.
Once the question pool is empty, or when you decided to stop, TermiNUS will drop you back into the command prompt.
This training session has ended.
Returning you back to main program.
[CS2113T > question] >>>
Displaying all schedules across all modules
Format: timetable {day}
Displays all schedules from all modules in TermiNUS or displays certain schedules that falls on the specified day.
⚠️The
<day>
must be a valid day spelled fully. For example,monday
is a valid day butmon
is not.You may view Adding a Schedule for the valid list of days.
💡 The accepted input for the
<day>
argument includes “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, and “Sunday”.
Example 1: timetable
Expected Output 2:
[] >>> timetable
THURSDAY:
1. CS2113T Tutorial 1 (Thursday, 10:00 - 12:00): https://zoom.us/test
FRIDAY:
1. CS2113T Lab 1 (Friday, 12:30 - 14:30): https://zoom.us/test
[] >>>
Example 2: timetable thursday
Expected Output 2:
[] >>> timetable thursday
1. CS2113T Tutorial 1 (Thursday, 10:00 - 12:00): https://zoom.us/test
[] >>>
Exiting TermiNUS
Format: exit
To exit the program, simply run the following command:
[] >>> exit
Goodbye!
Accessing Help
Format: help
Depending on your current workspace, you may get different help messages.
The following shows the help message in the default workspace:
[] >>> help
Help Menu
---------
exit : Exits the program.
Format: exit
help : Prints the help page.
Format: help
module : Move to the module workspace
Format: module
go : Go to a specific module's workspace
Format: go <module_code>
timetable : Displays all your schedule.
Format: timetable {day}
[] >>>
Advanced Usage of Commands
Format: <workspace> <available workspace command>
💡 Beginner users are not advised to use this advance usage of commands until they are more familiar with the commands provided by TermiNUS.
Advanced users can access workspace command directly without entering its environment in order to speed up the process of using TermiNUS. Seen below are some command examples.
A workspace command is a command that will bring you to its own workspace. Current workspace command includes note, schedule, question, and module.
💡 To access the module in TermiNUS, you will need to use the
go
command. For more information, please refer to Section: Specific Module.
⚠️This advance command do not allow any chaining with the
back
command.
Example:
- Adding a note without entering the note workspace.
[CS2113T] >>> note add "Advance command" "Advance command is cool"
Your note on 'Advance command' has been added!
[CS2113T] >>>
- Adding a schedule without entering the schedule workspace.
[CS2113T] >>> schedule add "Lecture" "Friday" "16:00" "2" "https://zoom.us/test"
Your schedule on 'Lecture' has been added!
[CS2113T] >>>
- Adding a question without entering the module workspace.
[] >>> go CS2113T question add "What is Java?" "It is a programming language."
Your question on 'What is Java?' has been added!
[] >>>
FAQ
Q: Can I edit the information in thedata
directory?
A: Yes! TermiNUS saves and loads your information from the data
folder. You are able to edit the files
in the data
folder. We recommend you to update the contents of any notes which should be a .txt
file in the
data/module_code
directory. However, we do not recommend modifying any configuration file such as .json
file
or renaming any folders in the data
folder including the data
folder itself. For these, you should use TermiNUS instead to edit.
Q: (Windows) What will happen if I create a new module when I have an existing folder with the same module code in the data
directory?
A: Regardless of case sensitivity (i.e. cS2113T
or CS2113T
), the files within the folder will be deleted.
Q: (MacOS/Linux) What will happen if I create a new module when I have an existing folder with the same module code in the data
directory?
A: Only the files within the uppercase folder (i.e. CS2113T
) will be deleted. If there are folders with mixed or
lowercase (i.e. cS2113t
or cs2113t
), the content within will be ignored (for loading, saving and deleting).
Q: Why is my module folder in the data
folder not deleted?
A: There can be 2 reason. Firstly, there are files inside the folder that are locked by the
operating system. This means there might be other applications using the file, which is preventing
TermiNUS from deleting the folder cleanly. Usually restarting the computer and deleting it will
solve the issue. Secondly, if you are running macOS or Linux, we do not delete folders that are
not uppercase (e.g. CS2113T
will be deleted but CS2113t
will not be).
Q: What will happen if my data is not loaded properly when entering TermiNUS?
A: Any existing data may be overwritten in the data
folder when you perform any command within this state. If you do encounter this error, please copy the json
file as soon as possible before exiting TermiNUS to prevent any loss of data.
Q: Why will storage be disabled?
A: This is to avoid a loss of data when there is an error with loading or saving data into the data
folder. Hence, if an error occurs, all storage operations will cease to work only until you exit the program where TermiNUS will attempt to save your data one last time.
Workspace Command Summary
Action | Format | Examples |
---|---|---|
access module management workspace | module |
- |
access module workspace | go <module_code> |
go CS2113T |
access note workspace | note |
- |
access schedule workspace | schedule |
- |
access question workspace | question |
- |
Command Summary
⚠️ To understand which command applies to which workspace mentioned below, please refer to Workspace Command Summary
Workspace | Action | Format | Examples |
---|---|---|---|
module management | add module | add "<module_code>" |
add "CS2113T" |
module management | update module | update <index> "<new_module_code>" |
update 1 "CS2113" |
note | add note | add "<note_name>" "<note_content>" |
add "Note1" "Hello world." |
note | export notes | export |
export |
note | reload notes | reload |
reload |
schedule | add schedule | add "<link_description>" "<day>" "<start_time>" "<duration>" <zoom_link>" |
add "CS2113T Tutorial 1" "Thursday" "10:00" "1" "https://zoom.us/test" |
question | add question | add "<question>" "<answer>" |
add "What is 1+1?" "2" |
question | active learning | test {question_count} |
test , test 3 |
default | view timetable | timetable {day} |
timetable , timetable Thursday |
ALL except module | delete item | delete <index> |
delete 1 |
ALL except module | view item information | view {index} |
view , view 1 |
ALL | help | help |
- |
ALL except default | go back to previous workspace | back |
- |
ALL | exit the program | exit |
- |