Avengers Assemble (AA) is a desktop app for managing contacts, meant for use with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
The application is designed for Head Tutors of the NUS CS1101S Programming Methodology course, who intend to simplify their administrative tasks relating to contact management between students, other teaching assistants, and course instructors.
This user guide provides a comprehensive overview of the Avengers Assemble's features and functionalities, and aims to guide you through its setup and usage. We will walk you through each feature in a structured manner:
By following this guide, you will be able to gain a thorough understanding of Avengers Assemble and maximize its potential to streamline your administrative tasks.
Click below to navigate the user guide:
help
clear
import
add
edit
delete
deleteShown
list
find
copy
export
exit
importExamScores
addExam
deleteExam
selectExam
deselectExam
addScore
editScore
deleteScore
Ensure you have Java 11
or above installed in your computer.
Download the latest avengersassemble.jar
here.
Copy the file to the folder you want to use as the home folder for our application.
Open a command terminal, cd
into the folder you put the jar file in, and use the java -jar avengersassemble.jar
command to run the application.
cd <path_to_the_folder_containing_the_jar_file>
java -jar avengersassemble.jar
You should see this when the app starts up. Note how it contains some sample data.
The image below shows the outline of the application, with the main sections highlighted:
The main sections are as follows:
Enter
to execute the command.These features are designed to help you manage your contacts effectively and centralizes all contact information in one place. You can import contacts from CSV files generated by external sources such as canvas and edurec, manage the contact details of each person in your contact list, and export relevant data as CSV files.
These boxes might offer you additional information of different types:
Good to know: Provides you with supporting information.
Important: Provides you with more important information that you should know.
Tip: Provides you with tips to use our app more effectively.
Caution: Provides you with warnings about potential issues you might face.
help
Copies the link of our user guide to your clipboard. Paste it into a browser to view it.
Format: help
You will see this message when you have successfully copied the link.
Before we proceed with the commands, here are some important points to note on their formatting. These points will also be repeated in the command parameter summary for you to refer to easily at any point in time.
Important:
Words in UPPER_CASE
are the parameters to be supplied by you.
e.g. in
add n|NAME
,NAME
is a parameter which can be used asadd n|John Doe
.
Prefixes encased with '[ ]' are optional.
e.g.
n|NAME [t|TAG]
can be used asn|John Doe t|friend
or asn|John Doe
.
Prefixes with '…' after them can be used multiple times.
e.g.
[t|TAG]…
can be used as(i.e. 0 times),
t|friend
(i.e 1 time),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.
Extraneous parameters for commands that do not take in parameters (such as help
, list
, exit
, copy
, export
and clear
) will be ignored.
e.g. if the command specifies
help 123
, it will be interpreted ashelp
.
Caution:
clear
Deletes all data from the application. This includes all contact information and examinations.
Format: clear
Caution:
Using clear will delete all data in an irreversible manner. Be sure to back up your relevant data by using the export
command before using this command.
import
Imports all persons and their details from a CSV file of your specification.
Format: import i|FILEPATH
Important:
importExamScores
.name
, email
, phone
and address
.name
, email
, phone
, address
, tags
, matric
, reflection
and studio
Example: import i|/Users/johansoo/Desktop/AvengersAssemble/exam_data.csv
imports the data from the CSV file located at /Users/johansoo/Desktop/AvengersAssemble/exam_data.csv
You will see this message once you successfully imported the data, with the app showing the details of the imported persons:
For more details on the input parameter, click here.
add
Adds a person to your contact list. The person's details are now stored in the application.
Format: add n|NAME p|PHONE_NUMBER e|EMAIL a|ADDRESS [t|TAG]… [m|MATRICULATION_NUMBER] [s|STUDIO] [r|REFLECTION]
Important:
Each person should have a unique email address. Avengers Assemble does not allow for duplicate email addresses to be added.
Tip:
A person can have any number of tags (including 0)
Note: For your convenience, a
student
tag will automatically be added to a contact if they are added with a matriculation number. You are free to edit or remove the tags after the person is added with theedit
command. For example, a student TA can be added with thestudent
tag, and then theTA
tag can be added to indicate that they are a TA.
Example: add n|John Doe p|98765432 e|johnd@example.com a|John street, block 123, #01-01 m|A1234567Z s|S1 r|R2
adds a contact John Doe with the respective phone number, email and physical addresses, matriculation number, studio group and reflection group.
You will see this message once you have successfully added a person, indicating their details:
For more details on each parameter, click here.
edit
Edits the details of an existing person in your contact list.
Format: edit INDEX [n|NAME] [p|PHONE] [e|EMAIL] [a|ADDRESS] [t|TAG]… [m|MATRICULATION_NUMBER] [s|STUDIO] [r|REFLECTION]
Information:
INDEX
will be edited. The index must be a positive integer (1, 2, 3, …).t|
, m|
, r|
or s|
respectively without any values.Important:
Updating a matriculation number, studio, or reflection field will not automatically update the tags of the person. You will need to manually update the tags if necessary.
Examples:
edit 2 n|Betsy Crower t|
:
Betsy Crower
and clears all existing tags.edit 1 p|91234567 e|johndoe@example.com
:
91234567
and johndoe@example.com
respectively.You will see this message once you have successfully edited a person, indicating their updated details:
For more details on each parameter, click here.
delete
Deletes the specified person from your contact list.
Format: delete INDEX
Important:
The person at the specified INDEX
will be deleted. The index must be a positive integer (1, 2, 3, …)
Examples:
find n|Betsy
followed by delete 1
deletes the first person in the results of the find
command.list
followed by delete 1
deletes the first person stored in the app.You will see this message once you successfully delete a person from your list, indicating the details of the deleted person:
deleteShown
Deletes the current filtered list of persons. Requires a find
command to be run first.
Format: deleteShown
Note: The application ignores any extraneous parameters as we assume they are typos.
You will see this message once you have successfully deleted the shown persons from your list.
list
Displays all the persons in your contact list.
Format: list
Note: The application ignores any extraneous parameters as we assume they are typos.
You will see this message once you have successfully listed all contacts, with the app showing all existing persons in the contact list:
find
Filters your contacts based on specific criteria you set.
Format: find PREFIX|KEYWORD
Information:
e.g.
find e|john
will find any person that containsjohn
in their email.
e.g.find lt|50
will find any person who scored lower than 50 marks for the selected exam.
e.g.find mt|80.55
will find any person who scored more than 80.55 marks for the selected exam.
Important: An exam must be selected for this command to work with the lt|
and mt|
prefixes!
You can use the selectExam
command to do so.
Example: find n|John
returns john
and John Doe
if they exist in your contact book.
You will see this message once you have successfully found a person, with the app showing all persons that match your search criteria:
For more details on each parameter, click here.
copy
Copies the emails of currently displayed persons into your clipboard.
Format: copy
Information:
Note: The application ignores any extraneous parameters as we assume they are typos.
You will see this message once you have successfully copied the emails of the persons shown to you, indicating that they have been copied to the clipboard:
export
Exports currently displayed persons and their details to a CSV file of your specification.
Format: export
By default, the file will be stored in
addressbookdata/avengersassemble.csv
.
Caution:
When performing an export, the current information will overwrite any existing CSV files with the same name. If you want to preserve the exported data, you should rename it or save it in a separate location.
You will see this message once you have successfully exported the data:
exit
Exits the program. The app will close automatically.
Format: exit
Note: The application ignores any extraneous parameters as we assume they are typos.
These features are designed to help you manage exam scores for the persons in your contact list and consolidate all assessment data from canvas, edurec, and source academy. You can import exam scores from CSV files generated by these platforms, manage the exam scores of each person in your contact list, and gather statistics on student performance.
importExamScores
Imports all exam results from a CSV file.
Format: importExamScores i|FILEPATH
Information:
email
header must be the first column header.Exam:
e.g. if your exam is named Midterms
, the column heading containing the scores for Midterms
should be named Exam:Midterms
.add
and addExam
to add persons and exams respectively.Caution:
import
Example: importExamScores i|/Users/johansoo/Desktop/AvengersAssemble/exam_data.csv
imports exam results from the CSV file located at /Users/johansoo/Desktop/AvengersAssemble/exam_data.csv
.
You will see this message once you have successfully imported the exam results:
For more details on the parameter, click here.
addExam
Adds an exam into your exam list.
Format: addExam n|NAME s|MAX_SCORE
Important:
Each exam should have a unique name. Avengers Assemble does not allow for exams with duplicate names to be added.
Example: addExam n|Midterm s|100
Adds an exam with the name "Midterm" and a max score of "100" into your exam list.
You will see this message once you successfully add an exam, including the details of the exam:
For more details on each parameter, click here.
deleteExam
Removes an exam from your exam list.
Format: deleteExam INDEX
Information:
INDEX
.Example: deleteExam 3
Removes the third exam displayed in Avengers Assemble.
You will see this message once you have successfully deleted an exam, including the details of the exam you are deleting:
selectExam
Selects an exam in your exam list.
Format: selectExam INDEX
Information:
INDEX
.Example: selectExam 1
Selects the first exam displayed on the exam list.
You will see this message once you have successfully selected an exam, including the details of the exam:
deselectExam
Deselects your currently selected exam.
Format: deselectExam
You will see this message once you have successfully deselected an exam:
addScore
Adds an exam score to a person at the specified index.
Format: addScore INDEX s|SCORE
Important: An exam must be selected for this command to work! You can use the selectExam
command to do so.
Information:
INDEX
.Example: addScore 1 s|42
Adds a score of 42 to the person currently displayed at index 1.
You will see this message once you successfully add a score, including the name of the person you added the score for:
For more details on the parameter, click here.
editScore
Edits a specified person's exam score.
Format: editScore INDEX s|SCORE
Information:
INDEX
.Important:
An exam must be selected for this command to work! You can use the selectExam
command to do so.
Example: editScore 1 s|25
Edits the score of the person currently displayed at index 1 to 25.
You will see this message once you successfully edit a score, including some details of the person you added the score for:
For more details on the parameter, click here.
deleteScore
Deletes a specified person's exam score.
Format: deleteScore INDEX
Information:
INDEX
.Important:
An exam must be selected for this command to work! You can use the selectExam
command to do so.
Example: deleteScore 1
deletes the score of the person currently displayed at index 1.
You will see this message once you have successfully deleted a score, including some details of the person you added the score for:
You can view the mean and median of the scores of the exam currently selected at the bottom right of the application window.
Information:
When an exam is selected, the statistics will show on the bottom right of the application:
All data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
All data are saved automatically as a JSON file located at [JAR file location]/data/avengersassemble.json
by default. You can update data directly by editing that data file if you are an advanced user.
Caution:
If your changes to the data file makes its format invalid, Avengers Assemble will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the Avengers Assemble application to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
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 AA home folder.
If you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json
file created by the application before running the application again.
On MacOS computers, due to privacy settings, the application may encounter difficulties accessing and importing CSV files from various locations. If this issue occurs, transfer the CSV file you want to import to the same folder where the application's JAR file is located, then try again.
Since the export
function relies on data stored in your computer's hard disk, there might be some issues exporting it during the first launch of the application.
If you encounter this problem, you can resolve it by executing any other command (such as list
) and then attempting the export again.
Below is a summary of the commands available in Avengers Assemble. Some examples are included for your convenience.
Action | Format, Examples |
---|---|
Help | help |
Clear | clear |
Import | import i|FILEPATH
|
Add | add n|NAME p|PHONE_NUMBER e|EMAIL a|ADDRESS [t|TAG]… [m|MATRICULATION_NUMBER] [s|STUDIO] [r|REFLECTION]
|
Edit | edit INDEX [n|NAME] [p|PHONE_NUMBER] [e|EMAIL] [a|ADDRESS] [t|TAG]… [m|MATRICULATION_NUMBER] [s|STUDIO] [r|REFLECTION]
|
Delete | delete INDEX
|
Delete Shown Persons | deleteShown |
List | list |
Find | find PREFIX|KEYWORD
|
Copy | copy |
Export to CSV | export |
Exit | exit |
Import Exam Scores | importExamScores i|FILEPATH
|
Add Exam | addExam n|NAME s|MAX_SCORE
|
Delete Exam | deleteExam INDEX
|
Select Exam | selectExam INDEX
|
Deselect Exam | deselectExam |
Add Exam Score | addScore INDEX s|SCORE
|
Edit Exam Score | editScore INDEX s|SCORE
|
Delete Exam Score | deleteScore INDEX
|
Some commands require you to include parameters. These parameters are identified by prefixes. Here are a list of valid prefixes and what they each refer to.
Important:
Words in UPPER_CASE
are the parameters to be supplied by you.
e.g. in
add n|NAME
,NAME
is a parameter which can be used asadd n|John Doe
.
Prefixes encased with '[ ]' are optional.
e.g.
n|NAME [t|TAG]
can be used asn|John Doe t|friend
or asn|John Doe
.
Prefixes with '…' after them can be used multiple times.
e.g.
[t|TAG]…
can be used as(i.e. 0 times),
t|friend
(i.e 1 time),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.
Extraneous parameters for commands that do not take in parameters (such as help
, list
, exit
, copy
, export
and clear
) will be ignored.
e.g. if the command specifies
help 123
, it will be interpreted ashelp
.
Caution:
s|
for studios and for scores. In these cases, we ensure no command would have to use the same prefix for multiple purposes.Prefix | What it Refers to | Max. Length | Constraints |
---|---|---|---|
n| | Name | 80 | Should only contain alphanumeric characters, spaces, and the characters , , - , . , / , ( and ) . |
n| | Exam Name | 30 | Should only contain alphanumeric characters and spaces. |
p| | Phone Number | 30 | It can start with an optional + to indicate the country code, with the rest only containing numbers. It should be at least 3 digits long. |
e| | 100 | Format: local-part@domain Constraints for local part: • Should only contain alphanumeric characters, and the characters + , _ , . and - .• Should not start or end with special characters. • Should not have two consecutive special characters. Constraints for domain: • Made up of domain labels separated by periods. • Must end with a domain label of at least 2 characters long. • Domain label should consist of alphanumeric characters separated only by singular hyphens, if any. | |
a| | Address | 100 | Can take any values. |
i| | Path of CSV File to Import | - | Should be the absolute file path of the CSV file without any inverted commas. |
[m| ] | Matriculation ID | Fixed at 9 | The first letter must be an uppercase 'A', followed by 7 numbers, and end with an uppercase letter. |
[r| ] | Reflection Group | 4 | The first letter must be an uppercase 'R', followed by any number. |
[s| ] | Studio Group | 4 | The first letter must be an uppercase 'S', followed by any number. |
[s| ] | Score | 7 + 2 decimals | For exam max scores: the input must be a positive integer. For persons' exam scores: the input must be an integer greater than or equal to zero. |
[t| ]… | Tags | 100 | Should be alphanumeric, and should not contain spaces. |
[lt|] | Less Than | 7 + 2 decimals | Should be a positive numerical value smaller than the currently selected exam's max score. |
[mt| ] | More Than | 7 + 2 decimals | Should be a positive numerical value smaller than the currently selected exam's max score. |