tp

User Guide

Introduction

NUStudy is a desktop app for managing study hours, optimised for use via a command-line interface (CLI). If you can type fast, NUStudy can get your study management tasks done faster than traditional GUI apps.

Table of contents

Quick start

  1. Ensure that you have Java Runtime Environment (JRE) 17 or above installed on your computer. If you do not have JRE 17 installed, you can download Temurin JRE 17.
  2. Download the latest version of NUStudy from GitHub releases
  3. Copy the downloaded JAR file to the folder you want to use as the home folder for NUStudy
  4. Run the application in the terminal with java -jar ./path/to/NUStudy.jar

Features

Help

Lists out all the commands NUStudy supports

Format: help

Expected output:

                                   NUStudy Help
     ===================================================================================================
     Type                               Format                              Example
     ---------------------------------------------------------------------------------------------------
     Help                               help                                help
     Add a course                       add <course code>                   add CS2113
     Add a study session for today      add <course code> <hours>           add CS2113 5
     Add a study session with date      add <course code> <hours> <date>    add CS2113 5 23/10/2025
     List all courses                   list                                list
     List study sessions                list <course code>                  list CS2113
     Edit course code                   edit <old course code> <new code>   edit CS2113 MA1511
     Edit study session hours           edit <course code> <index> <hours>  edit CS2113 1 2
     Edit study session date            edit <course code> <index> <date>   edit CS2113 1 23/10/2025
     Filter by course                   filter <course>                     filter MA1511
     Filter by date                     filter <date>                       filter 23/10/2025
     Filter code and date               filter <course> <date>              filter MA1511 23/10/2025
     Reset a course                     reset <course>                      reset CS2113
     Reset all courses                  reset all                           reset all
     Delete a course                    delete <course code>                delete CS2113
     Delete session by index            delete <course code> <index>        delete CS2113 2
     Delete session by date             delete <date>                       delete 26/10/2025
     Exit NUStudy                       exit                                exit
     ====================================================================================================

Add a course

Add a course to the course book.

Format: add <course code>

Note:

Example: add CS2113

Expected output:

Good Job! You have added CS2113

Add a study session for today

Add a course study session to the course book with today’s date.

Format: add <course code> <study duration in hours>

Note:

Today’s date will be used.

<study duration in hours> should be 0.5 to 24

See Appendix: Supported date formats for valid date formats.

Example: add CS2113 5

Expected output:

Good Job! You have studied 5.0 hours for CS2113

Add a study session with custom date

Add a course study session to the course book with custom date.

Format: add <course code> <study duration in hours> <date>

Note:

Future dates are not allowed. Any date strictly after today’s date will be rejected with an informative error; provide a past or today’s date.

<study duration in hours> should be 0.5 to 24

See Appendix: Supported date formats for valid date formats.

Example: add CS2113 5 04/11/2025

Expected output:

Good Job! You have studied 5.0 hours for CS2113

List all added courses

Show a list of all courses in the course book. (Does not show study sessions and time logged)

Format: list

Expected output:

List of courses:
1. CS2113
2. CS1231
3. MA1501

List study sessions for a course

Show a list of all study sessions for a course in the course book.

Format: list <course code>

Example: list CS2113

Expected output:

List of study sessions
1. CS2113 - 3.0 hours at 25 Oct 2025
2. CS2113 - 1.0 hours at 25 Oct 2025
3. CS2113 - 4.0 hours at 25 Oct 2025

Edit a course code

Edit an old course code with a new course code. The old course must exist beforehand.

Format: edit <old course code> <new course code>

Example: edit CS2113 MA1511

Expected output:

NOTE: Successfully renamed course CS2113 to MA1511

Edit study session hours for a course

Edit the study session hours for a course in the course book.

Format: edit <course code> <session index> <new study duration in hours>

Example: edit CS2113 1 2

Expected output:

Session hours changed to 2.0 hours

Edit study session date for a course

Edit the study session date for a course in the course book.

Format: edit <course code> <session index> <new date>

See Appendix: Supported date formats for valid date formats.

Example: edit CS2113 1 23/10/2025

Expected output:

Session Date change to 23 Oct 2025

Filter by course code

Show all courses whose codes match the given course keyword.

Format: filter <course>

Example: filter MA1511

Expected output:

Filtered courses matching "MA1511"
1. MA1511
2. MA1511X

Behaviour notes:

Filter by date

Show all courses that have sessions on the specified date (useful to see which courses had activity that day).

Format: filter <date>

See Appendix: Supported date formats for valid date formats.

Example: filter 23/10/2025

Expected output:

Courses with sessions on 23 Oct 2025
1. CS2113
2. MA1511
3. CS1231

Behaviour notes:

Filter by course code and date

Show sessions for the specified course code that occurred on the given date.

Format: filter <course> <date>

See Appendix: Supported date formats for valid date formats.

Example: filter MA1511 23/10/2025

Expected output:

Sessions for MA1511 on 23 Oct 2025
1. MA1511 - 3.0 hours at 23 Oct 2025
2. MA1511 - 1.0 hours at 23 Oct 2025

Behaviour notes:

Reset hours for a course

Reset session hours for a specified course or all courses in the course book. Double confirmation flow is implemented to prevent accidental deletion. At second confirmation, if the required safeword does not match user’s input, the reset operation cancels.

Format: reset <course>, or reset all

Example: reset CS2113

Expected output (> indicates user input, but is not shown in the program):

Are you sure of resetting hours for CS2113 (y/n)?
> y
Please type "RESET" to double confirm reset hours for CS2113
> RESET
Confirmation successful
Logged hours for CS2113 have been reset

Example: reset all

Expected output (> indicates user input, but is not shown in the program):

Are you sure you want to reset hours for ALL courses? (y/n)
> y
Please type "RESET ALL" to double confirm reset hours for CS2113
> RESET ALL
Confirmation successful
Logged hours for all courses have been reset

Delete a course

Delete the specific course in the course book.

Format: delete <course code>

Example: delete CS2113

Expected output (> indicates user input, but is not shown in the program):

Are you sure you want to delete CS2113 (y/n)?
> y
NOTE: You have deleted CS2113 from Course Book

Delete a session by index

Delete the specified session of a specified course in the course book.

Format: delete <course code> <index>

Example: delete CS2113 2

Expected output:

Session 2 was successsfuly deleted for CS2113
Deleted session: CS2113 - 5.0 hours on 26 Oct 2025

Delete a session by date

Delete the sessions from a specified date for all courses in the course book.

Format: delete <date>

See Appendix: Supported date formats for valid date formats.

Example: delete 26/10/2025

Expected output:

Successfully deleted 3 session(s) on 26 Oct 2025.

Exit NUStudy

Exit the NUStudy program

Format: exit

Expected output:

Exiting App. Goodbye!

Data Integrity and Safety

NUStudy automatically saves your study data into a file called NUStudy.txt in the data folder. It is important to understand how data validation works to keep your information safe!

When NUStudy detects problems while loading your datafile, you might encouter this…

For example, when you accidentally keyed in an extra -23 at the back of 2025-11-03:

=== Entries with issues ===

Entry ignored: S	CS2113	10.0	2025-11-03-23
Reason: Failed to parse study session date

=== Entries with issues ===

Do not panic! You can add your corrupted entries again similar to when you add a course or session for the first time. You can refer to the list of skipped entries for reference.

Therefore, here are some tips for you…

  1. Backup regularly! Copy NUStudy.txt into a USB drive or cloud storage once a week
  2. Use the app, not a text editor! Always use NUStudy commands instead of manually editing the file unless you are familiar with CLI applications

Input character rules:

Command summary

Type Action Format Example
Help Help help help
Add Add a course add <course code> add CS2113
  Add a study session for today add <course code> <study duration in hours> add CS2113 5
  Add a study session with custom date add <course code> <study duration in hours> <date> add CS2113 5 04/11/2025
List List all added courses list list
  List study sessions for a course list <course code> list CS2113
Edit Edit a course code edit <old course code> <new course code> edit CS2113 MA1511
  Edit study session hours for a course edit <course code> <session index> <new study duration in hours> edit CS2113 1 2
  Edit study session date for a course edit <course code> <session index> <new date> edit CS2113 1 23/10/2025
Filter Filter by course code filter <course> filter MA1511
  Filter by date filter <date> filter 23/10/2025
  Filter by course code and date filter <course> <date> filter MA1511 23/10/2025
Reset Reset hours for a course reset <course>, or reset all reset CS2113
Delete Delete a course delete <course code> delete CS2113
  Delete a session by index delete <course code> <index> delete CS2113 2
  Delete a session by date delete <date> delete 26/10/2025
Exit Exit NUStudy exit exit

Appendix: Supported date formats

NUStudy supports the following date formats (cannot be future dates and dates strictly after today’s date will be rejected):

Appendix: Supported hour range

NUStudy supports hours starting from 0.5 to 24, with 0.5 increment only.