User Guide
Table of Contents (Sugandha)
1. Introduction
revisED aims to help students to revise their subjects through the creation of flashcards or tasks that have to be completed. The users can store the tasks under different subjects and flashcards under different topics, which can be created under the subjects. This application ensures that students would be able to revise, even if they are doing it at the last minute.
This user guide provides an in-depth documentation on the installation process, the application features, and the application usage to get you started.
Note the following symbols and formatting used in this document:
Symbols / Formatting | Meaning |
---|---|
ποΈ NOTE: | Important or additional information |
β οΈ WARNING: | Things to avoid or pay extra attention to |
Grey highlight |
Code or terms related to the code/application |
2. Quick Start (Chin Hang)
To setup the application,
- Ensure that you have Java 11 or above installed.
- Download the latest version of
revised.jar
here. - Transfer the jar file to the folder of your choice.
- Open a command prompt in the folder you just put the jar file in. Follow this guide if you are unsure how.
- Run the command
java -jar revised.jar
to start the application.
You will see the logo of the application, as shown below, once u run it.
Hello from
___________
| __ | _ \
____ ______ _____ ________ | |__| | | |
| __|/ __ \ \ / /| | / _____/ | __| | | |
| | | __/ \ \__/ / | | /_____ / | |__| |_| |
| | \___| \____/ |_|/_______/ |_____|_____/
____________________________________________________________
Hello! I'm revisED
____________________________________________________________
____________________________________________________________
Alright, What can I do for you?
____________________________________________________________
____________________________________________________________
Type help for all available commands
____________________________________________________________
Subsequently, you can begin using the application!
3. Features (Chin Hang)
This section elaborates on the features of revisED along with their usage. We further break this section down into several subsections to better illustrate the design of the application.
To give you some context, revisED is divided into 3 logical levelsβmain, subject, and topic levels. In the main level, you can add/configure different subjects; in the subject level, you can add/configure different topics and tasks (under a subject); and in the topic level, you can add/configure different flashcards (under a topic & subject). Continue reading to learn more about the features in each level.
ποΈοΈ NOTE: The format of the command, an example of usage, and an expected output will be presented in
grey boxes
for each feature that involves the use of a command.
3.1 Main Level Features (Jia Lerk)
Main level features can only be used when the user is currently viewing the main section of the program. On this level, users are able to add and delete subjects in a subject list. Users are also able to access the subjects in the subject list. For more details on subjects, see section 3.2 Subject Level Features . This section describes the usage of commands that can be used to add, delete and list subjects.
3.1.1 Displaying all the available commands: help
Displays all available commands on the main level.
Format: help
- Use this command whenever you get confused or need help to navigate the application.
- The application will print a list of all the functions available to you at the current level(main) on the command line.
Example of usage:
help
Sample output:
________________________________________________________________________________________________________________________
help: shows the list of commands available at the main level
add abc: adds a subject called 'abc'
find abc: finds all subjects containing the letters abc
list: shows the list of all subjects
list all: shows the tree of all subjects, topics, tasks and flashcards
delete 1: deletes the 1st subject in the list.
subject abc: enters the subject called abc, now you can create, find, list, delete and enter the topics of subject abc
quiz abc: starts a quiz for all the flashcards present in all the topics of subject abc,
answer the questions of the current flashcards to test your knowledge
results abc: gives you the results of all attempted quizzes for abc subject
export: exports all the data to a JSON file
bye: exits the application
________________________________________________________________________________________________________________________
3.1.2 Listing all subjects: list
Prints a list of all subjects in the main list.
Format: list
- Use this command whenever you need to see a list of all the subjects you have keyed into the application.
- The application will print the title of all the subjects in your list on the command line.
Example of usage:
list
Sample output:
____________________________________________________________
Here are the subject(s) in your list:
1.CS1010
2.CS2040C
3.CG2027
4.CS2113T
5.CS2101
____________________________________________________________
3.1.3 Listing all items: list all
Prints a list of all items stored in the application.
Format: list all
- Use this command whenever you need to see a list of all the subjects, topics and tasks you have keyed into the application.
- The application will print a tree on the command line, and will also show you that you are accessing the main level.
Example of usage:
list all
Sample output:
____________________________________________________________
Here's a list of all items:
(You are currently here)
ββ 1. CG2027
β β Topics
β ββ 1. Pass Transistor Multiplexers
β ββ 2. Arithmetic Logic Unit
β β Tasks
β ββ 1. [T][N] revise on Arithmetic Logic Unit
ββ 2. CS2101
β β Topics
β ββ 1. Oral Presentation
β ββ 2. Product Demo
β β Tasks
β ββ 1. [E][Y] Product Demo (at: 2:00 PM 5 Nov 2020)
ββ 3. CS2113T
β Topics
ββ 1. Class Diagram
ββ 2. Abstraction
β Tasks
ββ 1. [D][N] Final Project (by: 11:59 PM 11 Nov 2020)
____________________________________________________________
3.1.4 Adding a subject: add
Adds a subject to the main list.
Format: add [SUBJECT_NAME]
- Adds a subject with a name of
[SUBJECT_NAME]
. - The application will print the title of the subject you have added into the subject list, as well as the amount of subjects you have in the subject list on the command line.
β οΈ WARNING:
[SUBJECT_NAME]
is case-sensitive.cs2101
andCS2101
will be registered as 2 different subjects. Adding tasks or topics incs2101
will not add the same tasks and topics inCS2101
.
Example of usage:
add CS2101
Sample output:
____________________________________________________________
Got it. I've added this subject:
CS2101
Now you have 5 subjects in the list.
____________________________________________________________
3.1.5 Deleting a subject: delete
Deletes the specified subject, given the subject number.
Format: delete [SUBJECT_NUMBER]
- Deletes the subject with the index number of
[SUBJECT_NUMBER]
. - The application will print the title of the subject you have deleted from the subject list, as well as the amount of subjects you have in the subject list on the command line.
[SUBJECT_NUMBER]
must be a positive integer.
ποΈοΈ NOTE: The
[SUBJECT_NUMBER]
of a subject is the number assigned to each subject when the user uses the list command to print out the subjects.
ποΈοΈ NOTE: After deletion of a subject, the
[SUBJECT_NUMBER]
of subjects in the list may change.
β οΈ WARNING: It is impossible to retrieve data deleted by this command. Make sure you do not need the data in this subject before you delete it!
Example of usage:
delete 1
Sample output:
____________________________________________________________
Noted. I've removed this subject:
CS1010
Now you have 4 subjects in the list.
____________________________________________________________
3.1.6 Finding a subject: find
Searches the list of subject names for all subjects that contains the query.
Format: find [QUERY]
- searches all subjects with
[QUERY]
in its title. - The application will print a list of subjects with titles that contain the query.
- The find command will only search the name of subjects on this level.
- Partial words will be matched. e.g.
CS
will findCS2101
andCS2113T
.
β οΈ WARNING:
[QUERY]
is case-sensitive. e.g.cs2113t
will not find a Subject with the nameCS2113T
.
Example of usage:
find CS
Sample output:
____________________________________________________________
Here are the matching subject(s) in your list:
CS2040C
CS2113T
CS2101
____________________________________________________________
3.1.7 Accessing a subject: subject
Allows the user to access a pre-existing subject.
Format: subject [SUBJECT_NAME]
- Access a pre-existing subject with a name of
[SUBJECT_NAME]
. - Use this command if you want to access the subject level of a subject in the subject list.
- The application will print the subject level of the subject specified in
[SUBJECT_NAME]
on the command line. - For more information on subject level commands, refer to 3.2 Subject Level Features .
β οΈ WARNING:
[SUBJECT_NAME]
is case-sensitive. e.g.subject cs2113t
will not access a subject with the nameCS2113T
.
Example of usage:
subject CS2113T
Sample output:
____________________________________________________________
Entering the Subject Level for the CS2113T subject.
____________________________________________________________
____________________________________________________________
Type help for all available commands
____________________________________________________________
3.1.8 Starting Subject Quiz: quiz
Starts a quiz for a particular subject. For more details, see taking quizzes.
Format: quiz [SUBJECT_NAME]
- Starts a quiz of a pre-existing subject of the name
[SUBJECT_NAME]
. - The application will quiz you on the subject specified in
[SUBJECT_NAME]
on the command line.
β οΈ WARNING:
[SUBJECT_NAME]
is case-sensitive. e.g. e.g.quiz cs2101
will not start aCS2101
quiz.
Example of usage:
quiz CS2113T
Sample output:
____________________________________________________________
You are about to begin the quiz for CS2113T.
____________________________________________________________
3.1.9 Viewing results for quizzes on a subject: results
(Muthu)
This command allows you to look at the results for a subject. For more details, see result.
Format: results [SUBJECT_NAME]
- Displays the results of your previous quizzes of the subject the name
[SUBJECT_NAME]
. - The application will print the results of all the quizzes of the subject specified in
[SUBJECT_NAME]
in the command line.
β οΈ WARNING:
[SUBJECT_NAME]
is case-sensitive. e.g. results cs2101 will not enable you to see your CS2101 quiz results.
Example of usage:
results CS2113T
Sample output:
____________________________________________________________
Quiz 1: 1.0/2.0 -- Pass
Quiz 2: 2.0/2.0 -- Excellent
____________________________________________________________
3.1.10 Exporting data: export
(Chin Hang)
This command exports all the data of the application to an external file. For more details, see Exporting Data section.
Format: export
- Use this command if you want to save all the data in the application on an external file.
- The application will print the file location of the file the data is being saved to on the command line.
Example of usage:
export
Sample output:
____________________________________________________________
Your data has been successfully exported to /home/guest/revised/export/data.json.
____________________________________________________________
3.1.11 Saving and exiting: bye
This command will save all the data in the application.
Format: bye
- Use this command if you want to save and exit the application.
- The application will save all the updated details and exit.
β οΈ WARNING: Use this command before closing the command line as this command ensures all your data updated is saved. Failure to use this method to exit the application will result in all work updated in the session being lost.
Example of usage:
bye
Sample output:
____________________________________________________________
Bye. Hope to see you again soon!
____________________________________________________________
3.2 Subject Level Features (Herman)
Subject level features can only be used when the user is currently viewing a subject. On this level, users are able to add and delete topics and tasks. Users are also able to access the topics listed in the current subject. For more details on topics, see section 3.3 Topic Level Features. This section describes the usage of commands that can be used to add, delete and list both topics and tasks.
3.2.1 Displaying all available commands: help
Displays all available commands on the subject level.
Format: help
- Use this command whenever you get confused or need help to navigate the application.
- The application will print a list of all the functions available to you at the current level(subject) on the command line.
Example of usage:
help
Sample output:
________________________________________________________________________________________________________________________
help: shows the list of commands available at the subject level
add abc: adds a topic called 'abc' in the current subject
todo abc: adds a todo type task with the description 'abc'
deadline abc /by 12:00 13-11-2020: adds a deadline type task with description 'abc' with date/time of deadline
as 12:00 AM 13 Nov 2020
event abc /at 01:00 21-11-2020: adds an event type task with description 'abc' with date/time of event
as 1:00 AM 21 Nov 2020
find abc: finds all topics and tasks containing 'abc' in the current subject
list: shows the list of all topics and tasks in the current subject
list all: shows the tree of all subjects, topics, tasks and flashcards
delete topic 1: deletes the 1st topic in the list of topics.
delete task 1: deletes the 1st task in the list of tasks.
done 1: marks the 1st task in the list of tasks as done
topic abc: enters the topic abc, now you can add, find, list and delete flashcards of topic abc
quiz abc: starts a quiz for all the flashcards of the topic abc,
answer the questions of the prompted flashcards to test your knowledge
results abc: gives you the results of all attempted quizzes for abc topic
exit: exits the subject to return to the main screen, where you can work with subjects
________________________________________________________________________________________________________________________
3.2.2 Listing all topics and tasks: list
Prints a list of all topics and tasks of the current subject.
Format: list
- Use this command whenever you need to see a list of all the tasks and topics you have keyed into the subject.
- The application will print the title of all the tasks and topics in your subject on the command line.
Example of usage:
list
Sample output:
____________________________________________________________
Here are the topic(s) under CS2101:
1. Oral Presentation
2. Product Demo
____________________________________________________________
Here are the tasks(s) under CS2101:
1. [E][N] Product Demo (at: 2:00 PM 5 Nov 2020)
____________________________________________________________
3.2.3 Listing all items: list all
Prints a list of all items stored in the application.
Format: list all
- Use this command whenever you need to see a list of all the subjects, topics and tasks you have keyed into the application.
- The application will print a tree on the command line, and will also show you that you are accessing the subject level of a specific subject.
Example of usage:
list all
Sample output:
____________________________________________________________
Here's a list of all items:
ββ 1. CG2027
β β Topics
β ββ 1. Pass Transistor Multiplexers
β ββ 2. Arithmetic Logic Unit
β β Tasks
β ββ 1. [T][N] revise on Arithmetic Logic Unit
ββ 2. CS2101 (You are currently here)
β β Topics
β ββ 1. Oral Presentation
β ββ 2. Product Demo
β β Tasks
β ββ 1. [E][Y] Product Demo (at: 2:00 PM 5 Nov 2020)
ββ 3. CS2113T
β Topics
ββ 1. Class Diagram
ββ 2. Abstraction
β Tasks
ββ 1. [D][N] Final Project (by: 11:59 PM 11 Nov 2020)
____________________________________________________________
Topic commands
3.2.4 Adding a topic: add
Adds a topic to the current subject.
Format: add [TOPIC_NAME]
- Adds a topic with a name of
[TOPIC_NAME]
. - The application will print the title of the topic you have added into the topic list, as well as the amount of topics you have in the topic list on the command line.
β οΈ WARNING:
[TOPIC_NAME]
is case-sensitive.Product pitch
andPRODUCT PITCH
will be registered as 2 different topics. Adding flashcards inproduct pitch
will not add the same flashcards inPRODUCT PITCH
.
Example of usage:
add Product Pitch
Sample output:
____________________________________________________________
Got it. I've added this topic:
Product Pitch
Now you have 3 topics in the list.
____________________________________________________________
3.2.5 Deleting a topic: delete topic
Deletes the topic from the current subject, given the topic number.
Format: delete topic [TOPIC_NUMBER]
- Deletes the topic with the index number of
[TOPIC_NUMBER]
. - The application will print the title of the topic you have deleted from the topic list, as well as the amount of topics you have in the topic list on the command line.
[TOPIC_NUMBER]
must be a positive integer.
ποΈοΈ NOTE: The
[TOPIC_NUMBER]
of a topic is the number assigned to each topic when the user uses the list command to print out the topics.
ποΈοΈ NOTE: After deletion of a topic, the
[TOPIC_NUMBER]
of topics in the list may change.
β οΈ WARNING: It is impossible to retrieve data deleted by this command. Make sure you do not need the data in this topic before you delete it!
Example of usage:
delete topic 3
Sample output:
____________________________________________________________
Noted. I've removed this topic:
Product Pitch
Now you have 2 topics in the list.
____________________________________________________________
3.2.6 Finding a topic or task: find
Searches the current subject for all the topics and tasks that contains the query.
Format: find [QUERY]
- searches all topics and tasks in the current subject with
[QUERY]
in its name and prints a list of them. - The application will print a list of topics and tasks with titles that contain the query.
- The
find
command will only search the name of topics and tasks on this level. - Partial words will be matched. e.g.
Pro
will findProduct
.
β οΈ WARNING:
[QUERY]
is case-sensitive. e.g.product
will not find a topic or task with the namePRODUCT
.
Example of usage:
find Pro
Sample output:
____________________________________________________________
Here are the matching topic(s) in your list:
Product Demo
____________________________________________________________
Here are the matching task(s) in your list:
[E][Y] Product Demo (at: 2:00 PM 5 Nov 2020)
____________________________________________________________
3.2.7 Accessing a topic: topic
Enters a pre-existing topic.
Format: topic [TOPIC_NAME]
- Access a pre-existing topic with a name of
[TOPIC_NAME]
. - Use this command if you want to access the topic level of a topic in the topic list.
- The application will print the topic level of the subject specified in
[TOPIC_NAME]
on the command line. - For more information on topic level commands, refer to 3.3 Topic Level Features
β οΈ WARNING:
[TOPIC_NAME]
is case-sensitive. e.g.topic product
will not access a topic with the namePRODUCT
.
Example of usage:
topic Oral Presentation
Sample output:
____________________________________________________________
Entering the topic Level for the Oral Presentation topic.
____________________________________________________________
____________________________________________________________
Type help for all available commands
____________________________________________________________
Task commands
3.2.8 Adding a 'todo' task: todo
Adds a todo task.
Format: todo [DESCRIPTION]
- Adds a todo task with a description of
[DESCRIPTION]
. - The application will print the description of the todo task you have added into the task list, as well as the amount of tasks in the task list on the command line.
- The format for task when the application is printing out information is:
[T/D/E][Y/N] TASK DESCRIPTION
- T - Todo
- D - Deadline
- E - Event
- Y - Done
- N - Not done yet
Example of usage:
todo look up on what is active listening
Sample output:
____________________________________________________________
Got it. I've added this task:
[T][N] look up on what is active listening
Now you have 2 tasks in the list.
____________________________________________________________
3.2.9 Adding a 'deadline' task - deadline
Adds a deadline task.
Format: deadline [DESCRIPTION] /by [TIME]
- Adds a deadline task with a description of
[DESCRIPTION]
and a deadline of[TIME]
. - A deadline must have a
[TIME]
. If you do not wish to set a time, add a todo instead. - The application will print the description of the deadline task you have added into the task list, as well as the amount of tasks in the task list on the command line.
- The format for task when the application is printing out information is:
[T/D/E][Y/N] TASK DESCRIPTION
- T - Todo
- D - Deadline
- E - Event
- Y - Done
- N - Not done yet
ποΈοΈ NOTE: Add the time using the HH:MM DD-MM-YYYY format.
Example of usage:
deadline assignment /by 23:59 21-10-2020
Sample output:
____________________________________________________________
Got it. I've added this task:
[D][N] assignment (by: 11:59 PM 21 Oct 2020)
Now you have 2 tasks in the list.
____________________________________________________________
3.2.10 Adding an event - event
- Add event
Add an event task.
Format: event [DESCRIPTION] /at [TIME]
- Adds a deadline task with a description of
[DESCRIPTION]
and a timing of[TIME]
. - An event must have a
[TIME]
. If you do not wish to set a time, add a todo instead. - The application will print the description of the event task you have added into the task list, as well as the amount of tasks in the task list on the command line.
- The format for task when the application is printing out information is:
[T/D/E][Y/N] TASK DESCRIPTION
- T - Todo
- D - Deadline
- E - Event
- Y - Done
- N - Not done yet
ποΈοΈ NOTE: Add the time using the HH:MM DD-MM-YYYY format.
Example of usage:
event tutorial /at 16:00 21-10-2020
Sample output:
____________________________________________________________
Got it. I've added this task:
[E][N] tutorial (at: 4:00 PM 21 Oct 2020)
Now you have 3 tasks in the list.
____________________________________________________________
3.2.11 Deleting a task: delete task
Deletes a task from the current subject, given the task number.
Format: delete task [TASK_INDEX]
- Deletes the task with the index number of
[TASK_INDEX]
. - The application will print the description of the task you have deleted from the task list, as well as the amount of tasks you have in the topic list on the command line.
[TASK_INDEX]
must be a positive integer.
ποΈοΈ NOTE: The
TASK_INDEX
of a topic is the number assigned to each task when the user uses the list command to print out the tasks.
ποΈοΈ NOTE: After deletion of a task, the
TASK_INDEX
of tasks in the list may change.
β οΈ WARNING: It is impossible to retrieve data deleted by this command. Make sure you do not need the data in this task before you delete it!
Example of usage:
delete task 2
Sample output:
____________________________________________________________
Noted. I've removed this task:
[E][N] tutorial (at: 4:00 PM 21 Oct 2020)
Now you have 2 tasks in the list.
____________________________________________________________
3.2.12 Marking a task as completed: done
Marks the specified task as done.
Format:
done [TASK_INDEX]
[TASK_INDEX]
must be a positive integer.- Task
[TASK_INDEX]
must already exist in the task list.
Example of usage:
done 2
Sample output:
____________________________________________________________
Nice! I've marked this task as done:
[D][Y] assignment (by: 11:59 PM 21 Oct 2020)
____________________________________________________________
3.2.13 Starting Topic Quiz - quiz
This type of quiz helps you to prepare for a particular topic. For more details, see section 3.4.1 Taking quizzes.
Format: quiz [TOPIC_NAME]
- Starts a quiz of a pre-existing topic the name
[TOPIC_NAME]
. - The application will quiz you on the topic specified in
[TOPIC_NAME]
on the command line.
β οΈ WARNING:
[TOPIC_NAME]
is case-sensitive. e.g.quiz java
will not start aJava
quiz.
Example of usage:
quiz Java
Sample output:
____________________________________________________________
You are about to begin the quiz for Java.
____________________________________________________________
3.2.14 Viewing results for quizzes on a topic: results
(Muthu)
This command allows you to look at the results for a topic. For more details, see result.
Format: results [TOPIC_NAME]
- Displays the results of your previous quizzes of the topic the name
[TOPIC_NAME]
. - The application will print the results of all the quizzes of the topic specified in
[TOPIC_NAME]
in the command line.
β οΈ WARNING:
[TOPIC_NAME]
is case-sensitive. e.g.results java
will not enable you to see yourJava
quiz results.
Example of usage:
results Java
Sample output:
____________________________________________________________
Quiz 1: 1.0/2.0 -- Pass
Quiz 2: 2.0/2.0 -- Excellent
____________________________________________________________
3.2.15 Exiting the subject: exit
Exits the subjects and returns to the main level.
Format: exit
- Use this command whenever you want to return to the subject level to work with subjects.
ποΈ NOTE: The
exit
command is not the same as thebye
command. Thebye
command saves and closes the application, and can only be accessed on the main level.
Example of usage:
exit
Sample output:
____________________________________________________________
Going back to the main level.
____________________________________________________________
3.3 Topic Level Features (Sugandha)
Topic level features can only be used when the user is currently viewing a topic. On this level, users are able to add and delete flashcards, in the form of questions and answers. These flashcards can also be used to take topic or subject quizzes. For more information on subject quizzes see 3.1.8 Starting Subject Quiz and for topic quizzes see 3.2.13 Starting Topic Quiz. This section describes the usage of commands that can be used to add, delete and list flashcards.
3.3.1 Displaying all the available commands: help
Displays all available commands.
Format: help
- Use this command whenever you get confused or need help to navigate the application.
- The application will print a list of all the functions available to you at the current level(main) on the command line.
Example of usage:
help
Sample output:
________________________________________________________________________________________________________________________
help: shows the list of commands available at the topic level
add abc; def: adds a flashcard with question 'abc' and answer 'def' in the current topic
list: shows the list of all flashcards in the current topic
list all: shows the tree of all subjects, topics, tasks and flashcards
delete 1: deletes the 1st flashcard in the list
exit: exits the topic to return to the subject level, where you can work with tasks and topics
________________________________________________________________________________________________________________________
3.3.2 Listing all flashcards: list
Prints a list of all flashcards of the topic you are currently viewing.
Format: list
- Use this command whenever you need to see all the flashcards you have added or to take note of the index number of the flashcard you might want to delete.
- The application will print the questions and answers of all the flashcards in your topic on the command line. Example of usage:
list
Sample output:
____________________________________________________________
Here are the flashcard(s) under Java:
1. Q: Name 3 Java primitive data types.
A: short, int, long.
2. Q: Is return 0 needed at the end of main method to indicate a successful execution?
A: No, it is considered as a successful execution unless an error is signalled specifically.
____________________________________________________________
3.3.3 Listing all items: list all
Prints a list of all items stored in the application.
Format: list all
- Use this command whenever you need to see a list of all the subjects, topics, tasks and number of flashcards you have keyed into the application.
- The application will print a tree on the command line, and will also show you that you are accessing the topic level of a specific topic.
Example of usage:
list all
Sample output:
____________________________________________________________
Here's a list of all items:
ββ 1. CG2027
β β Topics
β ββ 1. Arithmetic Logic Unit
β ββ 2. Pass Transistor Multiplexers
β β Tasks
β ββ 1. [T][N] revise on Arithmetic Logic Unit
ββ 2. CS2101
β β Topics
β ββ 1. Oral Presentation
β ββ 2. Product Demo
β β Tasks
β ββ 1. [E][Y] Product Demo (at: 2:00 PM 5 Nov 2020)
β ββ 2. [T][N] look up on what is active listening
ββ 3. CS2113T
β Topics
ββ 1. Abstraction
ββ 2. Class Diagram
ββ 3. Java (You are currently here)
β ββ 1 Flashcard
β Tasks
ββ 1. [D][N] Final Project (by: 11:59 PM 11 Nov 2020)
____________________________________________________________
3.3.4 Adding a flashcard - add
Adds a flashcard under the topic you are currently viewing. These flashcards can be added to take notes. They are added in the form of questions and answers.
Format: add
[QUESTION]; [ANSWER]
- Use this command whenever you wish to take notes.
- This command adds a flashcard with the question,
[QUESTION]
and the answer,[ANSWER]
. - The application will print the question and answer of the flashcard you added along with the total number of flashcards under the current topic.
ποΈ οΈ NOTE: Do not forget the semicolon, as it separates the question and the answer.
β οΈ WARNING:
[QUESTION]
and[ANSWER]
of the flashcards are case-sensitive. Example of usage:
add What is the version of Java used in CS2113T; 11.0
Sample output:
____________________________________________________________
Got it. I've added this flashcard:
Q: What is the version of Java used in CS2113T
A: 11.0
Now you have 3 flashcards in the list.
____________________________________________________________
3.3.5 Deleting a flashcard: delete
Deletes the flashcard from the current topic, given the flashcard number. This can be used if you make a mistake or no longer need a flashcard. You can check the flashcard number from the list of flashcards, which is described next.
Format: delete [FLASHCARD_NUMBER]
- Deletes the flashcard with the index number of
[TOPIC_NUMBER]
. - The application will print the question and answer of the flashcard you have deleted from the topic list, as well as the number of flashcards you now have under the current topic on the command line.
ποΈοΈ NOTE: The
FLASHCARD_NUMBER
of a flashcard is the number assigned to each flashcard when the user uses the list command to print out the flashcards.
ποΈοΈ NOTE: After deletion of a flashcard, the
FLASHCARD_NUMBER
of topics in the list may change.
β οΈ WARNING: It is impossible to retrieve data deleted by this command. Make sure you do not need the data in this topic before you delete it!
Example of usage:
delete 3
Sample output:
____________________________________________________________
Noted. I've removed this flashcard:
Q: What is the version of Java used in CS2113T
A: 11.0
Now you have 2 flashcards in the list.
____________________________________________________________
3.3.6 Exiting the topic: exit
Exits the topic and returns the to the subject level.
Format: exit
- Use this command whenever you want to return to the subject level to work with topics and tasks.
ποΈ NOTE: The
exit
command is not the same as thebye
command. Thebye
command saves and closes the application, and can only be accessed on the main level.
Example of usage:
exit
Sample output:
____________________________________________________________
Going back to the subject level.
____________________________________________________________
3.4 Other Features
This section expands on the features that are not specific to any part of the previous sections and features that require further explanations.
3.4.1 Taking quizzes (Muthu)
Once you have added the necessary flashcards, you can use the Quiz functionality to test yourself. This would let you gauge how much you understand from the material. This will be beneficial if you are running out of time to revise your own notes.
In this feature, the application prints the questions from the flashcards stored in the application. You need to complete the quiz within a certain time limit. There are two types of quizzes :
- Quiz for a subject
- Quiz for a Topic
Quiz for a subject
This type of quiz helps you prepare for a particular subject.The application prints out the questions from the topics present in a subject.
Quiz for a Topic
This type of quiz helps you to prepare for a particular topic. The application prints out all the questions that have been saved in the specific topic .
ποΈ οΈ NOTE: Ensure that you start a quiz for a subject/topic that has been added to the application and has a flashcard. Else, the application will not start the quiz.
Once you have entered the type of quiz you want to begin, the application starts the quiz. You are expected to answer these questions.
Format: Question [NAMEOFQUESTION]
Example: Question: What is the version of Java used in CS2113T?
Once the quiz has been completed, the application prints out the scores that you obtained. You will also be notified about the questions that you did not answer correctly.
The score is printed in the following format:
- If you get full marks :
Result:4/4 -- Excellent
- If you get enough marks to pass:
Result:2/4 -- Pass
- If you fail:
Result:0/4 -- Fail
The code below shows an example of a result that you can get after attempting a quiz.
____________________________________________________________
Result:2/4 -- Pass
____________________________________________________________
Here are the questions which you got wrong.
Question:What is the version of Java used in CS2113T?
Correct Answer: 11.0
Your Answer: 11.1
____________________________________________________________
Question:What is the ide used for the project?
Correct Answer: Intellij
Your Answer: Vim
____________________________________________________________
You can stop the quiz by entering stop
. The application then prints the score.
Format: stop
Sample output:The quiz has been stopped!
.
____________________________________________________________
The quiz has been stopped!
____________________________________________________________
Result:1/2 -- Pass
____________________________________________________________
ποΈ οΈ NOTE: If you stop the quiz, the application will only print the score for the particular quiz. It does not print the list of incorrect answers.
β οΈ WARNING: If you stop the quiz ,you cannot go back to the same quiz to continue it. You will have to restart another quiz.
3.4.2 Viewing quiz results (Muthu)
After completing a few number of quizzes, you would want to look at the results of the previous quizzes to see if
you have improved over the time. You can use the results
functionality to check your results.
This can be done for the subjects or for the topics.
ποΈ οΈ NOTE: Ensure that at least one quiz has been attempted under the subject or topic.
ποΈ οΈ NOTE: The results for a subject is different from the results for a topic. The application only shows the result of a subject or topic that you requested for. Entering
results CS2113T
will not show you the results that you obtained for the topics in the CS2113T subject and vice-versa.
3.4.3 Storing data (Chin Hang)
When you exit the application, the data you have added to the application is automatically saved to the disk.
The data is stored under the data/
folder in the same folder where you run the application.
β οΈ WARNING: The data (or any changes to the data) are not saved if the application is closed abnormally (i.e. not via
bye
command).
Instead of storing all data in one file, revisED creates a folder hierarchy under data/
following the logical structure of the
subjects and topics added. For example, if you add a CS2113T
subject and a Java
topic under it, a
CS2113T/
folder will be created under the data/
folder and an Java
folder will be created under the CS2113T/
folder, as shown in figure 3.4.1 below.
revised.jar --> revisED Application data --> Data main folder βββ CS2113T --> CS2113T subject folder βββ Java --> Java topic folder under CS2113T subject β βββ topicResults.json β βββ flashcards.json βββ subjectResults.json βββ tasks.txt
Figure 3.4.1 Sample directory structure created
The details of the files that are created under each subject and topic folder will be explained below.
ποΈοΈ NOTE: The name of the subject and topic folders can be changed manually, and the changes will be reflected in the application the next time you launch it.
tasks.txt
One tasks.txt
file will be created under each subject folder. This file contains the tasks (Todo, Event, Deadline) you
have added to a specific subject. An example of the file content is shown below.
T | 1 | someTodoTask --> Todo task D | 0 | someDeadlineTask | 11:59 PM 20 Dec 2020 --> Deadline task E | 0 | someEventTask | 1:00 PM 10 Nov 2020 --> Event task
Figure 3.4.2 Sample tasks.txt content
The first column of data shows the type of task, where T corresponds to Todo
task, D corresponds to Deadline
task, and E corresponds to Event
task. The second column shows if a task is completed, where 0 means not completed
while 1 means completed. The third column shows the name of a task. Lastly, the fourth column shows the time and date of
a deadline or event task.
β οΈ WARNING: Although you can change the content of this file manually, you are not advised to do so because a mismatch in the format will corrupt the data. If the data is corrupted, it will not be loaded by the application. Make a copy of the file before making changes if you have to do so manually.
subjectResults.json / topicResults.json
One subjectResults.json
will be created under each subject folder, and one topicResults.json
will be created
under each topic folder. subjectResults.json
stores the quiz results you have obtained from doing quizzes under
a subject, while topicResults.json
stores the quiz results you have obtained from doing quizzes under a topic.
Both of the files have the same content format, and an example of
the file content is shown below.
[ { --> Result record 1 "score": 1.0, --> Score obtained "maxScore": 1.0, --> Maximum score that can be obtained "description": "Excellent" --> Result description }, { --> Result record 2 ... }, ... ]
Figure 3.4.3 Sample subjectResults.json content
flashcards.json
One flashcards.json
file will be created under each topic folder. This file stores all the flashcard data you
have added under a specific subject and topic. An example of the file content is shown below.
[ { --> Flashcard 1 "question": "x + y = 4. y = ? ", "answer": "4 - x" }, { --> Flashcard 2 ... }, ... ]
Figure 3.4.4 Sample flashcard.json content
Each entry enclosed with the curly braces ({}) corresponds to one flashcard.
β οΈ WARNING: Although you can change the content of this file manually, a mismatch in the format will corrupt the data. If the data is corrupted, it will not be loaded by the application. Therefore, make a copy of the file before making changes if you have to do so.
3.4.4 Loading data (Chin Hang)
Similar to storing data, when you launch the application, the saved data is automatically loaded from the disk.
ποΈ NOTE: Loaded subjects and topics will be sorted in alphabetical order, which can be seen when running list command. Flashcards, tasks, and results data, on the other hand, are not sorted and instead follow the added order.
β οΈ WARNING: If you have manually modified the contents of the files stored with wrong syntax, the files affected will not be loaded (and, instead, empty data will be loaded) when the application launches.
3.4.5 Exporting data (Chin Hang)
You can export all the data, including the quiz results and tasks, to a json
file so that it can be imported into
other applications that understand the data. To export the data, run the export command
when you are in the main level of the application.
After running the command, the data will be exported to
export/data.json
under the same folder where revisED application resides. An example of the file content is shown
below.
[ { --> Subject 1 "title": "CS2113T", "topics": { "topics": [ --> Topics under CS2113T subject { --> Topic 1 "title": "Java", "flashcards": [same as the content of flashcards.json], --> Flashcards under Java topic "results": { "resultList": [same as the content of topicResults.json] --> Results under Java topic } }, ... ] }, "tasks": { --> Tasks under CS2113T subject "taskList": [ { --> Task 1 "description": "someTodoTask", "isDone": false }, { --> Task 2 "dateTime": { "date": { "year": 2020, "month": 12, "day": 20 }, "time": { "hour": 23, "minute": 59, "second": 0, "nano": 0 } }, "description": "someDeadlineTask", "isDone": false }, ... ] }, "results": { "resultList": [same as the content of subjectResults.json] --> Results under CS2113T subject } }, ... --> More subjects ]
Figure 3.4.5 Sample data.json content
Note that the content of the file follows the same logical structure as that
in the data/
folder.
ποΈ οΈ NOTE: Importing of the exported file is currently not supported as it is meant to be read by other applications. Nevertheless, the feature may be implemented in the future versions if it is highly requested.
3.4.6 Sorting tasks (Muthu)
The tasks in the application are sorted according to their deadlines. Tasks which are due soon are placed at the front
of the list, while tasks which are due later are placed at the rear. Todo
tasks are placed at the end of the list since
they do not have any deadlines.
Suppose you use the list
command and get this output:
____________________________________________________________
Here are the tasks(s) under CS2113T:
1. [D][N] homework (by: 6:00 PM 6 Nov 2020)
2. [E][N] marathon (at: 6:00 PM 9 Nov 2020)
____________________________________________________________
Adding the following deadline by deadline project /by 18:00 07-11-2020
and using the list
command would yield this output.
____________________________________________________________
Here are the tasks(s) under CS2113T:
1. [D][N] homework (by: 6:00 PM 6 Nov 2020)
2. [D][N] project (by: 6:00 PM 7 Nov 2020)
3. [E][N] marathon (at: 6:00 PM 9 Nov 2020)
____________________________________________________________
3.4.7 Printing upcoming tasks (Muthu)
Once you open the application, it will print the tasks which are due in the upcoming week. Only tasks which have not been completed yet will be printed out. The tasks will be sorted out according to the subjects, then the date and time at which the task is due.
Example:
Hello from
___________
| __ | _ \
____ ______ _____ ________ | |__| | | |
| __|/ __ \ \ / /| | / _____/ | __| | | |
| | | __/ \ \__/ / | | /_____ / | |__| |_| |
| | \___| \____/ |_|/_______/ |_____|_____/
____________________________________________________________
Hello! I'm revisED
____________________________________________________________
Here are the upcoming tasks for next week!
CS2113T
1. [D][N] homework (by: 6:00 PM 6 Nov 2020)
CG2027
2. [E][N] exam (at: 7:00 PM 9 Nov 2020)
____________________________________________________________
Alright, What can I do for you?
____________________________________________________________
____________________________________________________________
Type help for all available commands
____________________________________________________________
4. FAQ
This section answers some common questions that you may have about revisED.
Q: I moved the jar file to another location. Will my previous data be erased automatically?
A: Do not worry. You previous data will still be avaiable in the data/
folder.
Q: I accidentally saved a task as an event, when it is a deadline. Is there any method to change the type of the task?
A: Unfortunately, no. You will have to delete the event using the delete task [TASK_INDEX]
to delete the task, and then
add the task back using the deadline [DESCRIPTION] /by [TIME]
command.
Q: Is there any limit to the number of topics/subjects that I can store in my application?
A: No. You can store unlimited number of topics/subjects.
Q: A file named revisED0.log
appears in the folder after I run the application. What is it? Can I delete it?
A: This is the log file that logs down the activities of the application when you are running it. In the case where
you find any bugs or the application crashes, you can send us a bug report
here along with the log file to help us with solving the bugs.
Nevertheless, you can delete it if you want to, and it does not affect the behavior of the application in any way.
5. Command Summary (Muthu)
A summary of all the commands available is shown in the table below.
Action | Examples |
---|---|
SUBJECT COMMANDS (MAIN LEVEL) | |
Add subject | add CS2113T |
Change to the specific subject | subject CS2113T |
Start a quiz for a subject | quiz CS2113T |
View results for a subject | results CS2113T |
Find Subject | find CS2113T |
Delete Subject | delete 1 |
List all subjects | list |
Export data | export |
Exit application | bye |
TOPIC AND TASK COMMANDS (SUBJECT LEVEL) | |
Add topic | add Java |
Delete topic | delete topic 4 |
Change to the specific topic | topic Java |
Start a quiz for a topic | quiz Java |
View results for a topic | results Java |
Add todo | todo revise for test |
Add deadline | deadline assignment /by 23:59 21-10-2020 |
Add an event | event tutorial /at 16:00 21-10-2020 |
Find tasks | find assignment |
Complete task | done 4 |
Delete task | delete task 4 |
List topics and tasks | list |
Exit subject | exit |
FLASHCARD COMMANDS (TOPIC LEVEL) | |
Add flashcard | add What version of Java are you using; 11.0 |
Delete flashcard | delete 1 |
List flashcards | list |
Exit topic | exit |
OTHER COMMANDS (All LEVELS) | |
List all the items in the application | list all |
List all the commands | help |