hello@simplico.net (+66) 97 496 6397 WhatsApp: (+66) 83 001 0222 LINE: iiitum1984
Django 5 · PostgreSQL · role-based access

From the scale to the invoice, one system tracks every kilo.

simpliRecycle runs a scrap-recycling depot end to end — supplier weigh-ins, A/B/C grading with price snapshotting, FIFO inventory, sales orders, and VAT invoicing — with a mobile-first buying flow built for the yard, not the office.

10
material types, priced by grade
15
suppliers on record
FIFO
oldest-lot-first stock allocation
A/B/C
grade tiers, snapshotted at intake

Pipeline

Six apps, one FK-wired pipeline

No event bus, no signals — each stage hands off to the next through a plain foreign key. Inventory and reporting don't own any data of their own; they're read-only views over what intake, sales, and billing already recorded.

%%{init: {
  "theme":"base",
  "themeVariables": {
    "background":"#11150f",
    "primaryColor":"#12261c",
    "primaryTextColor":"#eef1ea",
    "primaryBorderColor":"#3fd694",
    "secondaryColor":"#171b14",
    "tertiaryColor":"#171b14",
    "lineColor":"#aeb5a6",
    "textColor":"#eef1ea",
    "fontFamily":"IBM Plex Mono, monospace",
    "fontSize":"15px"
  },
  "flowchart": { "htmlLabels": false, "curve": "basis", "nodeSpacing": 55, "rankSpacing": 90, "padding": 14 }
}}%%
flowchart LR
  subgraph actors[ ]
    direction TB
    SUP["🏭 Suppliers
    scrap factories"]
    BUY["🏗️ Buyers
    smelters and recyclers"]
    STAFF["👷 Depot Staff
    weigher, cashier, manager"]
  end

  subgraph pipeline[ ]
    direction TB
    IN["intake
    Lot / LotGrade"]
    SA["sales
    FIFOAllocation"]
    BI["billing
    Invoice"]
  end

  CAT[("catalog
  Variety, Grade, PriceTable")]
  INV[("inventory
  read-only over LotGrade")]
  REP[("reporting
  read-only over billing/intake/sales")]

  SUP -- "weigh-in" --> STAFF
  STAFF -- "records" --> IN
  CAT -.->|price lookup| IN
  IN -- "graded lots" --> INV
  IN -- "oldest first" --> SA
  BUY -- "places order" --> SA
  SA --> BI
  IN -.-> REP
  SA -.-> REP
  BI -.-> REP

  classDef svc fill:#12261c,stroke:#3fd694,color:#eef1ea
  classDef actor fill:#171b14,stroke:#232922,color:#eef1ea
  classDef store fill:#171b14,stroke:#3fd694,color:#eef1ea
  class IN,SA,BI svc
  class SUP,BUY,STAFF actor
  class CAT,INV,REP store
records / transacts read-only aggregation price snapshot lookup

Screens

What each role actually sees

Live captures from a running instance, seeded with demo data — real layouts, real numbers, not mockups.


Features

Built for four roles, not one login

Weigher, cashier, manager, admin — enforced with a role check on every view, not Django's built-in permission system.

⚖️

Weighers

Onsite Buying · field-first
  • Mobile-first intakea big weight summary and minimal fields, built for outdoor, hot, one-handed use.
  • Live QR mirrorthe supplier's own officer watches the weigh-in on their phone, live, with no login.
  • Quick-add on the flya new truck, worker, or container type without ever leaving the form.
  • One missing-fields modaleverything still needed before submit, listed at once — not one native tooltip at a time.
🧾

Cashiers

Sales & Billing
  • FIFO allocationconfirming an order locks and pulls stock oldest-lot-first, automatically.
  • Collision-free numberinglot, order, and invoice numbers never collide, even submitted at the same second.
  • VAT-aware invoicingsubtotal, tax, and balance due, generated straight from the confirmed order.
  • Farmer & buyer paymentsevery payment recorded against its invoice, or a supplier's running balance.
📊

Managers

Reporting & Oversight
  • Daily dashboardrevenue vs. cost, payable vs. receivable, and aging stock, at a glance.
  • Aging-stock alertslots sitting 22+ days flagged before they become a write-off.
  • Exportable reportsa financial report the accountant can open as CSV.
  • Full audit logwho changed what, and when.
🔐

Admins

Full Control
  • Role-based accessweigher, cashier, manager, admin — each sees only what their job needs.
  • Suppliers, buyers & pricingfull CRUD over the depot's trading partners and price table.
  • Depot settingscompany info, VAT rate, and invoice numbering, in one place.
  • Session cleanupdelete a mis-recorded onsite session before it's ever confirmed.
Django 5PostgreSQLhtmx Alpine.jsBootstrap 5 + crispy-forms WeasyPrintDocker Compose

Get in touch

Need an operations platform like this for your own business?

Tell us your workflow, your volume, and your timeline — Simplico builds and operates platforms like this one for depots, traders, and yards across Thailand and SEA.

LINE
ID: iiitum1984
WhatsApp
+66 83 001 0222

Bangkok-based · Thai & English · 48-hour scoped proposal turnaround

Email us Call us WhatsApp LINE: iiitum1984 LINE