Admin panel
Four sections in a sidebar — Compounds, Classes & applications, Site text, News — plus sign-in. Conventional back-office layout, the site’s own colours and type, every screen usable on a phone.
Things to try
- Compounds: type “bromo” or a CAS, filter by class or “Hidden”; the ⋯ menu hides or deletes a row (with a confirm).
- Open a compound: the CAS field checks its digit, the SMILES field draws a preview, “Draw from SMILES” makes it the structure image, price rows add and remove, the save bar shows “Unsaved changes”. Clear the name and press Save to see the error.
- Classes: Rename edits in place; Delete on a class in use asks what to do with its compounds; Add appends a row.
- Site text: three forms, each with its own Save.
- Below 1024 px the sidebar is a drawer (menu button); the compound table turns into a list.
Decisions
- Lands on Compounds — the daily task; no dashboard
- Structure image is required (upload); SMILES optional, can draw the image and later powers structure search
- “Shown on the site” toggle is the everyday action; Delete confirms and is for mistakes
- Deleting a class or application in use asks: move its compounds, or just unassign
- Plain text with paragraphs for About / Custom synthesis; no rich-text editor
- Prices: quantity as typed (“5 g”, “100 mg”), € fixed; no rows = “Price on request”
- Sign-in: email + password, one role
- Class assignments on the 15 sample rows are illustrative — the per-compound classes weren’t scraped
Screens
Generated from _build/admin.py; behaviour in admin/admin.js. Nothing is saved — every Save shows a toast and clears “Unsaved changes”.