Note: these instructions are for the version 2 of the app designed as a native mobile app.
Stack: a collection of certain type of data that can be presented to students for the purpose of explaining, teaching, practicing, examining or assessing.
There are 7 types of stacks in ThetaLMS:
Vocabulary
Pairs
Single-Choice
Multi-Choice
Fill-In-the-Blanks
Cross-Match
Text
Stack type 7 (Text) is used for presenting the theory content of the courses.
Stacks 1-6 are used in interactive assessments, exercises, tests and exams. these can be considered as questionnaires.
You may input data into the various fields of the questionnaire type stacks by typing/pasting.
If you have the data ready in external files, for some stacks you can use the Import Tool in the system. But in order to use the Import Tool, you must prepare the data in JSON format.
In this article, first we'll explain how to prepare the data for each type of 1-6 Stacks, and later we'll show how to import them into the system.
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Vocabulary","stack_source":[{"__component":"stack.vocabulary","vocabulary_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source column, and paste {"source":" in all the rows
one column between the Source and Target column and paste ","target":" in all the rows
one column after the Target column and paste "}, in all the rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
NOTE: The new Pairs stack allows storing multiple TARGET values. This is useful for cases in which more than one answer is possible (like in translation drills).
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Pairs","stack_source":[{"__component":"stack.pairs","pairs_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source column, and paste {"source":" in all the rows.
one column before the Source Scatter column and paste ","source_scatter":" in all the rows. (NOTE: If there is no Source Scatter, ignore this line)
one column before ALL the Target columns and paste ","pair_target_list":[
before the FIRST possible Target, add {"target":"
before each additional Target, add "},{"target":"
at the end of all the Targets, add "}] Note:
If there is Target Scatter: one column before the Target Scatter column and paste ,"target_scatter":" in all the rows. (NOTE: If there is no Target Scatter, ignore this line)
in the column after the last column paste "}, in all the rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
If there is NO Target Scatter: in the column after the last column paste }, in all the rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Single Choice","stack_source":[{"__component":"stack.single-choice","single_choice_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source column, and paste {"source":" in all the rows
one column after the Source column and before the Correct column and paste ","correct_choice":" in all the rows
one column before the Wrong column and paste ","wrong_choices":[{"wrong_choice":" in all the rows
If there are additional Wrong columns, add a column before each and paste "},{"wrong_choice":" in all the rows (NOTE: some files contain only 1 Wrong column. For files like this, ignore this step)
in the column after the last column paste "}]}, in all the rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
IMPORTANT: If there are any blank fields in any of the "Wrong" columns, the fields before them (the fields containing the code string) must be deleted.
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
NOTE: in this stack, every question has many potential answers, some of which are correct and others are incorrect. this affects the preparations.
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Multi Choice","stack_source":[{"__component":"stack.multi-choice","multi_choice_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source column, and paste {"source":" in all the rows
one column before the first Target (or Answer) column and paste ","choices":[{"value":" in all the rows
one column after the first target (or answer) column. NOTE: This column is used for marking correct/incorrect the content of the previous column. Since the target columns can contain correct/incorrect answers, you should check each row and mark this column for the answers in the previous column per row as follows:
if any row in the previous column contains a correct answer, paste ","correct":true},{"value":" in the corresponding row
if any row in the previous column contains an incorrect answer, paste ","correct":false},{"value":" in the corresponding row
NOTE: the code strings in the above two last rows contain the code that should go before the next Target (or answer) column. So REPEAT the last step above, marking the content of each column (after adding new columns as needed) as correct/incorrect till you reach the last column.
mark the column that comes after the last Target column as follows:
if the content of the last column is correct, paste ","correct":true}]}, in all the corresponding rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
if the content of the last column is not correct, paste ","correct":false}]}, in all the corresponding rows. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
Delete all asterisks * from all columns.
IMPORTANT: If there are any blank fields in any of the "Target" columns, the fields before them (the fields containing the code string) must be deleted.
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
NOTE: this type of stack can contain sentences with one or more blanks, and this affects the preparations. First, we'll present the preparation of a sentence with a single blank space and later, we'll present the addition for sentences with more than one blank space.
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Fill in the Blank","stack_source":[{"__component":"stack.fill-in-the-blank","fill_in_the_blank_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source (or Sentence) column, and paste {"sentence":" in all the rows
one column before the PlaceHolder column and paste ","blank_item":[{"placeholder":" in all the rows
one column after the PlaceHolder column. and before the Correct column and paste ","correct":" in all rows.
one column after the Correct column. and before the FIRST Wrong column and paste ","wrong_choice":[{"wrong_choice":" in all rows.
one column before each additional Wrong column (if there is any) and paste "},{"wrong_choice":" in all rows
in the last column, paste "}]}]}, after every row. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
Note: Some sentences may contain 2 or more blanks. If the stack contains such sentences, the following must be carried out for them (and not for the sentences with ONE blank):
Delay the last step above till you execute the following for every trio of Placeholder-Correct-Wrong Choice:
before each Placeholder column add a new column and paste "}]},{"placeholder":" in each row.
before each Correct column add a new column and paste ","correct":" in each row.
before the FIRST Wrong column, add a column and paste ","wrong_choice":[{"wrong_choice":" in each row.
before each additional Wrong Options column add a new column and paste "},{"wrong_choice":" in each row.
in the last column, paste "}]}]}, after every row. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
IMPORTANT: If there are any blank fields in any of the "Placeholder", "Correct " and "Wrong Choice" columns, the fields before them (the fields containing the code string) must be deleted.
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
Note: This stack contains exercises which are consist of one sentence, one or more pairs of word sets to be matched (called "Container" and "Item"), some dummy Containers and some dummy Items (dummy containers/items are the ones which the student mustn't cross match)
Note: this stack has a new field called "Directions" which is meant for giving directions specific to the question.
Open a plain text document
Copy/Paste the following lines of code. make sure to preserve the blank space between them (that's where you will insert the word list from the original file, but after some tagging)
{"name":"NAME","type":"Crossmatch","stack_source":[{"__component":"stack.cross-match","cross_match_item":[
]}]}
Copy the name of the file and paste it where it says NAME in the above lines of code.
In the original Stack (questions and answers), put a back-slash before every quotation mark (replace " with \")
In the file you want to upload, add new columns to the existing columns, as follows:
one column before the Source (or Sentence) column, and paste {"sentence":" in all the rows
one column before the DummyContainers column and paste ","dummy_containers":" in all the rows (NOTE: IF there is no DummyContainers, ignore this line.)
one column after the DummyContainers column. and before the DummyItems column and paste ","dummy_items":" in all rows. (NOTE: IF there is no DummyItems, ignore this line.)
one column after the DummyItems column. and before Directions the column and paste ","directions":" in all rows. (NOTE: IF there is no Directions , ignore this line.)
one column after the Directions column and before the first Container column and paste ","matching_values":[{"container":" in all rows
one column after the first Container column and before its matching Items column and paste ","items":" in all rows
Note: If there are additional pairs of Container-Item, the following is repetitive for each pair:
before each Container column, paste "},{"container":" in all rows
before each Item column, paste ","items":" in all rows
in the last column, paste "}]}, after every row. (IMPORTANT NOTE: DELETE THE COMMA , FROM THE LAST ROW).
IMPORTANT: If there are any blank fields in the "Container", "Items", "DummyContainers" and "DummyItems" columns, the fields before them (the fields containing the code string) must be deleted.
delete the table titles.
The rest of the steps are identical for all stacks. See the "Uploading the Prepared Stacks Into the System" at the bottom of the page.
After you prepare the content as outlined above, follow these instructions to upload the data into the system:
Copy the table and paste it between the two lines of code you prepared.
Remove all tabs.
Copy everything and paste it into the left side window of the following JSON checker: https://jsonformatter.org/# and click "Validate"
If everything is tagged correctly, on the right window, it should present the code. Otherwise, it'll say there is a problem.
If there is a problem, you should go over the above steps to find what has been missed.
If the code is good, copy it all and go to the system >> Stacks.
Click "Import JSON"(A modal will open). Delete the current content of the modal.
Paste the code (that you copied from the right site of the JSON checker) into the blank text box.
Click "import".
If everything is OK, the system will show an alert. refresh the page to see the new stack.
If there's a problem, the system will show another alert. In this case, you should go over the above steps to find out what has been missed.