By: Team T09-1 Since: Feb 2019 Licence: MIT

1. Introduction

PlanWithEase (PWE) is an application designed to help National University of Singapore (NUS) Information Security freshmen in creating a comprehensive degree plan according to the degree requirements.

PWE is optimized for those who prefer using a Command Line Interface (CLI). The commands used to interact with PWE are designed to be simple and intuitive, so even those who are unfamiliar with CLI can use PWE with ease.

PWE also comes with a clean Graphical User Interface (GUI) that presents information in an organized manner.

Interested in using PWE to plan your degree easily? Jump to Section 3, “Quick Start” to get started!

2. Understanding This User Guide

2.1. Basic Information

This user guide provides a quick start guide for you to easily setup and install PlanWithEase.

You can find all the details of PlanWithEase's features, tips, frequently asked questions and a summary of the available commands.

To navigate between the different sections easily, you can use the Table of Contents above.

The following symbols are used throughout this user guide:

This symbol denotes information that you may want to take note of.

This symbol denotes a tip which you may find useful when using our application.

This symbol denotes a warning message which you need to be careful of when using our application.

Additionally, you may also encounter the following text styles:

  • Commands, parameters and file paths will be in this format

  • Important messages will be bold

  • Undoable command will be in italics

  • Keyboard buttons will be referred to as such: F1

PlanWithEase comes with a very clean and easy to use Graphical User Interface, so don’t worry even if you are a new user! You can expect to navigate around our application with ease!

UiLabelled
Figure 1. PlanWithEase’s Graphical User Interface

PlanWithEase has five main sections that you’ll need to know before you get started!.
The five main sections are explained below.

Section

Name

Description

1

Command Box

This is where you can enter and run commands.

2

Result Box

This provides you with information on whether a command is successful. If there are errors when running the command, information on how to rectify the errors will also be displayed in here.

3

Module List

This is where you can view the details of all the modules. You can use the commands in Section 4.2, “Module Management” to make changes to the Module List.

4

Requirement Categories

This is where you can view your degree progress. You can use the commands in Section 4.3, “Requirement Tracker” to make changes to the Requirement Categories.

5

Degree Plan

This is where you can view your degree plan. You can use the commands in Section 4.4, “Degree Plan Management” to make changes to the Degree Plan.

3. Quick Start

  1. Ensure you have Java version 9 installed in your Computer.

  2. Download the latest PWE.jar here.

  3. Copy the file to the folder you want to use as the home folder for PlanWithEase.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
    Figure 2. Successful start up of PlanWithEase
  5. You can now try entering commands in the command box and press Enter to execute it!
    e.g. typing help and pressing Enter will open the help window.

  6. Below are some example commands you can try:

    • list : list and displays all modules in the module list.

    • addname/Programming Methodology code/CS1010J credits/4 : adds a module named Programming Methodology with module code CS1010J, which is assigned 4 modular credits, to the module list.

    • delete3 : deletes the 3rd module shown in the module list.

    • exit : exits the application

  7. Refer to Section 4, “Features” for details of each command.

4. Features

In this section, the expected command format will be introduced, and you can expect to learn the various commands you can use.

Don’t worry if you don’t understand everything at once.
There are plentiful examples provided to aid your understanding of the commands' usage better.

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user

    • e.g. in add name/NAME, NAME is a parameter which can be used as:

      1. add name/Programming Methodology

      2. add name/Web Security

  • Items in square brackets are optional parameters

    • e.g. name/NAME [tag/TAG] can be used as:

      1. name/Database Systems tag/sql (with optional tag parameter)

      2. name/Database Systems (without optional tag parameter)

  • Items with ​ after them are parameters that can be used multiple times (including zero times)

    • e.g. [tag/TAG]… can be used as:

      1.   (i.e. 0 times)

      2. tag/programming (i.e. 1 time)

      3. tag/programming tag/algorithms, etc. (i.e. many times)

    • e.g. [name/NAME NAME…] can be used as:

      1.   (i.e. 0 times)

      2. name/Programming (i.e. 1 time)

      3. name/Programming Methodology, etc. (i.e. many times)

  • Prefixed-parameters can be arranged in any order after all non-prefixed parameters (if any)

    • e.g. if the command specifies INDEX name/NAME code/CODE:

      1. entering INDEX code/CODE name/NAME is also acceptable, but

      2. entering name/NAME INDEX code/CODE is not acceptable

Parameter values cannot be empty (unless otherwise stated).

4.1. General Commands

4.1.1. Viewing help : help general help 8774C1

Don’t worry if you are feeling lost! You can use this User Guide document to gain a better understanding of PlanWithEase's commands.

To open this User Guide document, simply enter help in the command box.

Alternatively, you can access this User Guide document by pressing F1 or via the menu bar (as shown below).

helpLabelled
Figure 3. Accessing help from menu bar

4.1.2. Listing entered commands : history general history 8774C1

Want to check what commands you have entered previously? Simply enter history in the command box!

The list of commands will be displayed in reverse chronological order (from most recent to earliest).

You can press the and arrows to display the previous and next input respectively in the command box.

4.1.3. Undoing previous command: undo general undo 8774C1

Made a critical mistake such as accidentally clearing all modules from PlanWithEase and you want to get the data back?
No problem! You can simply enter undo in the command box to restore PlanWithEase’s data to the state before the previous undoable command was executed!

Undoable commands are commands that modifies the contents of PlanWithEase’s data.
Below is a list of all undoable commands in PlanWithEase.

General

Module Management

Requirement Tracker

Degree Plan Management

  • undo

  • redo

  • clear

  • reset

  • add

  • edit

  • delete

  • requirement_add

  • requirement_move

  • planner_add

  • planner_remove

  • planner_move

Examples:

  • delete 1 (deletes first module in the displayed module list)
    list (displays all modules in the module list)
    undo (reverses the delete 1 command)

  • find name/Programming (finds modules with name containing the word Programming and displays them in the module list)
    list (displays all modules in the module list)
    undo (the undo command fails as there are no undoable commands executed previously)

  • delete 1 (deletes first module in the displayed module list)
    clear (clears all application data)
    undo (reverses the clear command)
    undo (reverses the delete 1 command)

4.1.4. Redoing previously undone command : redo general redo 8774C1

Took too many steps back in time using the undo command and want to move forward in time again?
Use the redo command to reverse the most recent undo command!

Be careful when time travelling using the undo and redo command!
You may end up being stuck in the present and can’t go back into the future using the redo command.

This can happen if you you run an undoable command (excluding undo and redo) when going back in time using the undo command!

Examples:

  • delete 1 (deletes first module in the displayed module list)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)

  • delete 1 (deletes first module in the displayed module list)
    redo (the redo command fails as there are no undo commands executed previously)

  • delete 1 (deletes first module in the displayed module list)
    clear (clears all modules from the application)
    undo (reverses the clear command)
    undo (reverses the delete 1 command)
    redo (reapplies the delete 1 command)
    redo (reapplies the clear command)

4.1.5. Clearing modules : clear general clear 8774C1

Want to clear all the modules in the module list, requirement categories or degree plan? You’ll definitely want to use the clear command!

The clear command allows you to remove all modules from the specified section (i.e. module list, requirement categories, degree plan).

Command Format: clear [requirement or planner]

If no parameters are specified, all modules in the module list, requirement categories and degree plan will be deleted.

If you want to delete all modules in the module list quickly, simply enter the clear command in the command box without specifying any parameters!

Command Usage:

Input

Behaviour

Expected Results

clear

Clears all modules from the application

The module list will be emptied. Additionally, all modules in the requirement categories and degree plan will be removed.

clear requirement

Clears all modules in all requirement categories

The requirement categories will be emptied.

clear planner

Clears all modules in all degree plan

The degree plan will be emptied.

Example:

Here’s an example of how PlanWithEase would look like after executing the clear command.
Notice that a success message will be displayed after clearing all modules from PlanWithEase.

Before running the clear command:

clearbefore
Figure 4. Before executing the clear command.

After entering clear and pressing Enter:

clearafter
Figure 5. After executing the clear command.

4.1.6. Reset the application: reset general reset 8774C1

If you want to populate the program with sample data (sample modules added to the requirement categories and degree plan), you can enter reset in the command box

This can help you save time if you want to start afresh!

This will remove all changes you have made to the module list, requirement categories and degree plan, and populate them with sample data.

If you unintentionally used this command, do use the undo command to revert back the changes

4.1.7. Exiting PlanWithEase : exit general exit 8774C1

If you want to exit PlanWithEase, you can enter exit in the command box.
Hope you had a wonderful experience using PlanWithEase. Do come back soon!

4.2. Module Management

In this section, you’ll be introduced to commands that helps you to manage modules in PlanWithEase.

Below is a list of command parameters that you can expect to use for commands in this section.

Parameter

Description

Acceptable Range of Values

CODE

Indicates the module code
(e.g. CS2101).

CODE should begin with two alphabets, followed by four digits, and may optionally end with an alphabet.
CODE is case-insensitive.

NAME

Indicates the name of the module
(e.g. Effective Communication for Computing Professionals).

NAME should only contain alphanumeric characters, punctuations (excluding "(", ")", "&", "|") and spaces.
Note that if you are using punctuations, you may want to consider replacing "()" with "[]", "&" with "and", and "|" with "l" (lowercase L) instead!

CREDITS

Indicates the modular credits assigned to the module
(e.g. 4 Modular Credits).

CREDITS should be whole numbers between 0 to 999 (both inclusive).

SEMESTER

Indicates the semester which the module is offered in.
(e.g. Semester 1)

SEMESTER should only be either 1, 2, 3 or 4.
3 and 4 indicates special term semesters 1 and 2 respectively.

COREQUISITE

Indicates the module code of a co-requisite module.
(e.g. CS2101 is a co-requisite module of CS2113T)

COREQUISITE follow the same format as CODE.

TAG

Indicates the extra information to associate the module with (e.g. Presentation, Email).

TAG should only contain alphabets and numbers.

CODE must be unique in the module list.
You cannot add/edit modules to have the same module code as another module in the module list.

4.2.1. Adding modules : add module add blue

Before you can add modules to the degree plan, you’ll need to add modules into the module list first.
It’s easy to add a module into the module list! Here’s how you can use the add command.

Command Format: add code/CODE name/NAME credits/CREDITS [sem/SEMESTER]… [coreq/COREQUISITE]… [tag/TAG]…

Please note that you cannot add a new module which has a co-requisite module already existing in the degree plan.
You’ll need to remove the module from the degree plan first before you can add the new module in with the co-requisite module specified.

Example:

  • add code/GEH1074 name/Luck credits/4 sem/1 sem/2
    Adds a module named Luck with module code GEH1074, which is assigned 4 modular credits and is offered in semesters 1 and 2, to the module list.

module add luck
Figure 6. New module "GEH1074 Luck" added to module list successfully

When adding a module with a corequisite, if the module is added successfully, the co-requisite modules will be updated as well.

Example:

  • add name/Skills code/GEH1074T credits/4 sem/1 sem/2 coreq/GEH1074 tag/GEM tag/economics
    Adds a module named Skills with module code GEH1074T, which is assigned 4 modular credits and has module code GEH1074 as a corequisite, to the module list. The module added has the tags GEM and economics as well.
    Both modules (GEH1074T and GEH1074) will be updated to be co-requisites as shown below.

module add coreq
Figure 7. Module GEH1074T is added successfully; GEH1074T and GEH1074 are now co-requisites.

4.2.2. Editing modules : edit module edit blue

Want to change the module details? No problem!
You can use this handy edit command to update the module details to your liking.

Command Format: edit INDEX [name/NAME] [code/CODE] [credits/CREDITS] [sem/SEMESTER]… [coreq/COREQUISITE]… [tag/TAG]…

  • Edits the module at the specified INDEX. The index refers to the index number (beside the module code) shown in the displayed module list.

  • You need to provide at least one of the optional fields to edit.

  • Existing values will be updated to the input values.

  • When editing semesters/corequisites/tags, the existing semesters/corequisites/tags of the module will be removed (i.e adding of semesters/corequisites/tags is not cumulative.)

  • You can remove all the module’s tags by typing tag/ without specifying any tags after it.

  • Likewise, you can remove all module’s co-requisites or semesters by typing coreq/ and sem/ respectively without specifying any values after the parameter prefix.

Examples:

  • edit 1 name/Data Structures and Algorithms code/CS1234
    Edits the name and code of the 1st module in the displayed module list to be Data Structures and Algorithms and CS1234 respectively.

  • edit 3 code/CS2040C tag/
    Edits the code of the 3rd module in the displayed module list to be CS2040C and clears all existing tags associated with the module.

  • edit 5 coreq/CS2105 coreq/CS2106
    Edits the co-requisites of the 5th module in the displayed module list to be CS2105 and CS2106.

Just like the add command, when editing the co-requisites of a module, the co-requisite modules will be updated as well.

Example: If GEH1074 and GEH1074T are not co-requisites, running the command edit 1 coreq/GEH1074T (assuming index 1 of the module list is GEH1074) will result in GEH1074 and GEH1074T being co-requisites.

module edit coreq
Figure 8. GEH1074 and GEH1074T are being edited to be co-requisites.

4.2.3. Deleting modules : delete module delete blue

Want to delete a module from the module list? Simply locate the module to be deleted in the module list, and then use the delete command!

Command Format: delete INDEX

To choose which module you want to delete, include the index number (beside the module code) in the displayed module list.

  • The deleted module will be removed from both the requirement category assigned and the degree plan (where applicable).

  • Any modules with the deleted module as a co-requisite will be updated accordingly (i.e. deleted module is removed from the respective module’s co-requisite list).

Example: If GET1074T and GET1074 are co-requisite modules, deleting GET1074 will cause GET1074 's list of co-requisite modules to be updated as well.

module delete coreq
Figure 9. GET1074 is removed from GET1074 's list of co-requisites.

4.2.4. Finding modules : find module find blue

Having trouble locating the modules you want?

Make use of find command which allows you to find modules that have their names, code or credits matching the given search criteria.

Command Format: find [name/NAME] OPERATOR [code/CODE] OPERATOR [credits/CREDITS]

When this command is used, the application will display only those modules which satisfy the search criteria.

The following table describes the valid prefixes that you can supply to the search criteria.

Prefix

Description

name/NAME

Search for any module name which matches NAME

code/CODE

Search for any module code which matches CODE

credits/CREDITS

Search for any module credits which has CREDITS

tag/TAG

Search for any module tag which matches TAG

sem/SEMESTER

Search for any module that is being offered in SEMESTER

The following table describes the valid operators which you can supply to the search criteria.

Operator

Description

Precedence

&&

Logical "AND" operation (both conditions A AND B must match)

Highest

||

Logical "OR" operation (either conditions A OR B must match)

Lowest

( and )

Search term surrounded by parenthesis will always be evaluated first. If there is a tie, the logical operator precedence will be taken into consideration.

N.A

The following examples describes how you could form a valid search criteria for the find command.

Single Prefix Usage

Expected Result

find name/NAME

Returns modules containing NAME in their names

find code/CODE

Returns modules containing CODE in their codes

find credits/CREDITS

Returns modules having CREDITS in their credits

If you need multiple prefixes, the following table shows some examples on how it can be done.
Note that you will need to separate multiple prefixes with an operator.

You could choose which search criteria having a higher priority by specifying parenthesis

Multiple Prefix Usage

Expected Result

find name/NAME1 && name/NAME2

Returns modules containing both NAME1 and NAME2 in their names.

find name/NAME1 || name/NAME2

Returns modules containing both NAME1 or NAME2 in their names.

find name/NAME && code/CODE

Returns modules containing NAME in their name and CODE in their codes.

find code/CODE || (name/NAME && code/CODE2)

Returns modules containing either CODE in their codes or NAME in their names and CODE2 in their codes.

  • The search is case insensitive. e.g security will match Security

  • Only full words will be matched. e.g. CS will not match CS1231

  • The order of the prefixes does not matter. e.g. find code/CODE || name/NAME returns the same result as find name/NAME || code/CODE

Examples:

  • find name/computer
    Displays all modules with names containing the word computer (e.g. computer and Computer Security) in the module list.

find1
Figure 10. Finding modules with name contains computer
  • find name/computer && name/Security Displays all modules with names containing the word computer and security in the module list.

find2
Figure 11. Finding modules with name contains computer and security.
  • find (sem/1 || sem/4) && name/Programming
    Displays all modules with names containing programming and is offered in either semester 1 or 4 in the module list.

find3
Figure 12. Finding modules with names containing programming and is offered in either semester 1 or 4.

If you wish to search for module name with exact name Information Security, you could do so via the following command find name/information security

Do note that if you prefer to search for module name containing both Information and Security but in any order, you can do the following command. find name/Information && name/Security
This command will return you modules with both name keywords. (e.g. Security in Information Privacy)

4.2.5. Listing all modules : list module list blue

Shows a list of all modules in the module list.
Command Format: list

This command is useful if you want to display all modules in the module list after doing a find command.

Example: Running the list command:

module list
Figure 13. All modules are displayed in the module list.

4.2.6. Selecting modules : select module select blue

Selects the module identified by the index number used in the displayed module list.
Command Format: select INDEX

  • Selects the module at the specified INDEX.

  • The index refers to the index number shown in the displayed module list.

  • The index must be a positive integer 1, 2, 3, …

Examples:

  • list
    select 2
    Selects the 2nd module in the displayed module list.

  • find Programming
    select 1
    Selects the 1st module in the results of the find command.

4.3. Requirement Tracker

The requirement tracker allows you to manage and and track your degree requirements so that you are always on-track for graduation!

This section contains the various commands that you can use in this application to add, remove, move and list modules to and from the specified requirement categories in this application.

The following table describes the parameters you may use for the commands in this section.

Parameter

Description

Acceptable Range of Values

NAME

Indicates the name of degree requirement category (e.g. IT Professionalism).

NAME must be one of the following values (case-insensitive):
1. Computing Foundation
2. Information Security Requirements
3. Information Security Electives
4. Computing Breadth
5. IT Professionalism
6. Mathematics
7. General Education
8. Unrestricted Electives

CODE

Indicates the module code (e.g. CS2101).

CODE must begin with two or three alphabets, followed by four digits, and may optionally end with an alphabet.
CODE is case-insensitive.

NAME and CODE (where applicable) must not be empty or blank.

  • Both NAME and CODE parameters are case insensitive. (e.g. computing foundation will match Computing Foundation)

  • CODE is treated as uppercase (e.g. cs1010 is treated as CS1010), and should be unique.

  • Only full words will be matched. (e.g. foundation will not match Computing Foundation)

4.3.1. Adding modules : requirement_add requirement add 8AB702

Want to see if you have fulfilled a particular degree requirement category?​

Simply add the module code to a degree requirement category using the requirement_add command to find out.

Command Format: requirement_add name/NAME code/CODE [code/CODE]…

Examples:

  • requirement_add name/IT Professionalism code/IS4231
    Adds the module code IS4231 to the degree requirement category IT Professionalism.

The two images below this command describes what you should see when you execute the above command

RequirementAddCommand
RequirementAddCommandAfter
  • requirement_add name/Computing Foundation code/CS1231 code/CS2100
    Adds module codes CS1231 and CS2100 to the degree requirement category Computing Foundation.

4.3.2. Removing modules : requirement_remove requirement remove 8AB702

Want to remove a module code from the degree requirement category?

requirement_remove will help you to remove the specified module code from the degree requirement category.

Command Format: requirement_remove code/CODE [code/CODE]…

If you want to delete the module entirely, simply use the delete command instead! The changes will be reflected in the degree requirement category as well.

Examples:

  • requirement_remove code/IS4231
    Removes the module code IS4231 from the degree requirement category.

The two images below this command describes what you should see when you execute the above command

RequirementRemoveCommand
RequirementRemoveCommandAfter
  • requirement_remove code/CS1231 code/CS2100
    Removes module codes CS1231 and CS2100 from the degree requirement category.

4.3.3. Moving modules between requirement categories : requirement_move requirement move 8AB702

Having seconds thoughts about which degree requirement category the module code should be classified under?

Or simply added the module code to the wong degree requirement category?

No worries, requirement_move will allow you to move the specified module to another degree requirement category.

Command Format: requirement_move name/NAME code/CODE [code/CODE]…

The CODE specified must be already added to a degree requirement category!

Unlike the planner_move command, modules that are co-requisites will not be moved together.

Examples:

  • requirement_move name/Computing Breadth code/IS4231
    Moves the module code IS4231 to the degree requirement category `Computing Breadth.

The two images below this command describes what you should see when you execute the above command

RequirementMoveCommand
RequirementMoveCommandAfter
  • requirement_move name/Computing Foundation code/CS1231 code/CS2100
    Moves module codes CS1231 and CS2100 to the degree requirement category Computing Foundation.

4.3.4. Listing all requirement categories : requirement_list requirement list 8AB702

Shows a list of all degree requirement categories in the application and the module codes added into each degree requirement category.

Command Format: requirement_list

Examples:

  • requirement_list

The image below this command describes what you should see when you execute the above command

RequirementListCommand

4.4. Degree Plan Management

The following table describes the parameters you may use for commands in this section.

Parameter

Description

Acceptable Range of Values

CODE

Indicates the module code
(e.g. CS2101).

CODE should begin with two alphabets, followed by four digits, and may optionally end with an alphabet. CODE is case-insensitive.

YEAR

Indicates the year of one of the semesters in the degree plan.
(e.g. 1)

YEAR should only be either 1, 2, 3 or 4.

SEMESTER

Indicates the semester of one of the semesters in the degree plan.
(e.g. 1)

SEMESTER should only be either 1, 2, 3 or 4.
3 and 4 indicates special term semesters 1 and 2 respectively.

  • YEAR, SEMESTER and CODE (if specified) must not be empty.

  • CODE is case insensitive, and is treated as uppercase (e.g. cs1010 is treated as CS1010), and should be unique.

4.4.1. Adding modules : planner_add planner add F17D3F

Want to add modules to the degree plan?
Make use of the planner_add command to add one or multiple modules to the degree plan.

Command Format: planner_add year/YEAR sem/SEMESTER code/CODE [code/CODE]…

  • 3 and 4 for SEMESTER indicates special term semesters 1 and 2 respectively.

  • All the module(s) to be added must exist in the module list.

  • All the module(s) to add must not have duplicate(s) in the degree plan.

  • For the following two points, added to the valid semester is defined as: The semesters in which module(s) are offered should contain the semester to which the module(s) are added.

  • The module(s) must be added to the valid semester.

  • The co-requisite(s) of the module(s) added must be added to the valid semester.

  • After adding, the updated degree plan will be displayed.

Examples:

  • planner_add year/1 sem/3 code/CS1010
    Adds module CS1010 to year 1 semester 3 (special term semester 1) of the degree plan.

  • planner_add year/1 sem/4 code/CS1231 code/CS2040C
    Adds modules CS1231 and CS2040C to year 1 semester 4 (special term semester 2) of the degree plan.

  • planner_add year/1 sem/2 code/CS2113T code/CS2107
    Adds modules CS2113T and CS2107 to year 1 semester 2 of the degree plan.

4.4.2. Removing modules : planner_remove planner remove F17D3F

Want to remove modules from the degree plan?
Make use of planner_remove command to remove one or multiple modules from the degree plan.

Command Format: planner_remove code/CODE [code/CODE]…

  • All the module(s) to remove must exist in the degree plan.

  • After removing, the updated degree plan will be displayed.

Examples:

  • planner_remove code/CS1231
    Removes module CS1231 from the degree plan.

  • planner_remove code/CS2100 code/CS2040C
    Removes modules CS2100 and CS2040C from the degree plan.

4.4.3. Moving a module between semesters: planner_move planner move F17D3F

Any change in your decision? Want to take your module in other semester instead?
No worry! Simply use planner_move command to move your module in the degree plan along with its co-requisite(s) between the semesters by providing your module code and a semester you want to move your module to.

Command Format: planner_move year/YEAR sem/SEMESTER code/CODE

When moving a module with co-requisites, if the module is moved successfully, the co-requisite modules will be moved as well.

Examples:

  • planner_move year/1 sem/2 code/CS1231
    Moves module CS1231 along with its co-requisite(s) to year 1 semester 2.

  • planner_move year/2 sem/1 code/CS1231
    Moves module CS1231 along with its co-requisite(s) to year 2 semester 1.

Before the planner_move command:

plannermove1
Figure 14. Before executing the planner_move command.

After entering planner_move and pressing Enter:

plannermove2
Figure 15. After executing the planner_move command.

Note that co-requste of the module is moved too:

plannermove3
Figure 16. After executing the planner_move command.

4.4.4. Showing semesters based on year/semester: planner_show planner show F17D3F

Having trouble locating semesters you want?
Simply use planner_show command. It will only show you the semesters you want to see.

Command Format: planner_list [y/YEAR] OPERATOR [s/SEMESTER]

When this command is used, the application will display only those semesters which satisfy the search criteria.

The following table describes the valid prefixes that you can use to supply to the search criteria.

Prefix

Description

year/YEAR

Search for any semester year which matches YEAR

sem/SEMESTER

Search for any semester sem which matches SEMESTER

The following table describes the valid operators which you can to use supply to the search criteria.

Operator

Description

Precedence

&&

Logical "AND" operation (both conditions A AND B must match)

Highest

||

Logical "OR" operation (either conditions A OR B must match)

Lowest

The following examples describes how you could form a valid search criteria for the planner_show command.

Single Prefix Usage

Expected Result

planner_show year/YEAR

Shows only semesters that are in year YEAR

planner_show sem/SEMESTER

Shows only semesters that are in semester SEMESTER

If you need multiple prefixes, the following table shows you how you could do it.
Note that you will need to separate multiple prefixes with an operator.

You could choose which search criteria having a higher priority by specifying parenthesis

Multiple Prefix Usage

Expected Result

planner_show year/YEAR1 || year/YEAR2

Shows only semesters that are in years YEAR1 or YEAR2.

planner_show sem/SEMESTER1 || sem/SEMESTER2

Shows only semesters that are in semester SEMESTER1 or SEMESTER.

planner_show sem/SEMESTER && (year/YEAR1 || year/YEAR2)

Shows only semesters that are in year YEAR1 semester SEMESTER or YEAR2 semester SEMESTER.

  • The order of the prefixes does not matter. e.g. planner_show sem/SEMESTER || year/YEAR returns the same result as planner_show year/YEAR || sem/SEMESTER

Examples:

  • planner_show year/1
    Shows any semesters having the year 1 (e.g. Year 1 Semester 1, Year 1 Semester 2 …​) in the degree plan.

  • planner_show sem/1
    Shows any semesters having the year 1 (e.g. Year 1 Semester 1, Year 2 Semester 1 …​) in the degree plan.

  • planner_show year/1 || year/2
    Shows any semesters having the year 1 or year 2 in the degree plan.

  • planner_show sem/1 || sem/2
    Shows any semesters having the semester 1 or semester 2 in the degree plan.

  • planner_show year/1 && sem/1
    Shows a semester having the year 1 and semester 1 (e.g. Year 1 Semester 1)in the degree plan.

  • planner_show sem/1 && (year/1 || year/2)
    Shows a semester having the year 1 semester 1 and year 2 semester 1 (e.g. Year 1 Semester 1 and Year 2 Semester 2) in the degree plan.

Before the planner_show command:

plannershow1
Figure 17. Before executing the planner_show command.

After entering planner_show and pressing Enter:

plannershow2
Figure 18. After executing the planner_show command.

4.4.5. Listing all semesters: planner_list planner list F17D3F

Maybe you need to list all your semesters back after using planner_show?
Simply enter planner_list into the application!
It wil show you a list of all semesters in degree plan.

Command Format: planner_list

4.4.6. Using degree plan to suggest modules : planner_suggest planner suggest F17D3F

Having trouble identifying modules to add to the degree plan?
Make use of planner_suggest command to find out recommended modules to add to the degree plan.

Command Format: planner_suggest credits/CREDITS [tag/TAG]…

When this command is successfully executed, the result box will display modules recommended.

  • Maximum 10 modules are recommended in the recommendation list.

  • In addition to the recommendation list, supplementary information on the specific modules with matching tags and credits is given as two additional lists. The modules in the two additional lists are all from the recommendation list.

  • Modules recommended in all 3 aforementioned lists are sorted according to the following criteria:

    • For modules with different number of tags that match the desirable tags (matching tags), modules with more matching tags will be sorted to the front of the list.

    • If modules have the same number of matching tags but different credits, modules with the credits closer to the desirable credits will be sorted to the front of the list.

    • If modules have the same number of matching tags and credits, they will be sorted according to alphabetical order.

    • If tag/TAG is not supplied as a parameter in the command, modules will be sorted according to credits and alphabetical order only.

  • All modules in the recommendation list and the two additional lists are modules not found in the degree plan.

Examples:

  • planner_suggest credits/4
    Suggests maximum 10 modules not found in the degree plan, prioritizing modules with credits closer to 4. If tie, prioritizes according to alphabetical order.

  • planner_suggest credits/2 tag/algorithms
    Suggests maximum 10 modules not found in the degree plan, prioritizing modules with tag algorithms. If tie, prioritizes according to credits closer to 2. If tie again, prioritizes according to alphabetical order.

5. Future Enhancements [coming in v2.0]

These are features that will come in future releases of PlanWithEase

5.1. Module Prerequisites prereq/

We aim to provide the support of prerequisites for our Module Management.
This changes will allow our users to indicate a module prerequisites and we can handle its dependency for the users before they add the module into the Degree Plan.

5.2. Auto-create Degree Plan autoplan

We plan to implement this feature to allow an automated planning, we can make use of users feedback and current treads based on module popularity then create the degree plan for the users.

6. FAQ

Q: How do I save my data in the application?
A: You do need to save the data manually. Whenever you run any commands that makes changes, PlanWithEase's data are saved automatically in the data directory.

7. Command Summary

This section provides a quick references for all commands available in PlanWithEase.

7.1. General Commands

The table below shows a list of general commands.

Task

Purpose

Command Format

Example

Help

Displays the User Guide

help

help

History

Get a list of command entered

history

history

Undo

Undo your previous action

undo

undo

Redo

Redo your previous action

redo

redo

Clear

Clear the all the modules from the specified section

clear [requirement or planner]

clear

Reset

Resets and populates the application with sample data

reset

reset

Exit

Exits the application

exit

exit

7.2. Module Management Commands

The table below shows a list of commands which helps you to manage the module list.

Task

Purpose

Command Format

Example

Add module to module list

Add a new module to the module list.

add code/CODE name/NAME credits/CREDITS [sem/SEMESTER]… [coreq/COREQUISITE]… [tag/TAG]…

add code/GEH1074 name/Luck credits/4 sem/1 sem/2

Edit the details of a module

Edit the module’s details based on the index given.

edit INDEX [name/NAME] [code/CODE] [credits/CREDITS] [sem/SEMESTER]… [coreq/COREQUISITE]… [tag/TAG]…

edit 1 name/Data Structures and Algorithms code/CS2040C

Delete module from module list

Remove the module entirely from the module list based on the index given.

delete INDEX

delete 3

Find modules in the module list

Display a list of modules based on your search criteria

find [name/NAME] OPERATOR [code/CODE] OPERATOR [credits/CREDITS] OPERATOR [sem/SEMESTER] OPERATOR [tag/TAG]

find credits/4 && (name/Programming || name/Discrete)

List all modules

List all modules available in the module list

list

list

Selecting a module

Selects a module in the module list

select INDEX

select 1

7.3. Requirement Tracker Commands

The table below shows a list of command which helps you to manage and track your degree requirements.

Task

Purpose

Command Format

Example

Add module(s) to a requirement category

Add module(s) to the specified requirement category based on the module code provided.

requirement_add name/NAME code/CODE [code/CODE]…

requirement_add name/IT Professionalism code/IS4231

Remove module(s) from the requirement category

Remove module(s) from the requirement category based on the module code provided.

requirement_remove code/CODE [code/CODE]…

requirement_remove code/IS4231

Move module(s) between requirement categories

Move module(s) between the requirement categories from any requirement categories to a specified requirement categories.

requirement_move name/NAME code/CODE [code/CODE]…

requirement_move name/IT Professionalism code/IS4231

List all requirement categories in the application

List all requirement categories in the application and the module(s) added to each requirement categories

requirement_list

requirement_list

7.4. Degree Plan Commands

The table below shows a list of commands which helps you to manage the degree plan.

Task

Purpose

Command Format

Example

Add module(s) to degree plan

Add module(s) to degree plan based on module code and academic year

planner_add year/YEAR sem/SEMESTER code/CODE [code/CODE]…

planner_add year/1 sem/2 code/CS1010 code/CS2113T

Remove module(s) from degree plan

Remove module(s) from degree plan based on the module code

planner_remove code/CODE [code/CODE]…

planner_remove code/CS1231 code/CS1010

Move module between semesters in the degree plan

Move module between the semesters based on year and semester.

planner_move year/YEAR sem/SEMESTER code/CODE

planner_move year/1 sem/2 code/CS1231

List all semesters in the degree plan

List all semesters in the degree plan

planner_list

planner_list

List specific semesters in the degree plan

List specific semesters in the degree plan based on your search term.

planner_show [year/YEAR] OPERATOR [sem/SEMESTER]

planner_show sem/2 && ( year/1 ||year/2 )

Suggest available modules

Suggest available modules from the module lists based on input argument.

planner_suggest credits/CREDITS [tag/TAG]…

planner_suggest credits/4 tag/maths