Instructor sign-in
Sign in with an instructor account. Your session cookie authorizes every authoring request — no key to paste. (The API key below still works as a fallback, e.g. for scripts or when accounts aren't set up.)
Instructor API key (fallback)
Prefer signing in with an instructor account above. The shared API key
is for emergency/CLI-style use: paste it here to authorize this tab
only (not saved). Prefer python -m api.users create-instructor
for day-to-day authoring.
Problems
Sync new problems (from the shipped seed file)
Adds any problems that ship in data/seed_problems.json but
aren't in this catalog yet. This is non-destructive:
it only inserts missing problems and never deletes, so problems you
authored here are always kept. Use it after new seed content is
deployed.
Update existing refreshes problems that came from the seed file when their shipped content has changed. It can overwrite edits you made here to a seed-origin problem, but never touches problems you created from scratch. Leave it off to only add new ones.
Analytics (from the attempt log)
Per-problem roll-up of logged student submissions: how many attempts,
the correct rate, and the most common misconception codes. Only counts
and codes are shown — never the expected answer. Requires attempt
logging on the server (CHEM_TUTOR_ATTEMPT_LOG=1).
Recent attempts
New problem
Ranking items
Edit the items students will order. Ranks are 1..N under the
chosen direction (1 = first). For multi-step synthesis, set axis to
synthesis sequence, direction to first → last, use
reagent/step labels (SMILES optional), and put
display_substrate / display_target in the
advanced context JSON. Saving writes structured ranking fields into
context (the JSON box below keeps only leftover advanced keys).
Learning objectives
Optional: link this problem to one or more CLOs (writes
problem_ids in learning_objectives.yaml).
Problems that share a reaction class may already appear under CLOs
that list that class — this picker is for explicit links only.
Multiple-choice options
Students pick one option. Mark the correct id below; rationales are withheld until a correct attempt or Show answer.
Mechanism golden
Pick a gated golden from data/mechanisms/. The student
draws curved arrows against that record; expected SMILES stays
[mechanism]. Free-play: mechanism sandbox.
Display bends/tips: arrow polish
(or use Polish arrows below once an id is set).
Structure capture
Draw a structure below (or type a SMILES in the fallback box), then click one of the Capture buttons to copy it into the expected product or a distractor.
SMILES input (works without Ketcher)
Distractors (known wrong answers with targeted feedback)
Preview feedback
Enter a candidate student answer and see exactly what the engine would return — before saving. Structure problems use SMILES; ranking uses a comma-separated item-id order; choice uses an option id.