← All projects

SIMS: Custom Odoo Inventory System

shelved

A shelved but substantial Odoo ERP suite for repair-shop inventory, jobs, logistics, labels, photos, accounting, and permissions.

OdooPythonERPPostgreSQLOWL

Overview

SIMS is a suite of custom Odoo 19 modules I built to replace the legacy inventory web app the shop was stuck with. It models the real work of a medical-equipment refurbisher (assets and the jobs that move them through repair, shipments and receipts, purchase orders, label printing, and photo workflows) as a proper data model inside Odoo, not a pile of spreadsheets and manual steps.

What I built

  • sims core, the inventory system itself: assets, models, locations, repair jobs, logistics (shipments/receipts/POs), printing, and reporting, with cron jobs, sequence generation, and a full set of record-level security and portal rules.
  • testbed_tracker: warehouse test-bed systems, a compatibility matrix, and gap analysis over saleable-unit counts.
  • compat_data: admin-curated compatibility ingestion with a staged review and approval-only write path.
  • incentivision: employee incentives, bounties, awards, and a small storefront with approvals.
  • org_groups: a seniority- and department-based permission hierarchy that the rest of the suite routes its access rules through.
  • mail_ext and ui_components: a messaging-menu history tab and shared OWL backend primitives.
  • A Xero bridge for syncing accounting data out of the system.

Built in Python and Odoo’s OWL front-end framework, on PostgreSQL, with QR/label generation (qrcode, Pillow) and S3-compatible photo storage (boto3), and deployed through Odoo.sh.

Status

Shelved. It started as a team effort, and I ended up carrying the bulk of the build myself. I cared a lot about getting the data model right. When the broader modernization push was cut for scope and time, the suite was shelved. The one piece that lived on is the label-printing integration, which I extracted and grew into my Legacy Web Tooling.