Instructor Authoring

Create and edit problems. Draw structures in Ketcher or paste SMILES. ← student view · Mechanism sandbox · Arrow polish

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).

New problem

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.

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.