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.
java -jar ./path/to/NUStudy.jarLists 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 to the course book.
Format: add <course code>
Note:
- Course codes are case-insensitive.
- Uniqueness is enforced by course code (ignoring case).
Example: add CS2113
Expected output:
Good Job! You have added CS2113
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 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
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
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 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 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 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
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:
No courses matched "XYZ").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:
No sessions found on 23 Oct 2025).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:
No sessions found for MA1511 on 23 Oct 2025).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 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 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 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 the NUStudy program
Format: exit
Expected output:
Exiting App. Goodbye!
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…
NUStudy.txt into a USB drive or cloud storage once a weekInput character rules:
-, _, /) for flexibility.| 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 |
NUStudy supports the following date formats (cannot be future dates and dates strictly after today’s date will be rejected):
yyyy-MM-dd (e.g. 2025-10-25)d/M/yyyy (e.g. 25/10/2025)d-M-yyyy (e.g. 25-10-2025)NUStudy supports hours starting from 0.5 to 24, with 0.5 increment only.