By: AY1920S1-Team W13-1 Since: Aug 2019 Licence: MIT

1. Introduction

ModuleBook is a standalone application that tracks and manages modules from National University of Singapore (NUS). The application contains many features useful for module management, such as deadline tracking and hyperlink storage.

ModuleBook is for NUS students who want a desktop app for managing modules. More importantly, ModuleBook is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, ModuleBook can manage your tasks more efficiently than traditional GUI apps. Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest modulebook.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Address Book.

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

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • list : lists all modules.

    • addcs2103t : adds a module with module code cs2103t to be tracked by ModuleBook.

    • deletecs2103t : deletes tracked module with module code CS2103T from the list of tracked module if the module exists.

    • deadlinecs2103td/complete UG and DGt/time : adds deadline to module with code 'cs2103t'

    • exit : exits the app

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

3. Features

See Section 5, “Glossary” for more information on terms such as Tracked Module and Archived Module.

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add MODULE_CODE, MODULE_CODE is a parameter which can be used as add CS1101S.

  • Items in square brackets are optional e.g MODULE_CODE [MODULE_TITLE] can be used as CS1231 discrete structures.

Please also note the follow icons, that may serve as points of interests

A piece of information you may wish to note.
A tip or suggestion
A cautionary word of advice

3.2. Exiting the program: exit

Exits the program.
Format: exit

3.3. Listing all tracked modules : list

Shows a list of all current tracked modules.
Format: list

3.4. Viewing a module: view

3.4.1. Method 1: Typing the command

Views a module and enters the module view. Can be a tracked module or an archived module.

Format: view <MODULE_CODE>

Example: view cs1231

3.4.2. Method 2: Double clicking on the module in the list

Alternatively, you may simply view the module by double clicking on the module in the module list.

ViewCommandGuiStep1
ViewCommandGuiStep2

3.5. Return from module view: back

Returns from the module view.

Format: back

3.6. Finding an archived module: find

3.6.1. Method 1: Using command lines

Find archived modules with the the given prefix and keyword.
Format: find PREFIX\ KEYWORD …​

It is possible to use any number or combination of filters. Prefixes not present will not be considered in the search.
  • Prefixes: (case sensitive)

    • all\ : List all the modules. Overrides all other prefixes.

      • Example: find mod\ cs all\, all\ will override mod\ and list all the modules.

    • mod\ : Find all modules with module code that contains at least one of the given keyword(s).

      • Example: find mod\ cs ma st will list all modules with module code containing cs or ma or st.

    • title\ : Find all modules with title that contains all of the given keyword(s).

      • Example: find title\ software engineering will list all modules with titles containing "software" and "engineering".

    • desc\ : Find all modules with description that contains all of the given keywords(s).

      • Example: find desc\ software engineering will list all modules with description containing "software" and "engineering".

    • prereq\ : Find all modules with prerequisites that match at least one of the given keyword(s).

      • Example: find prereq\ cs2030 cs2040 will list all modules with prerequisite of cs2030 or cs2040.

    • preclu\ : Find all modules with preclusion that match at least one of the given keyword(s).

      • Example: find preclu\ cs2030 cs2040 will list all modules with preclusion of cs2030 or cs2040.

    • sem\ : Find all modules offered in a particular sem 1 - 4. (Sem 3 and 4 are special terms 1 and 2).

      • Example: find sem\ 1 3 will list all modules offered in semester 1 or special term 1.

  • The prefixes can be used together in any order to filter modules that passes all the search requirements.

    • Example: find mod\ cs2 cs3 desc\ software engineering sem\ 1 will show all modules with module code containing cs2 or cs3 with description containing "software" and "engineering" offered in semester 1.

  • The keywords are case insensitive. e.g cs2103t will match CS2103T.

  • Keywords used in title\ and desc\ are tolerant of minor spelling mistakes.

    • Example: find desc\ enginering will display results similar to find desc\ engineering.

  • Search is performed using string matching, commonly used keywords will therefore produce many search results.

  • Invalid prefixes and keywords before a valid prefix will be ignored.

    • Eg: find INVALID\ invalidKeyword mod\ cs the INVALID\ invalidKeyword will be ignored, mod\ cs will be searched.

Keywords are searched using "OR" relation (apart from title\ and desc\ which uses an "AND" relation.) while predicates are seached using "AND" relations. For example, find mod\ cs ma title\ linear algebra will produce results of all modules with (module code containing cs OR ma) AND (title containing linear AND algebra)

3.6.2. Method 2: Using GUI

Alternatively, you can simply click on the search button on the top left hand corner (shortcut key: F2) and select search. Input your keywords in the fields provided within the popup.

SearchGui
Figure 1. Searching using GUI
Modules are imported from NUSMods database.

3.7. Adding a module: add

Adds a module to be tracked.
Format: add MODULE_CODE

  • The add is case insensitive. e.g cs2103t will match CS2103T.

  • Only module code is searched for module to be added.

  • Only full words will be matched e.g. cs2103 will not match cs2103t.

Modules are imported from NUSMods database.

Examples:

  • add cs2103t

3.8. Deleting a module: delete

Untracks a module.
Format: delete MODULE_CODE

  • The delete is case insensitive. e.g cs2103t will match CS2103T.

  • Only module code is searched for module to be added.

  • Only full words will be matched e.g. cs2103 will not match cs2103t.

Examples:

  • delete cs2103t

3.9. Manage deadline tasks: deadline

3.9.1. add

Format: deadline MODULE_LIST_NUM a/add d/DESCRIPTION t/TIME p/PRIORITY

Adds deadline task consisting of description, time and priority to the respective module. Priority inputs are HIGH, MEDIUM OR LOW. Deadline task with HIGH priority is displayed in red, MEDIUM in yellow and LOW in green. Deadline list is sorted according to priority and deadline date and time. All parameters are compulsory. Date and Time must be in dd/MM/yyyy HHmm format.

Example: deadline 1 a/add d/tutorial 1 t/22/10/2019 2359 p/HIGH

Here is result of inputting the above command successfully.

AddDeadlineUI

3.9.2. edit

  • Edit Description

Format: deadline MODULE_LIST_NUM a/edit task/TASK_NUMBER_IN_LIST d/NEW_DESCRIPTION

Edits description from the deadline task numbered in deadline list for the respective module.

Example: deadline 2 a/edit task/2 d/finish increments

  • Edit Time

Format: deadline MODULE_LIST_NUM a/edit task/TASK_NUMBER_IN_LIST t/NEW_TIME

Edits time from the deadline task numbered in deadline list for the respective module. Date and Time must be in dd/MM/yyyy HHmm format.

Example: deadline 3 a/edit task/2 t/29/10/2018 2359

3.9.3. done

Format: deadline MODULE_LIST_NUM a/done task/TASK_NUMBER_IN_LIST

Marks the deadline task numbered in deadline list as done with a tick.

Example: deadline 1 a/done task/2

Here is result of inputting the above command successfully.

DoneDeadlineUI

3.9.4. doneAll

Format: deadline MODULE_LIST_NUM a/doneAll

Marks all the deadline tasks in deadline list as done with a tick.

Example: deadline 1 a/doneAll

3.9.5. in Progress

Format: deadline MODULE_LIST_NUM a/inProgress task/TASK_NUMBER_IN_LIST

Marks the deadline task numbered in deadline list as in-progress with a dash.

Example: deadline 1 a/inProgress task/1

3.9.6. undone

Format: deadline MODULE_LIST_NUM a/undone task/TASK_NUMBER_IN_LIST

Marks the deadline task numbered in deadline list as undone with empty space.

Example: deadline 1 a/undone task/1

3.9.7. delete

Format: deadline MODULE_LIST_NUM a/delete task/TASK_NUMBER_IN_LIST

Deletes deadline task numbered in deadline list from the respective module.

Example: deadline 1 a/delete task/2

3.9.8. deleteAll

Format: deadline MODULE_LIST_NUM a/deleteAll

Deletes all the deadline tasks from the respective module.

Example: deadline 1 a/deleteAll

Link commands are only available when viewing a module and only valid on currently displayed tracked modules.

Before you use any link command, make sure you are viewing your desired course module first.
If you happen to forget any of the url paired with the names you have entered, simply hover over the button and the information will be displayed.

You can use this command to add a link with the given name to a selected TrackedModule. This is useful if you manage to come across an important website related to a certain module you are currently taking and wish to note it down. A button will be created in ModuleBook with name you specified.

Suppose you are taking CS2103, and you will frequently visit the course website to check for new updates or tasks to complete by the next milestone. You wish to put the link somewhere so you can access it easily and also manage them effectively. You can do so using the following steps:

  1. Enter the command. Make sure you are viewing the CS2103 module.

][pdfwidth="50%"
  1. Press Enter. You should see a new button created in the Links section and a success message.

][pdfwidth="50%"

You can use this command to edit the name and/or url of an existing link.

Suppose the name "Nusmods Timetable" is too long and you want to change it to just "Nusmods". It is very simple to achieve:

  1. Enter the corresponding command

][pdfwidth="50%"
  1. Press Enter. The link should be updated with the new name and a success message should appear.

][pdfwidth="50%"

You can use this command to access a link in the default browser of your system.

If you are using any lesser known operating system, the app may not be able to detect it and this feature may not work as intended.

Now suppose you wish to access a link you provided previously (from the add command). Doing that is very simple:

  1. Enter the command link go n/Course Website

  2. The website should open in the default browser of your system and a success message should display.

Alternatively, you can access the link by clicking on it through the GUI as well.

You can use this command to delete a link with a matching name in the given module.

Suppose you have no use for a link to Nusmods in the module and you want to remove it to de-clutter. You can remove it by:

  1. Enter the delete command

][pdfwidth="50%"
  1. Press Enter. You should see a success message and the link should be gone.

][pdfwidth="50%"

Some links may be more important than others, and you may access them more frequently. To keep track of that, you can mark them using the mark feature.

Suppose you go to the course website of CS2103 very often and want to make sure you can identify the link immediately, mark it so it stays at the front all available links:

  1. Enter the command link mark n/Course Website

][pdfwidth="50%"
  1. Press Enter. The specified link will now be marked with a symbol and brought to the front of the list.

][pdfwidth="50%"

3.11. Saving the data

ModuleBook data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

3.12. Grade Manager [Coming Soon]

Tracks grades inputted by the user.

3.13. File Manager [Coming in v2.0]

Users can add files related to the module, and open them.

4. Command Summary

  • Help : help

  • Exit : exit

  • List : list

  • View view MODULE_CODE
    e.g. view cs2100

  • Back back

  • Find : find PREFIx\ KEYWORD(s) …​
    e.g. find mod\ cs2 cs3 desc\ software engineering prereq\ cs2030 sem\ 1 2

  • Add add MODULE_CODE
    e.g. add cs2101

  • Delete : delete MODULE_CODE
    e.g. delete cs2101

5. Glossary

5.1. Common Application terms

Home view - The state of the application that displays the home page in the main panel.

Glossary HomeView

Module view - The state of the application that displays the specified module in the main panel.

Glossary ModuleView

5.2. Common Module terms

Archived - A module that the institution provides. Can be viewed and tracked. It is indicated by a gray vertical bar on the module list.

Glossary ArchivedModule

Tracked - A module that is tracked. References an archived module. Can be viewed and untracked. It is indicated by a green vertical bar on the module list.

Glossary TrackedModule