iGraduate User Guide
By: W09-2 Latest update: 12 April 2021

Table of Contents
- Introduction
- User Guide Usage
- Quick Start
- Features
- Storage of Data
- Manual Modification of Data
- Frequently Asked Questions
- Command Summary
Introduction
iGraduate is a command line application that acts as a centralised hub for NUS students Majoring in Information Security to plan their academic journey. With tools like the storing of modules, listing of modules that can be taken, an academic progression indicator and a CAP calculator, iGraduate will help students check his/her graduation progress, view modules taken based on programme requirements and make informed decisions about future modules.
User Guide Usage
This user guide serves as a quick introduction to the application as well as provide instructions on when to utilise each feature, the format for each command, and the expected behaviour based on different sample inputs. The User Guide also explains when modules are stored in the computer and how it can be accessed and modified. There is also a list of frequently asked questions to answer any common queries. Finally, the user guide provides a summary of all commands, and the expected input for each command.
The following symbols are used in this user guide:
| Symbols/Formatting | Description |
|---|---|
| ℹ️ Note: | Information to take note of. |
Grey highlight |
Code or terms related to the application. |
[] |
Optional parameter. |
<> |
Include only one compulsory value from choices. |
Quick Start
ℹ️ Note: The recommended operating system for iGraduate is Windows 10
- Make sure you have Java version 11 installed on your computer. If you do not have Java 11 installed on your computer,
you can install it from here.
ℹ️ Note: You can check your version of Java by entering the command
java -versionon a command line interface like Command Prompt. - Download
iGraduate.jarfrom the latest GitHub release here. - Copy the file to the folder you want to use as the home folder for your iGraduate program.
- Run the program in command prompt using
java -jar iGraduate.jarcommand. - If the set-up is successful, the programme would look like this:
Starting without existing module data... Initializing new module list... -------------------------------------------------------------------------------------- _ ____ _ _ (_)/ ___|_ __ __ _ __| |_ _ __ _| |_ ___ | | | _| '__/ _` |/ _` | | | |/ _` | __/ _ \ | | |_| | | | (_| | (_| | |_| | (_| | || __/ |_|\____|_| \__,_|\__,_|\__,_|\__,_|\__\___| iGraduate starting up... Welcome to iGraduate, your one stop study planning service! What would you like to do today? --------------------------------------------------------------------------------------
Features
iGraduate works by tracking the modules you have taken, is taking or intend to take and collating them into a list. iGraduate comes with various features that help you track your academic journey with the use of different commands. The following section outlines the various commands supported by iGraduate, its proper usages and expected behaviours.
Add a new module: add
Adds a new module to the list of modules. This module can be one that you have taken, is taking or intend to take. You need the module’s name, module code, module type and number of MCs to add the module. You can also add any prerequisites to the module.
Format:
add <name> -c <module code> -t <core|math|ue|ge> -mc <number of credits> [-p <prerequisite1,prerequisite2,...>]
ℹ️ Note:
- If you have to add prerequisite modules, please ensure that all the prerequisite modules are already added before proceeding.
- The maximum MCs allowed for a single module in iGraduate is 32.
- The minimum MCs allowed for a single module in iGraduate is 1.
- iGraduate only supports module codes that conform to NUS style module codes.
- Examples of valid codes include
CS1010,MA1101R,UTC1102BandUIS3952CS.- Module codes are case-insensitive. This means that module codes like
CS2102andcs2102are considered the same.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the add command and its expected output(s).
add Journey of the Innovator -c CP2201 -t ue -mc 2
--------------------------------------------------------------------------------------
Added CP2201 Journey of the Innovator to the list. (2.0MCs)
[E][X] CP2201 Journey of the Innovator NIL 2 MC
--------------------------------------------------------------------------------------
Figure 1.1.1 Expected results from adding the unrestricted elective module Journey of the
Innovator, a 2 credit module with the code CP2201, without any prerequisites.
add Introduction to Operating Systems -c CS2106 -t core -mc 4 -p CS2100
--------------------------------------------------------------------------------------
Added CS2106 Introduction to Operating Systems to the list. (4.0MCs)
List of pre-requisites needed to take CS2106: CS2100
[C][X] CS2106 Introduction to Operating Systems NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.1.2 Expected results from adding the core module Introduction to Operating Systems, a
4 credit module with the code CS2106, with the prerequisite CS2100.
Delete existing module: delete
Deletes an existing module from the list of modules via the module code. The delete command allows you to make any changes to the planning of modules throughout the semester.
Format:
delete <module code>
ℹ️ Note:
- The module must not be a prerequisite of another module.
- Module codes are case-insensitive. This means that module codes like
CS2102andcs2102are considered the same.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the delete command and its expected output(s).
delete CS2100
--------------------------------------------------------------------------------------
"Core" module CS2100 has been deleted.
--------------------------------------------------------------------------------------
Figure 1.2.1 Expected results from deleting the core module with the code CS2100.
delete CP2201
--------------------------------------------------------------------------------------
"Elective" module CP2201 has been deleted.
--------------------------------------------------------------------------------------
Figure 1.2.2 Expected results from deleting the elective module with the code CP2201.
Update module information: update
Updates relevant information (module name, MCs, prerequisites and/or grade) for the selected module on the list. You can arrange the information in any order or change multiple information in one command. The update command allows you to make any changes to the module information in the event of mistakes or unexpected changes to the module.
Format:
update <module code> [-n <name>] [-mc <credit>] [-g <grade>] [-p <prerequisite1,prerequisite2,...>]
ℹ️ Note:
- You cannot change the module type and code as iGraduate uses them to identify the modules. If you would like to remove the modules, use the
deletecommand instead.- You can only update a module’s grade if the module has been completed (see
donecommand).- You cannot update the grade of an incomplete module.
- Although all parameters are optional, the update command requires at least 1 parameter to be used.
- Module codes are case-insensitive. This means that module codes like
CS2102andcs2102are considered the same.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the update command and its expected output(s).
update CS2106 -n Introduction to Operating Systems -mc 4 -g A -p CS1010,CS2100
--------------------------------------------------------------------------------------
Nice! I've updated this module:
[C][O] CS2106 Introduction to Operating Systems A 4 MC
--------------------------------------------------------------------------------------
Figure 1.3.1 Expected results from updating the credit, grade and prerequisites of the module with the code CS2106. The credit was updated to 4, grade to A and prerequisites to CS1010 and CS2100.
Mark a module as complete: done
The done command marks a module on the list as completed. In addition, you must include the grade obtained to facilitate the calculation of CAP. If you would like to modify the grades, use the update command.
Format:
done <module code> -g <grade>
ℹ️ Note:
- Only the following letter grades (A+, A, A-, B+, B, B-, C+, C, D+, D, F, S, U, CS, CU) are valid.
- Module codes are case-insensitive. This means that module codes like
CS2102andcs2102are considered the same.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the done command and its expected output(s).
done CS2106 -g A
--------------------------------------------------------------------------------------
Nice! I've updated this module:
[C][O] CS2106 Introduction to Operating Systems A 4 MC
--------------------------------------------------------------------------------------
Figure 1.4.1 Expected results from marking the module with the code CS2106 with the grade A as done.
done GES1041 -g S
--------------------------------------------------------------------------------------
Nice! I've marked this module as done:
[G][O] GES1041 Everyday Ethics in Singapore S 4 MC
--------------------------------------------------------------------------------------
Figure 1.4.2 Expected results from marking the module with the code GES1041 with the grade S as done.
Show module information: info
The info command shows the information of the specified module in a detailed manner. All information related to the specified module including its prerequisites will be shown to you.
Format:
info <module code>
ℹ️ Note: Module codes are case-insensitive. This means that module codes like
CS2102andcs2102are considered the same.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the info command and its expected output(s).
info CS2106
--------------------------------------------------------------------------------------
Printing CS2106 module information...
Module Type : Core
Module Code : CS2106
Module Name : Introduction to Operating Systems
Modular Credits : 4.0 MC
Status : not taken
Grade : NIL
Prerequisites : [CS2100]
Incomplete Prerequisites : [CS2100]
Prerequisite for : []
--------------------------------------------------------------------------------------
Figure 1.5.1 Expected results from showing the detailed information of CS2106, a core module.
info ger1000
--------------------------------------------------------------------------------------
Printing GER1000 module information...
Module Type : GE
Module Code : GER1000
Module Name : Quantitative Reasoning
Modular Credits : 4.0 MC
Status : taken
Grade : A
Prerequisites : []
Incomplete Prerequisites : []
Prerequisite for : []
--------------------------------------------------------------------------------------
Figure 1.5.2 Expected results from showing the detailed information of GER1000, a GE module.
List modules: list
The list command lists modules based on the option you provided. There are four main options, all, incomplete, complete and available.
all- lists all modules on your list
complete- lists all modules that have been taken
incomplete- lists all added modules that has not been completed (i.e. modules that you are currently taking or yet to take)
available- lists all incomplete modules that can be taken based on prerequisites fulfilled.
You could also list specific type of modules by specifying a valid module type, core, elec, ge or math as an option. The list shows all module details
excluding the module prerequisites.
Format:
list <all|incomplete|complete|available|core|elec|ge|math>
ℹ️ Note: If a module is completed, the module
gradeattained is displayed. Otherwise, aNILis displayed instead.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the list command and its expected output(s).
list all
--------------------------------------------------------------------------------------
Module List:
1: [C][O] CS1010 Introduction to Programming B+ 4 MC
2: [G][O] GES1041 Everyday Ethics in Singapore S 4 MC
3: [C][X] CS2100 Computer Organisation NIL 4 MC
4: [C][X] CS2106 Introduction to Operating Systems NIL 4 MC
5: [G][X] GER1000 Quantitative Reasoning NIL 4 MC
6: [M][O] MA1521 Calculus for Computing A- 4 MC
7. [E][X] LAJ1201 Japanese 1 NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.1 Expected results from listing all modules. The list includes all module information that has been added.
list incomplete
--------------------------------------------------------------------------------------
Modules you have yet to complete:
1: [C][X] CS2100 Computer Organisation NIL 4 MC
2: [C][X] CS2106 Introduction to Operating Systems NIL 4 MC
3: [G][X] GER1000 Quantitative Reasoning NIL 4 MC
4. [E][X] LAJ1201 Japanese 1 NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.2 Expected results from listing incomplete modules. The list includes the module information that has been added but has not been completed (indicated with an “X”).
list complete
--------------------------------------------------------------------------------------
Modules you have have completed:
1: [C][O] CS1010 Introduction to Programming B+ 4 MC
2: [G][O] GES1041 Everyday Ethics in Singapore S 4 MC
3: [M][O] MA1521 Calculus for Computing A- 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.3 Expected results from listing completed modules. The list includes the module information that has been completed (indicated with an “O”).
list available
--------------------------------------------------------------------------------------
Modules can be taken:
1: [C][X] CS2100 Computer Organisation NIL 4 MC
2: [G][X] GER1000 Quantitative Reasoning NIL 4 MC
3. [E][X] LAJ1201 Japanese 1 NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.4 Expected results from listing available modules. The list includes the module information that has been added and can be taken (with all prerequisites fulfilled).
list core
--------------------------------------------------------------------------------------
Core modules in the list:
1: [C][O] CS1010 Introduction to Programming B+ 4 MC
2: [C][X] CS2100 Computer Organisation NIL 4 MC
3: [C][X] CS2106 Introduction to Operating Systems NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.5 Expected results from listing core modules. This option will list out all core modules on the list.
list elec
--------------------------------------------------------------------------------------
Elective modules in the list:
1. [E][X] LAJ1201 Japanese 1 NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.6 Expected results from listing elec modules. This option will list out all unrestricted elective modules on the list.
list ge
--------------------------------------------------------------------------------------
GE modules in the list:
1: [G][O] GES1041 Everyday Ethics in Singapore S 4 MC
2: [G][X] GER1000 Quantitative Reasoning NIL 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.7 Expected results from listing ge modules. This option will list out all general elective modules on the list.
list math
--------------------------------------------------------------------------------------
Math modules in the list:
1: [M][O] MA1521 Calculus for Computing A- 4 MC
--------------------------------------------------------------------------------------
Figure 1.6.8 Expected results from listing math modules. This option will list out all mathematics modules on the list.
Show academic progression: progress
Displays a bar that represents the current progress of your academic career. The progress bar shows the percentage of your total completed module credits against the total number of credits needed for fulfilling the graduation requirements. The bar will fill up as more module credits are completed.
Format:
progress
ℹ️ Note:
- The number of modular credits used to calculate the progress bar is
160, the graduation requirement of an NUS single-degree Information Security undergraduate student- If the total number of completed MCs exceeds 160, the progress bar will still display
100%. (See Q7 of FAQ)
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the progress command and its expected output(s).
progress
--------------------------------------------------------------------------------------
Progress:
░░░░░░░░░░░ 5.00%
8MCs/160MCs Completed
--------------------------------------------------------------------------------------
Figure 1.7.1 Expected results when 8 out of the 160 MCs has been completed (5% completion)
Calculate CAP: cap
Calculates your current Cumulative Average Point (CAP) according to the modules you have completed with the grade obtained (i.e. A+ to F). The cap command also displays the current degree classification based on the CAP calculated.
ℹ️ Note: Modules with Satisfactory/Unsatisfactory (S/U) grades are not calculated in the CAP.
Format:
cap
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the cap command and its expected output(s).
cap
--------------------------------------------------------------------------------------
Current CAP: 4.00
Current Degree Classification: Honours (Distinction)
--------------------------------------------------------------------------------------
Figure 1.8.1 Expected results from running the cap command based on the modules in the previous sections (see list complete for the list of modules used to calculate this cap)
Exit the program: exit
Exits the program.
Format:
exit
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the exit command and its expected output(s).
exit
--------------------------------------------------------------------------------------
See you soon! Happy studying!
--------------------------------------------------------------------------------------
Figure 1.9.1 Expected results from exiting the program
Program Manual: help
The help command provides you a quick reference guide on the description and format of the different commands. The help command allows you to list the different commands available or their purpose and format.
Format:
help [add|delete|update|done|info|list|progress|cap|exit]
ℹ️ Note: If an optional parameter is provided,
helpwill provide a short description of the command’s functionality and format. Otherwise,helpwill provide the list of commands available.
Example of Usage(s) and Expected Outcome(s):
The following section outlines some usages of the help command and its expected output(s).
help
--------------------------------------------------------------------------------------
iGraduate is a command line application that acts as a centralised hub for NUS students majoring in Information Security to plan their academic journey.
The application comes with 9 features:
-add
-delete
-update
-done
-info
-list
-progress
-cap
-exit
Type help <command> to view further details on each command.
--------------------------------------------------------------------------------------
Figure 1.10.1 Expected results of help without any parameters.
help delete
--------------------------------------------------------------------------------------
The Delete command deletes an existing module from the list of modules added via the module code.
Syntax: delete <module code>
--------------------------------------------------------------------------------------
Figure 1.10.2 Expected results of help with delete as the parameter
Storage of Data
All data are stored automatically by iGraduate every time a module is modified (i.e. added, deleted or updated). The data will automatically loaded in when you relaunch iGraduate. No intervention is required.
Manual Modification of Data
The IGraduate application data file is stored under the same folder where the IGraduate application resides.
- You may notice a folder named
datais created and there is amodules.jsonfile inside the folder. - In
modules.json, you will find your data created in the application here. - To modify the data of existing module, simply change the value of each attribute in the
jsonfile and save it.
ℹ️ Note:
- You are advised to add or remove new module data manually only if you understand the iGraduate’s logic and
jsonformat.- Otherwise, please ensure that you modify only the value of module attributes if you are unsure of how the
jsonstructure works.- The application might not behave the way it is expected to if you modify the application data incorrectly. For example, data corruption might occur.
The sample Json format for the module data file:
[
{
"type": "core", --> Module type (core/math/elec/ge)
"code": "CS1010", --> Module code
"name": "Programming Methodology", --> Module name
"credit": 4.0, --> Modular credit
"status": "not taken", --> Module status
"grade": "NIL", --> Module grade (NIL if not assigned)
"prerequisites": [], --> Prerequisites of the module
"untakenPrerequisites": [], --> Unsatisfied prerequisites of the module
"requiredByModules": [ --> Modules required the current module as prerequisite
"CS2100",
"CS2040C"
]
},
{
...
},
...
]
Figure 1.11.1 Sample JSON file structure in modules.json
ℹ️ Note:
- All fields shown in the example
jsonfile format above are compulsory. Missing any fields above in the file will result in an error.- Please take note that you should fill in the
prerequisites,untakenPrerequisitesandrequiredByModulesfield with caution. Any wrong information will result in processing errors when performing operations.- Setting two or more modules in each other’s
requiredByModulesis strongly discouraged as it does not reflect the module requirements logic realistically and might prevent iGraduate from giving accurate advice.
Frequently Asked Questions
Q1: Can I use the application on my MacBook?
Yes! iGraduate is a cross-platform application that can be run on Windows, Linux or Mac.
Q2: Can I share my module list with my friends?
Yes! Just go into
/dataof the application folder and pass themodules.jsonfile over to your friends. Make sure your friends save themodules.jsonfile under their/datafolder as well!
Q3: Do I need internet connection when using iGraduate?
No. No internet is required as the application stores and retrieves modules information locally.
Q4: I am a NUS student who is not majoring in Information Security. Can I still use the application for module planning?
Yes, of course! Most of the features provided by the application are implemented in a generic way. However, features such as progress is more targeted towards Information Security students. Support for other majors in NUS will be implemented in the future. Stay tuned!
Q5: Is the module list only in JSON format?
Yes! Currently, module list data file is only in JSON format. However, there are various platforms available online to convert the module list into a different format.
Q6: I noticed a iGraduate-0.log file is created after running the application. What is it for?
The
iGraduate-0.logis a log file for recording the crashes, errors and anomalies occurred when running the application. You may submit the file here if you experienced any error during your use of the application for the developers to fix the problem.
Q7: I want to take more modules than my major’s graduation requirements. Does iGraduate allow me to do so?
Yes! iGraduate does not limit the number of modules you can track. This means that you can add more modules even after reaching your graduation requirements. Do note that the progress bar under
progresscommand will still display 100% even if you exceed your graduation requirements.
Command Summary
| Command | Format |
|---|---|
| add | add <name> -c <module code> -t <core\|math\|ue\|ge> -mc <number of credits> [-p <prerequisite1,prerequisite2,...>] |
| delete | delete <module code> |
| update | update <module code> [-n <name>] [-mc <credit>] [-g <grade>] [-p <prerequisite1,prerequisite2,...>] |
| done | done <module code> -g <grade> |
| info | info <module code> |
| list | list <all\|incomplete\|complete\|core\|elec\|ge\|math> |
| progress | progress |
| cap | cap |
| exit | exit |
| help | help [add\|delete\|update\|done\|info\|list\|progress\|cap\|exit] |