Unlisted teacher documentation

Recall Teacher Guide

Create reusable JSON flashcard decks, test them through Recall, share them as files with students, or publish them to the server when you have administrative access.

Open Recall

Overview

Choose the workflow that matches your access

Both workflows use the same Recall JSON format. Most teachers should use the manual file-sharing workflow. Publishing a deck to the Recall menus requires access to the web server.

Server administrator

Publish to the Recall menus

  1. Create and test the same JSON deck file.
  2. Place it in the correct data/course/unit/ folder on the server.
  3. Add it to data/decks.json so it appears in the Course, Unit, and Study data set menus.
  4. Test the deployed menu entry and, when useful, share a direct assignment URL.
  5. Keep deck and card IDs stable when updating a published deck.

Recommended for most teachers

Create a deck with AI—no programming required

You do not need to write code or understand JSON syntax. The AI deck prompt tells an AI assistant exactly how to turn your lesson materials into a Recall data file.

  1. Gather the trusted source material students should study, such as your notes, vocabulary, standards, reading, or review guide.
  2. Go to Generate a Recall deck with AI and select Copy prompt.
  3. Paste the prompt into your preferred AI assistant.
  4. Replace the bracketed course, unit, standard, title, grade level, card count, optional session size, weekly goal, and code-display settings.
  5. Paste your source material between SOURCE MATERIAL BEGINS BELOW and SOURCE MATERIAL ENDS HERE, then submit the prompt.
  6. After the AI creates the deck, ask it: “Save this as a downloadable JSON file named course-unit-topic.json.”
  7. Download the resulting .json file. Do not rename its ending to .txt, .docx, or .pdf.
  8. Open and test the file in Recall before sharing it with students.
Advanced JSON deck-authoring reference Technical template and field descriptions for manually writing or editing a data file

Advanced deck authoring

Write or edit a JSON data set by hand

Each deck is a separate text file ending in .json. Use valid JSON: property names and text values require double quotation marks, items require commas, and the final item in a list must not have a trailing comma.

Complete deck template

{
  "id": "ap-world-unit-2-v1",
  "title": "Unit 2: Networks of Exchange",
  "course": "AP World History",
  "unit": "Unit 2",
  "standard": "AP World History Topic 2.1",
  "description": "People, technologies, and consequences of exchange networks.",
  "goal": {
    "sessionsPerWeek": 3,
    "minimumMinutes": 10,
    "note": "Complete these short recall sessions by Friday."
  },
  "cards": [
    {
      "id": "silk-roads-purpose",
      "front": "What was the primary purpose of the Silk Roads?",
      "back": "They connected regions of Afro-Eurasia through long-distance trade.",
      "hint": "Think about movement across land routes.",
      "tags": ["Silk Roads", "Trade"]
    },
    {
      "id": "caravanserai",
      "front": "What was a caravanserai?",
      "back": "A roadside inn where merchants and animals could rest and resupply.",
      "tags": ["Silk Roads", "Infrastructure"]
    }
  ]
}
Field Required Purpose
idYesPermanent deck identifier used to connect local progress to this deck.
titleYesStudent-facing deck title.
courseRecommendedCourse name shown above the study dashboard and on receipts.
unitRecommendedUnit, chapter, or standard label.
standardOptionalStandard covered by the deck. Recall prints it in the lower-right corner of study cards and study screenshots. If omitted, Recall uses the unit, then the course.
descriptionRecommendedA short explanation of the deck's scope.
goalOptionalWeekly goal shown to students, such as required sessions per week and minimum minutes per session. If omitted, no goal is displayed.
sessionSizeOptionalLimits each session to this many cards: random cards during ordinary full-deck practice and prioritized eligible cards during Needs Review. It must be a positive integer no greater than the number of cards.
cardsYesList containing all flashcard objects.

Card fields

  • id, front, and back are required.
  • hint is optional and appears before the answer is revealed.
  • frontCode is optional text displayed in a formatted code block below the question. Use it for Java, AP CSP pseudocode, or other code students must trace or interpret.
  • cardType may be set to application for tracing, calculation, interpretation, diagnosis, or contextual-use cards. This helps Recall balance automatically assembled unit reviews.
  • standard is optional on an individual card. Use it when one deck spans several standards so an automatic unit review retains that card's specific alignment.
  • tags is an optional list of topics shown on the card and concept browser.
  • Every card ID must be unique within its deck.

Optional weekly goal

Add goal only when you want students to see a weekly target. The app accepts sessionsPerWeek and minimumMinutes; it also accepts requiredSessionsPerWeek and minimumSessionMinutes. If goal is missing or incomplete, the page simply hides the goal card.

"goal": {
  "sessionsPerWeek": 3,
  "minimumMinutes": 10,
  "note": "Complete these by Friday."
}

AI-assisted authoring

Generate a Recall deck with AI

Replace the bracketed settings, paste your course material at the bottom, and submit the entire prompt to an AI assistant. Review every card for accuracy before publishing the JSON file.

Recall JSON deck builder prompt Ready to copy
You are creating a JSON flashcard data set for the Recall study-card website.

COURSE: [ENTER COURSE NAME]
UNIT: [ENTER UNIT, CHAPTER, OR STANDARD]
STANDARD: [OPTIONAL: ENTER THE STANDARD COVERED, OR WRITE NONE]
DECK TITLE: [ENTER STUDENT-FACING TITLE]
TARGET GRADE OR COURSE LEVEL: [ENTER LEVEL]
APPROXIMATE NUMBER OF CARDS: [ENTER NUMBER, USUALLY 15-40]
SESSION SIZE: [OPTIONAL: NUMBER OF RANDOM CARDS PER FULL-DECK SESSION, OR NONE]
WEEKLY GOAL: [OPTIONAL: ENTER REQUIRED STUDY SESSIONS PER WEEK AND MINIMUM MINUTES PER SESSION, OR WRITE NONE]
CODE DISPLAY: [OPTIONAL: JAVA, AP CSP PSEUDOCODE, OTHER CODE, OR NONE]

TASK
Convert only the source material pasted below into a high-quality active-recall flashcard deck.

CONTENT RULES
1. Use only facts and concepts supported by the supplied source material. Do not invent missing information.
2. Select the most instructionally important concepts rather than converting every sentence.
3. Put one clear retrieval target on each card.
4. Write the "front" as a direct question that requires the learner to produce an answer from memory.
5. Avoid yes/no questions, trivia, vague prompts, and questions answerable from clues in their wording.
6. Keep each "back" concise but complete. Define necessary terms and preserve important qualifications.
7. Use age-appropriate language for the requested level without reducing factual accuracy.
8. Add a short "hint" only when it supports retrieval without giving away the answer. Omit the hint property when it is unnecessary.
9. Add 1-3 useful topic tags to every card.
10. Cover a balanced range of vocabulary, processes, causes, effects, comparisons, evidence, tracing, or applications appropriate to the source.
11. When a card asks students to trace, interpret, diagnose, or identify code, put the direct question in "front" and the code in a separate "frontCode" string. Represent line breaks with escaped \n sequences inside the JSON string so the app displays a multiline formatted block. Do not put Markdown code fences or HTML in any field.
12. Make every code question self-contained. Include all declarations, initial values, inputs, method or procedure context, list-index rules, and other information needed to determine the answer.
13. For code-based cards, include the complete result or explanation in "back"—not merely the name of a concept. If students must predict output, state the exact output and briefly explain the important execution rule.
14. Add "cardType": "application" to cards that require tracing, calculation, interpretation, diagnosis, selection of an approach, or use of a concept in context. Omit "cardType" for ordinary concept or vocabulary cards. Recall uses this distinction to balance automatic unit-review sessions.
15. Remove duplicate or nearly duplicate cards.
16. If the source is insufficient for the requested number of cards, create fewer cards instead of inventing content.
17. If SESSION SIZE gives a number, include it as the top-level "sessionSize" value. It must be a positive integer no larger than the number of cards. Recall randomly selects that many cards for ordinary full-deck practice and prioritizes up to that many eligible cards during focused Needs Review practice. If SESSION SIZE is NONE, omit it and Recall uses the complete eligible set.
18. If a weekly goal is provided, include a top-level "goal" object with positive integer "sessionsPerWeek", positive integer "minimumMinutes", and an optional "note". If no weekly goal is provided, omit the "goal" object.
19. If one standard is provided, include it as the top-level "standard" string. If several standards are provided, "standard" may be an array of strings. When a deck covers several standards, also add the most specific matching "standard" string to each card so automatically assembled reviews can preserve and balance the alignment. If none is provided, omit the standard property; Recall will display the unit or course instead.
20. Do not create Needs Review or partial-unit review decks. Recall creates those interfaces automatically from student performance and the server manifest.

ID RULES
1. Create a unique deck "id" using lowercase letters, numbers, and hyphens, ending in "-v1".
2. Create a unique, descriptive card "id" for every card using lowercase letters, numbers, and hyphens.
3. Card IDs must describe the concept, not its position. Use "silk-roads-purpose", not "card-1".
4. Do not reuse an ID within the deck.

OUTPUT RULES
1. Return one valid JSON object and nothing else.
2. Do not use Markdown code fences.
3. Do not include commentary before or after the JSON.
4. Use double quotation marks around all property names and text values.
5. Do not include trailing commas.
6. Use this top-level structure. Include "sessionSize" only when SESSION SIZE gives a number, and include "goal" only when WEEKLY GOAL gives specific requirements:

{
  "id": "course-unit-v1",
  "title": "Student-Facing Deck Title",
  "course": "Course Name",
  "unit": "Unit Name",
  "standard": "Optional standard covered by this deck",
  "description": "One-sentence description of the deck.",
  "sessionSize": 10,
  "goal": {
    "sessionsPerWeek": 3,
    "minimumMinutes": 10,
    "note": "Optional teacher note shown with the weekly goal."
  },
  "cards": [
    {
      "id": "unique-concept-id",
      "front": "A direct active-recall question",
      "frontCode": "Optional code shown in a formatted block",
      "back": "A concise, accurate answer",
      "hint": "Optional hint",
      "cardType": "application",
      "standard": "Optional specific standard for this card",
      "tags": ["Topic", "Skill"]
    }
  ]
}

FINAL QUALITY CHECK BEFORE RESPONDING
- Confirm that the JSON is syntactically valid.
- Confirm that every card has id, front, back, and tags.
- Confirm that every ID is unique.
- Confirm that frontCode, when present, is a plain text JSON string and the front still contains a direct question.
- Confirm that line breaks inside frontCode are escaped as \n so the complete output remains valid JSON.
- Confirm that every code question includes enough context to determine the complete answer.
- Confirm that cardType is "application" only on cards that require application, tracing, calculation, interpretation, or diagnosis.
- If sessionSize is present, confirm it is a positive integer no larger than the number of cards.
- If a weekly goal is present, confirm its session and minute values are positive integers.
- Confirm that all claims are supported by the source.
- Confirm that the optional standard accurately matches the deck content.
- Confirm that the output contains no Markdown or explanatory text.

SOURCE MATERIAL BEGINS BELOW
--------------------------------------------------
[PASTE NOTES, READING, VOCABULARY, STANDARDS, OR OTHER SOURCE MATERIAL HERE]
--------------------------------------------------
SOURCE MATERIAL ENDS HERE

Manual workflow

Test the JSON file by opening it in Recall

Use the same manual process your students will use. This confirms that the file is valid, the deck opens correctly, and the directions make sense before you distribute it.

  1. Save the AI output or your hand-written deck as a plain-text file ending in .json, such as ap-world-unit-2.json. Do not save it as .txt, .docx, or a PDF.
  2. Open Recall and complete the learner setup. You may use a clearly labeled test profile.
  3. Under Current material, find Or open a study data set and select the JSON file from your device.
  4. Confirm that the expected course, unit, standard, deck title, description, weekly goal, and card count appear.
  5. Select Browse concepts and inspect every question, answer, hint, and tag.
  6. Practice several cards and test all three ratings: Don't know, Review, and Know it.
  7. Complete a session and download the study screenshot. Confirm that its identifying information and deck statistics are correct.
  8. Refresh Recall, open the same JSON file again, and confirm that progress is restored in the same browser.

Manual workflow

Share a deck through Canvas or another LMS

The JSON file can be distributed like any other class attachment. Students need both the deck file and a link to Recall.

Recommended Canvas setup

  1. Create a Canvas Assignment, Page, Announcement, or Module item for the study activity.
  2. Upload the tested .json file to Canvas Files or attach it directly to the item.
  3. Add a clearly labeled link such as Download the Unit 2 Recall deck.
  4. Add a second link to the Recall study page.
  5. Paste the student directions from the next section into the Canvas item.
  6. If students must document practice, enable a file-upload submission and ask for the Recall study screenshot—not the JSON deck.

Other ways to distribute the file

  • Attach it to an assignment or post in another LMS.
  • Share it through a school-managed cloud drive with download permission.
  • Email it as an attachment when school policy permits.
  • Place it in a shared class folder or on a teacher website.

Directions to give students

Download and open a teacher-provided deck

You may copy and paste these directions into Canvas or another LMS.

  1. Download the JSON study file attached by your teacher. Leave the filename ending in .json.
  2. Open the Recall study page in the browser you plan to use for studying.
  3. Enter your first name, last name, and email if Recall asks for your learner information.
  4. In Current material, find Or open a study data set.
  5. Select the downloaded JSON file. It will usually be in your Downloads folder or the Files app on a tablet.
  6. Confirm that the course, unit, and deck title match the assignment.
  7. Select Study cards due now or Practice the full deck. Say each answer aloud before revealing it and rate your recall honestly.
  8. When required, complete the session, select Download study screenshot, and upload that PNG image to the LMS assignment.

Returning for another session

Use the same browser and device whenever possible. Recall remembers progress in that browser, but a manually opened deck may need to be selected again after the page is refreshed or reopened. Downloading another copy is not necessary if the original JSON file remains on the device.

Server administrator directions Publishing decks to the hosted Course, Unit, and Study data set menus

Server administrator workflow

Publish decks in course and unit folders

This workflow is only for someone who can upload files to the Recall web server. Teachers without server access should share the tested JSON file through their LMS.

Folder structure

Organize each deck under a course folder and a unit folder. Use short, URL-safe folder and filenames containing lowercase letters, numbers, and hyphens.

study/
  data/
    ap-csp/
      unit-3/
        algorithms-and-programming.json
        procedure-vocabulary.json
      unit-4/
        data-and-privacy.json
    mathematics-i/
      linear-functions/
        linear-functions-review.json

Add the deck to the menus

Open study/data/decks.json and add the course, unit, and deck path to the nested manifest. The manifest controls the three student menus; the individual JSON file contains the flashcards.

{
  "courses": [
    {
      "id": "ap-csp",
      "title": "AP CSP",
      "units": [
        {
          "id": "unit-3",
          "title": "Unit 3: Algorithms and Programming",
          "decks": [
            {
              "title": "Algorithms and Programming Review",
              "path": "data/ap-csp/unit-3/algorithms-and-programming.json"
            },
            {
              "title": "Procedure Vocabulary",
              "path": "data/ap-csp/unit-3/procedure-vocabulary.json"
            }
          ]
        }
      ]
    }
  ]
}

After uploading both the deck and updated manifest, open Recall without using a cached copy and verify the Course, Unit, and Study data set menus. Recall can also discover nested JSON files when the server exposes directory listings, but decks.json is the reliable source of menu organization.

Server administrator workflow

Create a URL that preloads a hosted deck

After a deck is published on a web server, add ?deck= followed by its JSON path to the Recall URL. Students enter their learner information and the assigned deck loads automatically. This option does not work for a JSON file that exists only on a teacher's computer or inside a restricted LMS attachment.

Deck hosted with Recall

https://johnmcgarvey.com/recall/?deck=data/ap-csp/unit-3/algorithms-and-programming.json

Deck hosted on another website

https://johnmcgarvey.com/recall/?deck=https%3A%2F%2Fexample.com%2Fdecks%2Funit-2.json

For an external deck, URL-encode the JSON address and make sure its host permits cross-origin requests through CORS. Hosting the JSON inside study/data/ is usually simpler and more reliable on school networks. Teachers using the manual workflow should distribute the JSON attachment and Recall link separately instead.

Learning routine

How students should use Recall

  1. Enter their own first name, last name, and email.
  2. Open the teacher-provided JSON file or confirm that the correct hosted course, unit, and deck are selected.
  3. Read the front of the card and say a complete answer aloud before revealing it.
  4. Compare their response with the answer, then select Don't know, Review, or Know it honestly.
  5. Complete short sessions when cards become due instead of cramming all cards at once.
  6. After two completed sessions, review the Journal Checkpoint and, when required, write the identified concept and its complete answer in a journal.
  7. Download a study screenshot after a completed session when requested by the teacher.

The ratings control the schedule. Don't know resets the interval and makes the card due soon. Review schedules the card for the next day and steps its interval back. Know it advances through progressively longer intervals.

Reflection and handwritten retrieval

Journal Checkpoint after two sessions

After a student completes at least two sessions in the same study data set, Recall displays the concept with the strongest accumulated evidence of difficulty. A Don't know rating contributes more to the difficulty ranking than Review; repeated difficulty, recall rate, and recency help resolve close results. The checkpoint updates as the student continues practicing.

What students see

  • The original retrieval question and any Java code or other context stored with the card
  • The complete answer—not merely the topic name or question
  • The standard and tags when the deck provides them
  • A suggestion to write the concept in their own words and add a definition, example, diagram, or short code segment when a journal is required

The checkpoint is calculated separately for each data set. Recall does not need to know the school calendar or the teacher's assignment dates; the second completed session unlocks it for that deck. If the student has not marked any card Don't know or Review, the checkpoint remains hidden because the app does not have evidence of a difficult concept.

Instructional rationale and intended benefit

The checkpoint is intended to turn private performance data into a small, actionable reflection. Instead of presenting every missed item, it focuses attention on one concept and asks the learner to restate, elaborate, and connect it to an example. The hoped-for benefit is stronger metacognitive awareness: students identify a weakness, externalize the complete idea, and leave with a concrete target for later retrieval.

Handwriting may add useful motor, visual, and sensory information to the learning episode. A 2025 peer-reviewed review reports broader engagement of motor, sensory, visual, and cognitive systems during handwriting and describes potential benefits for learning and memory in some educational contexts.1 A 2024 high-density EEG study also found more elaborate connectivity patterns when 36 university students formed words by hand than when they typed with one finger.2

Suggested classroom use

  • Ask for one checkpoint entry near the end of the weekly assignment rather than copying every card.
  • Require the complete answer plus an example, explanation, diagram, or application—not transcription alone.
  • Have students revisit the entry orally or through a short retrieval prompt during the next class.
  • Evaluate completion and thinking rather than penmanship.
  • Provide an equivalent accessible method when handwriting creates a barrier.

Research cited

  1. Marano, Giuseppe, et al. “The Neuroscience Behind Writing: Handwriting vs. Typing—Who Wins the Battle?Life 15, no. 3 (2025): 345.
  2. Van der Weel, F. R. (Ruud), and Audrey L. H. Van der Meer. “Handwriting but Not Typewriting Leads to Widespread Brain Connectivity.” Frontiers in Psychology 14 (2024): 1219945.
  3. Pinet, Svetlana, and Marieke Longcamp. “Commentary: Handwriting but Not Typewriting Leads to Widespread Brain Connectivity.” Frontiers in Psychology 15 (2025): 1517235.

Accountability

Study screenshots

After a completed session, the student can select Download study screenshot. Recall creates a PNG image containing:

  • Student name and email
  • Current date and time
  • Course and deck title
  • Standard covered in the lower-right corner, falling back to the unit or course when no standard is provided
  • Known percentage, sessions, minutes studied, total reviews, and cards due
  • Up to eight recent sessions with Know, Review, and Don't Know totals

The student can upload this image to the teacher's normal assignment system. Recall does not transmit it.

Student privacy

What is and is not stored

Recall has no login server or student database. The profile, card schedule, and session history are saved in the current browser's localStorage. This means:

  • Nothing is automatically sent to a teacher, school, or third party.
  • Progress normally stays on one browser and one device.
  • Private or incognito browsing may erase progress when the window closes.
  • Clearing browser data removes the profile and study history.
  • Students using a shared computer should clear their local data when appropriate.
  • The PNG receipt is created on the device and leaves it only when the student chooses to submit it.

Quality check

Final check before assigning a deck

  1. Confirm that the filename ends in .json and validate it with a JSON-aware editor or validator.
  2. Open the file manually in Recall, even if it will later be published on the server.
  3. Confirm the title, course, unit, optional standard, description, and number of cards.
  4. Browse the concepts and check that every question and answer is complete.
  5. Complete several cards using all three ratings.
  6. Complete two sessions with at least one difficult rating and confirm that the Journal Checkpoint contains both the question context and complete answer.
  7. Refresh the page, reopen the manual file if necessary, and confirm progress remains available.
  8. Complete a session and inspect the downloaded study screenshot.
  9. Download the file from the actual LMS post and repeat the student directions on a student device or school network when possible.
  10. For a server-published deck, also test its menu entry and direct assignment URL after deployment.