Looking for a quick, easy, and efficient way to track your CS2040C note and code files? They're all on CLIAlgo.
CLIAlgo is a desktop application for managing your CS2040C notes and codes. It is optimized to be used via a Command
Line Interface (CLI). If you can type fast, you can access and sort your notes faster than ever before. CLIAlgo is a
note management application and not a note-taking application. Therefore, users are expected to already have the
required .txt or .cpp files in the same folder as the .jar file before starting the application. Features like
note creation and editing are beyond the scope of this application.
11 or above installed.clialgo.jar from here..jar file in, and use the java -jar clialgo-v2.1.jar
command to run the application.CS2040CFiles with either .cpp or .txt as their extension are present in the same folder
as the .jar file.help and pressing Enter will open
the help window. Some example commands you can try are:
add n/bubble sort t/SORTING: add a ‘bubble sort.txt’ file as notes to the topic ‘SORTING’list: list all existing notesremove n/bubble sort: remove the ‘bubble sort.txt’ note from the listWARNING If any of the files stored in the data files are corrupted, i.e. any of the fields within the data files are invalid the application discards that file stored within the data file.
Notes about the command format:
- Words in
UPPER_CASEare parameters to be supplied by the user. E.g.remove n/NAMEwhereNAMEis the parameter to be used asremove n/bubble sort.- Items in square brackets are optional. E.g.
help [c/COMMAND_TYPE]can be used ashelporhelp c/add.
helpShows a message explaining the format of supported commands in the application and their functions. If a valid command is entered after ‘help’ using the c/ delimiter, it shows the format and function of that specific command instead.
help [c/COMMAND_TYPE]
COMMAND_TYPE is case-sensitive and is an optional inputInput:
help
Output:
======================================================
The available COMMAND_TYPE(s) are:
[add]: add CS2040CFile
[remove]: remove CS2040CFile
[list]: displays all CS2040CFiles
[filter]: filters CS2040CFiles by topic
[topo]: displays all CS2040CFiles before the selected topic
[export]: places CS2040CFiles sorted by filter/topo in a file
[exit]: close the application
For more help on a specific command, type `help c/COMMAND_TYPE`.
======================================================
Input:
help c/add
Output:
======================================================
Add a CS2040CFile to a topic using:
`add n/NAME t/TOPIC [i/IMPORTANCE]`
NAME: String name of the CS2040CFile file.
TOPIC: String topic that NAME will be tagged to.
IMPORTANCE: int level of importance on a scale of 1-10 (optional field).
Valid TOPIC's are 'SORTING', 'LINKED_LIST', 'GRAPH_STRUCTURES',
'BINARY_HEAP', 'HASH_TABLE', 'GRAPH_TRAVERSAL', 'BINARY_SEARCH_TREE',
'SS_SHORTEST_PATH', 'UNION_FIND_DS' and 'MINIMUM_SPANNING_TREE'.
======================================================
addAdds a CS2040CFile that currently already exists, into our file manager. It must strictly be either a .txt note
file or a .cpp C++ code file. Requires a topic tagged to it, and an optional importance level, a number from 1 to 10.
add n/NAME t/TOPIC [i/IMPORTANCE_LEVEL]
.jar in order for the CS2040CFile to be
added successfully.
queue.txt into CLIAlgo, queue.txt must be present in the same folder as the
.jar file.NAME represents the name of the CS2040CFile to be added without the file extension.TOPIC represents the topic which will be tagged to the CS2040CFile added.
LINKED_LIST will not match Link List.help c/add to view list of valid topics and their case-sensitivities.add n/queue t/sorting is not valid. It should be add n/queue t/SORTING instead.IMPORTANCE_LEVEL represents the importance level you want to assign to the CS2040CFile added.
Input:
add n/queue t/LINKED_LIST
or
add n/queue t/LINKED_LIST i/5
Output:
======================================================
Successfully added queue into LINKED_LIST.
======================================================
removeRemoves a CS2040CFile that exists from our file manager.
remove n/NAME
NAME represents the name of the CS2040CFile to be removed without the file extension.CS2040CFiles that have been added can be removed.Input:
remove n/queue
Output:
======================================================
Successfully removed queue.
======================================================
listList all CS2040CFiles (in any order) present in CLIAlgo.
list
Input:
list
Output:
======================================================
Here are all your CS2040CFiles:
======================================================
1. [CODE] bubble sort
2. [CODE] queue
3. [NOTE] linked list note
======================================================
filterFilters the CS2040CFiles by a user-specified KEYWORD and prints a list of CS2040CFiles filtered based
on the KEYWORD.
filter k/KEYWORD [t/TOPIC_NAME]
KEYWORD represents the criteria to filter the CS2040CFiles.
KEYWORD includes: topic, importance.importance will result in a filtered list of CS2040CFiles in non-increasing order.TOPIC_NAME represents the scope where the filter operation will be applied.
CS2040CFile
in CLIAlgo.KEYWORD and TOPIC_NAME are case-sensitive.Filtering by topic without providing TOPIC_NAME.
Input:
filter k/topic
Output:
======================================================
Here are the filtered CS2040CFiles:
======================================================
[SORTING]
1. bubble sort
[LINKED_LIST]
1. linked list code
2. linked list note
======================================================
Filtering by topic according to TOPIC_NAME.
Input:
filter k/topic t/LINKED_LIST
Output:
======================================================
Here are the filtered CS2040CFiles:
======================================================
[LINKED_LIST]
1. linked list code
2. linked list note
======================================================
Filtering by importance without providing TOPIC_NAME.
Input:
filter k/importance
Output:
======================================================
Here are the filtered CS2040CFiles:
======================================================
1. [NOTE] bubble sort [6]
2. [CODE] linked list code [5]
3. [NOTE] linked list note [3]
======================================================
Filtering by importance according to TOPIC_NAME.
Input:
filter k/importance t/SORTING
Output:
Here are the filtered CS2040CFiles:
======================================================
[SORTING]
1. [NOTE] bubble sort [6]
======================================================
topoPrints a topologically sorted list of CS2040CFiles that comes before and within the topic of a user-specified note.
This will allow the user to be able to revise all pre-requisite topics before revising the topic of the specified note.
topo n/NAME
NAME represents the name of the CS2040CFile where the user wants the topological sort to start from.
NAME are case-sensitive.Note: Among all the notes added to CLIAlgo, only notes that come before and within the topic of the specified note will be printed.
Example: Notes of the following names,
bst,queueandsortingof topicsBINARY_SEARCH_TREE,LINKED_LISTandSORTINGrespectively are added to CLIAlgo. Thetopo n/queueinput will only printqueueandsortingsincebstis of the topicBINARY_SEARCH_TREEthat comes after the topic ofqueuewhich isLINKED_LIST.
Input:
topo n/bst
Output:
======================================================
Here are the topologically sorted CS2040CFiles:
======================================================
[BINARY_SEARCH_TREE]
1. [NOTE] bst
[LINKED_LIST]
2. [NOTE] queue
[SORTING]
3. [NOTE] sorting
======================================================
FilesWhenever a filter or topo command is input by the user, the
CS2040CFile listed by the above commands would be stored in a
Buffer. These stored CS2040CFiles can then be copied into
./export.
The
exportcommand is to further expand the functionality of commands such asfilterandtoposuch that all the files are placed into a single folder. This means that if the user wanted to only access files that are of a certain category, they are able to. For users that have hundreds of files, it improves their productivity!For instance, the user has dozens of files of similar names such as a.txt, aa.txt, aaaaa.cpp. The user just has to categorize the files within the application once and with filter, all the relevant files would be retrieved and placed together.
export
export ONLY works with filter and topo and not other functions such as list../export
would be opened automatically.export is called, an error message
would be printed.export is called, the CS2040CFiles within ./export
are deleted before the CS2040CFiles are copied into ./exportCS2040CFile stored in the Buffer does not exist for some reason
(i.e. if the user deleted the CS2040CFile) an error message would be
printed for each CS2040CFile not found.Input
filter k/topic
======================================================
Here are the filtered CS2040CFiles:
======================================================
[SORTING]
1. TEST
[LINKED_LIST]
1. Test1
======================================================
export
Output
======================================================
Successfully exported file(s).
======================================================
Here is ./export opened after export is input.

exitExits CLIAlgo.
exit
Input:
exit
Output:
======================================================
Thank you for using CLIAlgo! Study hard!
======================================================
Q: How do I transfer my data to another computer?
A: Copy all the CS2040CFiles as well as the data folder into the new Computer.
Q: How do I gain easy access to all my filtered or topologically sorted CS2040CFiles?
A: Enter the export command after filtering or topologically sorting your CS2040CFiles.
Q: What if I am unable to add because the program tells me that my CS2040CFile does not exist?
A: Ensure that all your CS2040CFiles are in the same directory as the .jar file.
| Action | Format | Examples |
|---|---|---|
| help | help [c/COMMAND_TYPE] |
help, help c/add |
| add | add n/NAME t/TOPIC [i/IMPORTANCE] |
add n/bst t/BST i/6 |
| remove | remove n/NAME |
remove n/bst |
| list | list |
list |
| filter | filter k/KEYWORD [t/TOPIC_NAME] |
filter k/topic, filter k/topic t/LINKED_LIST |
| topo | topo n/NAME |
topo n/queue |
| export | export |
export |
| exit | exit |
exit |