The Greenery Room β Certificates of Analysis for Ruidoso Β· Alto Β· Carrizozo | v2.5 β Firebase-ready (runs in Local Demo mode until firebase-config.js is filled in)
Checking sign-inβ¦
Bulk action: publishes every Draft at once, skipping the per-COA visual verification. Use only for a whole batch you intend to publish wholesale β see the staff guide.
Local Demo mode stores everything in this browser only. Cloud mode (signed in with an authorized account) stores the catalog in Firestore and PDFs in Cloud Storage, with a Draft β human verify β Publish workflow. Viewers only ever see Published COAs.
Drag & drop one or many PDFs, or click to browse. The app reads the PDF text and pre-fills the form below β always check it before saving. PDFs are stored in this browser (IndexedDB) in v1 local mode.
Batch / Lot # + Product Name are the lookup keys. A duplicate warning appears if that pair is already filed.
Search product, batch, brand, strain, lab, sample ID, or barcode. This is the screen to use when an inspector or customer asks for a COA.
| Product | Batch / Lot | THC | Expires | Status | Tests | Stores |
|---|
Upload the same NMS2S Current Inventory CSV the Label Generator uses (full export or the sanitized 8-column version both work). Update stock status matches the vault against products currently in stock at any location and powers the Currently in stock filter in Find a COA. Matching is by barcode, by a batch code printed in the product name, by exact product name, or β for two-strain blends β by component strain, and only when the brand lines up. Name and component matches are product-line matches, not proof that a specific package came from the tested lot. Run check lists in-stock items with no COA on file. A demo file is in data/sample-inventory.csv.
Export the catalog to publish it as the shared vault (data/catalog.json) or as a backup / spreadsheet. Import loads a catalog JSON on this PC. PDFs filed locally stay in this browser in v1 β see README for the shared-PDF publishing step.