The Operating System for Reusable Packaging. Digital management of Deposit Return Schemes (DRS), reusable asset tracking, and circular packaging loops.
NovaPack is the Vertical Sector responsible for the "Container" layer of the economy. While NovaRetail tracks the product inside the box, NovaPack tracks the box itself. It provides the digital infrastructure for cities and brands to shift from "Single-Use" to "Reuse," managing the financial deposits and reverse logistics required to get a bottle back to the filler.
It acts as the compliance engine for the EU Packaging and Packaging Waste Regulation (PPWR).
Packaging accounts for 36% of municipal solid waste. NovaPack solves the logistics of reuse:
- Universal Deposit System: A unified digital wallet for deposits. You pay a β¬1 deposit on a coffee cup in Berlin and get refunded when you drop it in a smart bin in Munich.
- Asset Tracking: Tracking millions of crates and pallets (B2B) to prevent loss and optimize cleaning cycles.
- EPR Compliance: Automated reporting for brands to prove they met their "Reuse Targets" (e.g., "30% of beverages sold in refillable bottles").
NovaPack is a high-transaction-volume sector. It links physical return points (Reverse Vending Machines) with financial ledgers.
graph TD
User((Consumer)) -->|1. Scan QR| UI[NovaPack App]
UI -->|REST| API[NovaPack API]
subgraph "The Point of Return (NovaInfra)"
RVM[Reverse Vending Machine] -->|MQTT| Infra[NovaInfra]
Infra -->|Item Verified| API
end
subgraph "The Financial Layer"
API -->|Hold Deposit| Fin[NovaFin]
API -->|Release Refund| Fin
end
subgraph "The Logistics Layer"
API -->|Bin Full Alert| Logistics[NovaLogistics]
API -->|Update Status| Mat["NovaMaterial (Passport)"]
end
- NovaFin: The escrow engine. When a product is sold, NovaFin holds the deposit. When NovaPack confirms the return, NovaFin releases the funds to the user.
- NovaInfra: Manages the "Smart Bins" and Reverse Vending Machines (RVM). It validates that the returned bottle is authentic and not a counterfeit.
- NovaLogistics: Optimizes the "Milk Run." It tells trucks exactly when to pick up empty crates from retailers to minimize empty miles.
- NovaMaterial: Stores the material data of the packaging (e.g., "Food Grade rPET").
Replaces physical tokens or paper receipts with a digital ledger.
- Check-Out: +β¬0.50 added to bill. Token minted in
NovaFin. - Check-In: User scans QR at drop-off. Token burned; β¬0.50 credited to wallet instantly.
For industrial crates and pallets.
- Cycle Counting: Tracks how many "Trips" a crate has made.
- Maintenance: Flags crates for repair (
NovaMake) or recycling (NovaRecycle) after 50 cycles to prevent breakage.
Prevents the "Overflowing Bin" problem.
- Bins report fill-levels via
NovaInfra. - NovaPack aggregates this data to predict peak return times (e.g., "Saturday Morning after the Market").
Ensures food safety for reuse.
- Tracks what was last inside the container.
- Rule: A bucket used for "Paint" (Chemicals) cannot be re-assigned to "Flour" (Food), even if washed.
We use DevContainers to provide a consistent development environment.
- Docker Desktop
- VS Code (with Remote Containers extension)
- Clone the repo:
git clone https://github.com/novaeco-tech/novapack.git cd novapack - Open in VS Code:
- Run
code . - Click "Reopen in Container" when prompted.
- Run
- Start the Sector:
make dev
- Dashboard: http://localhost:3000
- API: http://localhost:8000/docs
# Scheme Settings
DEFAULT_DEPOSIT_VALUE=0.25
CURRENCY=EUR
MAX_CYCLES_BEFORE_RETIRE=100
# Integrations
NOVAFIN_URL=http://novafin-api:8000
NOVAINFRA_URL=http://novainfra-api:8000This is a Monorepo containing the sector's specific logic.
novapack/
βββ api/ # Python/FastAPI (Domain Logic)
β βββ src/
β β βββ deposits/ # Escrow & Refund logic
β β βββ assets/ # Serialized container tracking
β β βββ sanitation/ # Safety rules for food-grade reuse
βββ app/ # React/Next.js Frontend (Consumer & Operator UI)
β βββ src/
β β βββ wallet/ # User deposit view
β β βββ scanner/ # QR Code reader for returns
βββ website/ # Documentation (Docusaurus)
βββ tests/ # Integration tests
We use Transaction Simulation for testing.
- Deposit Flow:
make test-deposit- Simulates: Purchase (Deposit Lock) -> 5 Days Pass -> Return (Sensor Trigger) -> Refund (Unlock).
- Bin Logic:
make test-bins- Simulates 50 bins filling up at different rates. Verifies that
NovaLogisticsreceives a "High Priority" pickup request for the full ones.
- Simulates 50 bins filling up at different rates. Verifies that
We need contributors with backgrounds in Logistics, Industrial Design, and IoT. See CONTRIBUTING.md for details.
Maintainers: @novaeco-tech/maintainers-sector-novapack