Skip to content

jjheffernan/makemcmasterBOM

Repository files navigation

MakerWorld BOM → McMaster-Carr Generator

Lightweight web app that accepts a MakerWorld model URL, scrapes the project BOM, and generates an editable hardware table with McMaster-Carr search links.

Quick start

# Python environment
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,playwright]"
playwright install chromium   # one-time, for MakerWorld scraping

# Frontend
cd frontend && npm install && cd ..

# Run all dev services (API + Vite + JupyterLab)
./scripts/dev.sh

Optional: ./scripts/dev.sh --debug for verbose logging and the in-app debug panel.

Cleanup

./scripts/cleanup.sh           # caches and build output (keeps venv + node_modules)
./scripts/uninstall.sh --yes   # full local uninstall

See Development guide — Cleanup and uninstall for options (--deep, --with-playwright, --dry-run).

Development workflow

  1. Prototype logic in notebooks/ (same pipeline code as the API — see docs/notebooks.md)
  2. Promote stable code into backend/services/
  3. Expose via FastAPI routers
  4. Connect frontend screens

Stack

Layer Tools
Backend FastAPI, Pydantic, httpx, Playwright (optional), BeautifulSoup, pandas
Frontend React, shadcn/ui, Tailwind CSS, TanStack Table
Dev JupyterLab, pytest

Project structure

notebooks/     Pipeline development notebooks (shared entry points with API)
backend/       FastAPI app, services, models, routers, rate limiting
frontend/      React UI
tests/         pytest suite (unit + optional live integration)
data/          McMaster routing JSON, taxonomy crawl output — see data/README.md
docs/          Documentation (start at docs/README.md)
.github/       CI: tests on push/PR; monthly McMaster taxonomy crawl

Documentation

Full documentation lives in docs/:

About

scan 3d print file for bill of materials, generate automated BOM via description.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors