Skip to content
All projects
In production

ImportCol

Logistics, inventory and cost-proration for a Colombian importer.

Role

Full-stack developer (solo)

Year

2026

  • FastAPI
  • PostgreSQL
  • SQLAlchemy
  • React 19
  • TypeScript
  • Tailwind
  • Docker
  • Caddy
ImportCol — Logistics, inventory and cost-proration for a Colombian importer.

ImportCol replaces an Excel workbook with a production inventory and cost-proration platform in daily use by the client.

// The problem

An importer tracked inventory, batches and cost proration in a fragile Excel workbook, prone to pricing errors that cost real money.

// Decisions

  1. Decision

    Deterministic proration engine with Decimal and a frozen per-batch denominator.

    Impact

    Exact costs and suggested prices; parity verified against the reference Excel.

  2. Decision

    Voiding a sale doesn't delete the row; it flags it and sends the product to "returned", not "available". Selling it again requires an explicit restock.

    Impact

    An accidental void stops being a door to selling the same item twice, and the history stays complete enough to audit who voided what and why.

  3. Decision

    Continuous improvement cycle with the client — 7 phases shipped, the latest requested and deployed the same day.

    Impact

    The system evolves with the business; every deploy with a verified backup and zero data loss.

// Results

Status
In production with a real client — daily use
Real data
469 products · 86 sales · 3 import batches
Deliveries
7 phases in production · the latest requested and deployed the same day
Tests
117 green

// The product

Batch proration table with columns for USD price, tax, participation percentage, allocated expense, total cost in COP and suggested wholesale and retail prices.
The proration engine, made visible: every product carries its share of the batch and the expense allocated to it. The denominator freezes when the batch closes, so adding a product later never rewrites costs already calculated.
Sales list with date, product, customer, price, type and payment method, plus the receipt and void actions.
Voiding doesn't delete the row: it flags it and sends the product to "returned". Selling it again requires an explicit restock, and the trail of who voided what and when survives.
Next project AuditX