🌿 COA Vault

The Greenery Room β€” Certificates of Analysis for Ruidoso Β· Alto Β· Carrizozo  |  v2 β€” Firebase-ready (runs in Local Demo mode until firebase-config.js is filled in)

Account

Checking sign-in…

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.

0Total COAs filed
0Valid
0Expiring ≀ 30 days
0Expired
3Stores covered

1. Upload COA PDFs

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.

πŸ“„ Drop COA PDFs here, or click to select files

2. Catalog details

Batch / Lot # + Product Name are the lookup keys. A duplicate warning appears if that pair is already filed.

Attached file: β€” none β€”

3. Find a COA

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.

ProductBatch / LotTHCExpiresStatusTestsStores

4. Missing-COA check (from NMS2S inventory)

Upload the same NMS2S Current Inventory CSV the Label Generator uses. The app compares barcodes and product names against the vault and lists in-stock items with no COA on file. A demo file is in data/sample-inventory.csv.

5. Share / backup

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.

COA