By: Team W16-4
Since: Mar 2020
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. General
- 3.2. Calendar
- 3.3. Notes
- 3.4. Address Book
- 3.5. Profile / Module Book (Part 1: Manage your modules)
- 3.6. Profile / Module Book (Part 2: Manage your tasks separately for each module)
- 3.7. Module planning
- 3.8. Diary
- 3.8.1. Adding an diary entry:
diaryAdd
- 3.8.2. Viewing diary logs:
diaryLog
- 3.8.3. Viewing diary entries with specified entry ID:
diaryShow
- 3.8.4. Viewing diary entries with specified date:
diaryShow
- 3.8.5. Deleting an diary entry:
diaryDelete
- 3.8.6. Tagging weather:
diaryWeather
- 3.8.7. Tagging mood:
diaryMood
- 3.8.1. Adding an diary entry:
- 4. Command Summary
- 5. Glossary
- 6. FAQ
-
NUSProductivity is an application designed for all NUS students to better manage their school work. The app is set out to enhance your productivity in school through 5 main features, module planning, CAP (cumulative average point) tracking, note taking, deadline and task listing, and finally, diary logging. This app is designed only for NUS students for now with the possibility to customise it for students from other universities in the future. More importantly, NUSProductivity 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). Read on to get you started on using the application!
-
The purpose of this document is for you to familiarise yourself with the functions and capabilities of what NUSProductivity can do.
-
The image below shows the different parts of the user interface of NUSProductivity
This section allows you to start up NUSProductivity with ease. Detailed steps are listed below.
-
Ensure you have Java
11
or above installed on your computer, if not you can refer to the guide below -
Download the latest version of
NUSProductivity.jar
here. -
Copy the file to the folder you want to use as the home folder for NUSProductivity.
-
Double-click the file to start the app. The GUI should appear in a few seconds (screenshot of GUI shown below).
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
search
CS2103T
: searches for the moduleCS2103T
-
calendar
: Allows you to switch to the calendar tab -
deadlineAdd desc/Finish homework by/30-04-2020 cat/School
: schedules a deadline on the calendar for you to finish your homework -
cap
: calculates your CAP -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
This section shows the detailed list of usable commands.
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable.
The calendar feature in the app that allows you to schedule and set deadline for important tasks such as project or assignment deadlines.
The application allows you to add 2 type of tasks, deadline
and moduleTask
.
moduleTask
allows you to tag a module, that you have already inputted in your Profile tab, to the task itself. It allows you to set the priority level of the task.
deadline
allows you to input a deadline event into the calendar without any specified modules attached to it.
We give you the flexibility to choose and indicate what priority each moduleTask
should have. This priority is represented from 1 to 5, with 1 being the lowest priority and 5 being the highest.
-
Schedules a task tagged with a deadline to the calendar. A dot will be shown to indicate there is a deadline to be met on that day
-
Format:
deadlineAdd desc/DESCRIPTION by/DD-MM-YYYY cat/CATEGORY
After invoking the command, the deadline will be added to the calendar as shown in figure 5. The task will be tagged as light grey to signify it is uncompleted yet.
Deadline tasks are defaulty tagged with the lowest priority.
-
Schedules a module task, this module task includes priority level, module that is associated with the task.
-
Format:
moduleTask desc/DESCRIPTION m/MODULE_CODE date/DD-MM-YYYY pri/PRIORITY-LEVEL
ℹ️
|
This requires you to add a module under moduleAdd before you can use it
|
The commands stated in this section can be used for both moduleTask and deadline tasks.
-
Marks a task as completed, completed task will be shown with a black background while uncompleted task will be shown as a grey background.
-
Format:
done index/INDEX
After a task is completed, it will be pushed to the bottom, the dot on the calendar removed and the background of the task is changed to black to signify the task is compelted.
-
Deletes a task from the deadline list, marking the task as done
-
Format:
taskDelete index/INDEX
💡
|
Tip: delete a task only after the date have passed to make sure everything is completed up to your current date |
-
Allows you to sort the tasks list on the left by either date or priority. This gives you the flexibility to plan ahead, whether you want to complete a more urgent task or to complete a task with the deadline that is earlier
-
Format:
sortTask by/SORT
ℹ️
|
SORT can only be either date or priority |
-
Allows you to see task at a glance based on what you specified.
-
Format:
findTask m/MODULECODE
orfindTask cat/CATEGORY
orfindTask date/DD-MM-YYYY
ℹ️
|
The dots on the calendar will not disappear and will show that there is still task to be completed on that date despite filtering |
-
Allows you to create notes from the application, making it easier for you to find your files since often time students have a lot of research papers or references opened when writing a report.
-
Allows for users to create documents for notes, organise their notes in folders. Default location is set to
/User/<ACCOUNT NAME>
for macC:\Users\<ACCOUNT NAME>
for windows
-
The notes feature allows you to specify the pathing used to access the file/folder you specify
-
The diagram below shows a comparision between absolute vs relative pathing
💡
|
if you want to access the Documents folder as shown in figure 13, you can use the absolute pathing and specify loc/Desktop instead of typing loc/../../../Documents |
-
List the directory that you supplied. The display will show all folders that is in that directory.
-
Format:
notesList loc/PATH pt/PATH TYPE
-
Creates a file/directory based on what you specified.
-
Format:
notesCreate loc/PATH name/FILE_NAME type/TYPE pt/PATH_TYPE
ℹ️
|
The type can only be file or folder |
-
Opens a file/directory based on what you specified.
-
Format:
notesOpen loc/PATH name/FILE_NAME pt/PATH_TYPE
The address book allows you to add other individuals, such as professors and fellow classmates to your addressbook. Information such as phone number and email of the person will be saved into the address book for easier communication for projects or to schedule consultation relating to the module.
-
Adds a person to the address book.
-
Format:
add n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…
💡
|
A person can have any number of tags (including 0) |
-
Examples:
-
add n/John Doe p/98765432 e/[email protected]
-
add n/Betsy Crowe t/friend e/[email protected] p/1234567 t/criminal
-
-
Edits an existing person in the address book.
-
Format:
contactEdit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]…
-
Edits the person at the specified INDEX. The index refers to the index number shown in the displayed person list. The index must be a positive integer 1, 2, 3, …
-
At least one of the optional fields must be provided.
-
Existing values will be updated to the input values.
-
When editing tags, the existing tags of the person will be removed i.e. adding of tags is not cumulative.
-
You can remove all the person’s tags by typing t/ without specifying any tags after it.
-
Examples:
-
edit 1 p/91234567 e/[email protected]
Edits the phone number and email address of the 1st person to be91234567
and[email protected]
respectively. -
edit 2 n/Betsy Crower t/
Edits the name of the2nd person
to beBetsy Crower
and clears all existing tags.
-
-
Finds persons whose names contain any of the given keywords.
-
Format:
find KEYWORD [MORE_KEYWORDS]
-
The search is case insensitive. e.g. hans will match Hans
-
The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
-
Only the name is searched.
-
Only full words will be matched e.g. Han will not match Hans
-
Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang
-
After a find operation, use
list
to get back the original list for address book.
-
Examples:
-
find John
Returnsjohn
andJohn Doe
-
find Betsy Tim John
Returns any person having namesBetsy
,Tim
, orJohn
-
-
Deletes the specified person from the address book.
-
Format:
delete INDEX
-
Deletes the person at the specified INDEX.
-
The index refers to the index number shown in the displayed person list.
-
The index must be a positive integer 1, 2, 3, …
-
Examples:
-
list
delete 2
Deletes the 2nd person in the address book. -
find Betsy
delete 1
Deletes the 1st person in the results of the find command.
-
-
This feature allows individuals to see their own profile, their current cap and the all modules that the individual have taken and all the grades gotten.
-
Adds a module you have taken before or is taking now and store your grade for each module if you want.
-
Format:
moduleAdd m/MODULE_CODE [g/GRADE]
💡
|
The grade field is optional. You can state your grade when you add in modules and also can update or add in your grade later. |
-
You can only add in modules which are valid modules that can be taken in NUS.
-
All other module codes inputted will be considered as invalid and the program will not allow you to add in.
-
This requirement is not case sensitive, which means for example, both "CS2103" and "cs2103" are considered valid module code.
💡
|
The program checks whether a module code provided is valid or not by using the search function in module planning feature, which fetch information about modules online. If the search function fails to fetch any information, the module code will be treated as invalid. |
-
Example:
-
moduleAdd m/CS2103
-
moduleAdd m/cs1101s g/A
-
-
Deletes a module you have added to the program before from the profile tab.
-
Format:
moduleDel MODULE_CODE
-
Deletes the module specified from the module book (profile)
-
You can only delete the module which you have added into the program before.
-
Module code inputted is not case sensitive ('moduleDel cs2103' is the same as 'moduleDel CS2103')
-
Example:
-
moduleDel CS2103
Delete CS2103 from module book if you have added it before.
-
-
Updates or adds the grade of certain modules you have added to the program.
-
Format:
grade m/MODULE_CODE g/GRADE
-
Updates the grade of the specified module as the grade you provided now.
-
You can only update the grade of module which you have added into the program before.
-
Grade inputted should be a valid grade in NUS’s grading system.
-
Both module code and grade inputted is not case sensitive.
💡
|
List of all valid grade: A+, A, A-, B+, B, B-, C+, C, D+, D, F, S and U. |
-
Example:
-
grade m/CS1101S g/S
-
grade m/CS2103 g/A
-
-
Shows your current cap based on the grades of modules you have stated.
-
Format:
cap
-
Calculates your current CAP.
-
CAP = Sum (module grade point x modular credits for the module) / Sum (modular credits)
-
The calculation strictly follow the grading system of NUS.
-
Shows current CAP in in result display panel, CAP on UI will only get updated after you restart.
💡
|
You don’t need to indicate the modular credits for each module when you add it in because the program will fetch that infomation online. |
Most of the functionality here has been integrate into the Calendar feature but these commands left here still can be used. You can give it a try if you want.
ℹ️
|
These tasks related to certain module are called 'module task' from now on. |
💡
|
All commands that make changes to the module tasks will be synchronous for both module book and the task list in calendar feature. |
❗
|
For this part, the UI hasn’t been implemented yet but you are able to see the updated list of module tasks in command line. |
❗
|
Most functionality covered in this part can also be achieved by some commands in Calendar feature above. Just provides users with an alternative way. (The orders of tasks shown are different. Thus, the index inputted may be different to achieve the same modification.) |
ℹ️
|
This command has been covered in Calendar feature already. |
-
Adds a module task related to certain module you have added before in module book.
-
You need to indicate which module the task is related to, its priority level (how important it is) and also its deadline or scheduled timing.
-
Format:
moduleTask desc/DESCRIPTION m/MODULE_CODE date/DEADLINE_OR_SCHEDULED_TIMING pri/PRIORITY
🔥
|
The date inputted should be in the format: DD-MM-YYYY. |
-
This command allows you to create tasks to certain module you added to the program before.
-
Stores the task added in the module book and automatically adds and shows on the Calender.
-
You will get an updated list of tasks related to that specific module after adding. (shown in command line)
-
Example:
-
moduleTask desc/essay m/CS2101 date/02-04-2020 pri/3
Add a module task as specified in module book and also shows on calendar.
-
💡
|
You can also view module tasks in calendar using findModule m/MODULE_CODE
|
-
Lists all module tasks related to the specific module.
-
Format:
listModuleTasks MODULE_CODE
-
Lists all module tasks related to that module in in result display panel.
-
Module code inputted must be valid module code you have added in before.
-
Example:
-
listModuleTasks CS2103
Lists all module tasks of CS2103.
-
-
Deletes the specified module tasks for certain module from the module book and calendar.
-
Format:
taskDelete m/MODULE_CODE index/INDEX
ℹ️
|
This command is similar to the taskDelete command in Calendar feature but you need to specify the module code.
|
-
Deletes the module task at the specified INDEX.
-
The index refers to the index number shown in result display panel (you can get that by entering 'listModuleTasks MODULE_CODE')
-
The index must be a positive integer 1, 2, 3, …
🔥
|
Only refer to the index of tasks shown in command line when performing this command. (not the one in calendar) |
-
Example:
-
taskDelete m/CS2103 index/1
Deletes the first module task for CS2103 in module book and Calendar.
(First task in module book and may not be the first in Calendar even after performingfindTask m/cs2103
)
-
-
Marks the specified module tasks for certain module as done in the module book and calendar.
-
Format:
done m/MODULE_CODE index/Index
ℹ️
|
This command is similar to the done command in Calendar feature but you need to specify the module code.
|
-
Deletes the module task at the specified INDEX.
-
The index refers to the index number shown in the in result display panel (you can get that by entering 'listModuleTasks MODULE_CODE')
-
The index must be a positive integer 1, 2, 3, …
🔥
|
Only refer to the index of tasks shown in result display panel when performing this command. (not the one in calendar) |
-
Example:
-
done m/cs2103 index/1
Marks the first module task for module cs2103 as done.
-
❗
|
Clarification for taskDelete and done commands.If you did not provide specific module code in the command, the index required refers to the index of list of tasks shown in calendar tab. Otherwise, it refers to the index of list of module tasks shown in the result display panel. For example: taskDelete m/cs2103 index/1 will delete the first task as shown in Figure 26taskDelete index/1 will delete the first task shown in the task list in calendar tab.
|
-
Shows the how many tasks are there in total and how many tasks haven’t been completed yet for each module.
-
Format:
taskBreakdown
-
Shows the modules requirement for the major specified. This function will show the core modules that the individual have to take before graduation but have not taken yet.
-
Format:
modreq MAJOR
-
Example:
-
modreq computer science
-
The diary feature allows you to jot down any thoughts, be it for your personal life or for school work, or just a concept that you may not understand that you will have to revisit in the future.
-
Adds a diary entry to the diary book.
-
Format:
diaryAdd ec/ENTRY_CONTENT
-
Shows the diary entry for the specified entry ID.
-
Format:
diaryShow id/ENTRY_ID
-
Shows the diary entry at the specified date if there is any, date needs to be in DD-MM-YYYY.
-
Format:
diaryShow date/DATE
-
Deletes the specified diary ID’s entry.
-
Format:
diaryDelete id/ENTRY_ID
-
Tags the diary with the specific ID with a specific weather (e.g. sunny, cloudy)
-
Format:
diaryWeather id/ENTRY_ID w/WEATHER
This section summarizes the list of commands.
-
General:
-
calendar:
calendar
-
notes:
notes
-
modplan:
modplan
-
diary:
diary
-
profile:
profile
-
help:
help
-
exit:
exit
-
-
Calendar:
-
deadline :
deadlineAdd desc/DESCRIPTION by/DD-MM-YYYY cat/CATEGORY
e.g.deadlineAdd desc/Do Chores by/30-04-2020 cat/Misc
-
moduleTask:
moduleTask desc/DESCRIPTION m/MODULE CODE date/DD-MM-YYYY pri/PRIORITY
e.g.moduleTask desc/Project Deadline date/30-04-2020 m/CS2103T pri/5
-
done:
done index/INDEX
e.g.done index/1
-
taskDelete:
taskDelete index/INDEX
e.g.taskDelete index/1
-
sortTask:
sortTask by/SORTING_PARAM
e.g.sortTask by/priority
-
findTask:
findTask m/MODULECODE
orfindTask cat/CATEGORY
orfindTask date/DD-MM-YYYY
e.g.findTask m/CS2103T
-
listTask:
listTask
e.g.listTask
-
-
Notes
-
notesList loc/PATH pt/PATH TYPE e.g.
notesList loc/Desktop pt/abs
-
notesOpen loc/PATH name/FILE_NAME pt/PATH_TYPE e.g.
notesOpen loc/Desktop name/test.doc pt/abs
-
notesCreate loc/PATH name/FILE_NAME type/TYPE pt/PATH_TYPE e.g.
notesCreate loc/Desktop/ name/Test.doc type/file pt/abs
-
notesDelete loc/PATH name/FILE_NAME pt/PATH_TYPE e.g.
notesDelete loc/Desktop/ name/Test.doc pt/abs
-
-
Address Book:
-
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…
e.g.add n/James Ho p/22224444 e/[email protected] t/friend t/colleague
-
clear : clear
-
delete : delete INDEX
e.g.delete 3
-
edit : edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG]…
e.g.edit 2 n/James Lee e/[email protected]
-
find : find KEYWORD [MORE_KEYWORDS]
e.g.find James Jake
-
list: list
-
-
Profile (Module Book)
-
moduleAdd m/MODULE_CODE [g/GRADE]
e.g.moduleAdd m/cs2103 g/A
-
moduleDel*MODULE_CODE
e.g.moduleDel CS2103
-
grade m/MODULE_CODE g/GRADE
e.g.grade m/cs2103 g/A
-
cap
-
moduleTask desc/DESCRIPTION m/MODULE CODE date/DD-MM-YYYY pri/PRIORITY
e.g.moduleTask desc/Project m/CS2103T date/30-04-2020 pri/5
-
taskDelete m/MODULE_CODE index/INDEX e.g.
taskDelete m/cs2103 index/1
-
done m/MODULE_CODE index/INDEX e.g.
done m/cs2103 index/1
-
listModuleTasks m/MODULE_CODE e.g.
listModuleTasks m/CS2103
-
taskBreakdown
-
-
Diary :
-
diary log LIMIT e.g.
diary log 10
-
diary show ENTRY ID e.g.
diary show 3
-
diary show DD-MM-YYYY e.g.
diary show 30-03-2020
-
diary add ENTRY e.g.
diary add "Today is a good day"
-
diary delete ENTRY ID e.g.
diary delete 1
-
diary weather ID WEATHER e.g.
diary weather 1 SUNNY
-
diary emotion ID EMOTION e.g.
diary emotion 1 HAPPY
-
-
Mod Plan:
-
search MODULE_CODE
e.g.search CS2103T
-
mymodplan: mymodplan (coming in v2.0)
-
mymodplan add MODULE CODE e.g.
mymodplan add CS2103T
(coming in v2.0) -
mymodplan done MODULE CODE e.g.
mymodplan done CS2103T
(coming in v2.0) -
modreq : modreq {\MAJOR} + (coming in v2.0) e.g.
modreq computer science
-
-
NUS : National University of Singapore
-
CAP : The Cumulative Average Point is the weighted average grade point of the letter grades of all the modules taken by the students, according to NUS’s grading system.
-
CLI : Command Line Interface
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous fitness log book folder.
Q: How do I save my data in my own PC?
A: NusProductivity saves your data of all your modules, grades and tasks after you make changes.