Skip to main content

Django app for managing small-scale electronics manufacturing inventory.

Project description

Django Clear To Build (ctb)

PyPI GitHub Workflow Status Codecov PyPI - Python Version PyPI - Django Version Read the Docs

A package for tracking inventory for small-scale electronics manufacturing. It tracks parts, vendors, orders, inventories (the parts that you have on-hand), projects across several versions (and their bills of materials, including cost breakdowns), and finally provides clearance to build---indicating that your inventory of parts is sufficient to complete the project build.

This project was built to facilitate my DIY Synth build and has built-in support for the Mouser Search API. The projects themselves are printed circuit board (PCB) projects designed in KiCAD; I've leaned in to the patterns used in that software and rely on the bill of materials that it generates. I've built this to support the patterns employed by my prototype manufacturer of choice OSHPark. This project also uses gitops patterns and relies on projects being represented as git repos (although other data sources are definitely possible if you raise an issue).

Documentation

See the full documentation

Installation

pip install django-ctb

Configuration

Add django_ctb to your INSTALLED_APPS list and (optionally) create a setting for your Mouser API key:

INSTALLED_APPS = [
    ...
    "django_ctb",
    ...
]

CTB_MOUSER_API_KEY = "put-your-real-mouser-api-key-here-yall"

Settings

Housekeeping

TODO v0.2.0

Changed

  • [proj] to use just (from make) for project management commands

  • drf integration

  • associate inventory/projects to user

  • Incorporate analytics methods as actions... maybe persist top recommendations?

    • Test robustly
  • Document workflows -- flowcharts for:

    • Create new project
    • Figuring out what part to use for a design
  • Picking order/picking aide (inventory locations?) (add arbitrary labels to all models?)

  • Generate shopping carts from vendor orders (may have to introspect on how to add items to cart in Tayda with Charlesproxy)

  • Start designing frontend!

    • Minimal means to create a Mouser Part (mouser part number, Symbol (e.g. "U"), Footprint)
    • Project index
      • breakdown of versions
        • BOM link
          • Sortable BOM
        • breakdown of builds
      • Repo links
    • Parts index which helps to do footprint assignment.
      • Shows appropriate name (e.g. "LED_GREEN")
      • Shows footprint
      • Shows availability
      • Commonly used parts (high number of project parts)
      • Filtering by component type, footprint, availability
      • Sortable by component value, symbol, name
      • Store links

Processes

Design and Schematic Layout

As I place parts into the schematic I check:

  • Whether the part is stocked, if not:
    • Revise design to use a stocked part
    • Order part For this I use the "Inventory Lines" index and sort by prefix and (sometimes) by footprint. If I don't see what I want to use there then I fall back to the "Parts" index again sorting by prefix. Ideally I would be able to see the quantity on hand from the parts index to avoid double searching.
  • What part number to annotate onto schematic part (have to click through to "part" from "inventory line")
  • What footprint to associate to schematic part (have to click through to "package" from "part")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_ctb-0.1.1.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_ctb-0.1.1-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file django_ctb-0.1.1.tar.gz.

File metadata

  • Download URL: django_ctb-0.1.1.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_ctb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3fd0e51e5471728a97f1691654e90902537dca2aa9ce964879d3db15e0598a8c
MD5 497556a945951c787a356d4a00cc978b
BLAKE2b-256 30cf316aa42ef33fa3695ee39012c38396138b490f79edb68dde4d6e4f79783e

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_ctb-0.1.1.tar.gz:

Publisher: release.yml on thismatters/django-ctb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_ctb-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: django_ctb-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 48.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_ctb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8e197de8a0eae5c97cb28bc735d2913f188842afbaf4ea2eca4ba53e6c5a0279
MD5 a61dc0b4c0a56d46046d281f46afe6e9
BLAKE2b-256 2366cfc27229671c34047267c8930e4e4709170123f8779c8b5384076064a620

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_ctb-0.1.1-py3-none-any.whl:

Publisher: release.yml on thismatters/django-ctb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page