MakerWorld BOM to McMaster Matcher
Rule-based web app that scrapes MakerWorld hardware lists and maps rows to McMaster-Carr links with tiered confidence, bolt-length verification, and CSV export.

Enfoque del proyecto
Key Features
Scope of work
Build a focused BOM hygiene tool for 3D-print projects: paste a MakerWorld model URL, extract embedded, description, and spreadsheet hardware lists, and produce an editable table with McMaster-Carr product or search links.
Core constraints from day one:
- No LLM matching — rule-based parsers and deterministic tier resolution only
- Honest uncertainty — low-confidence rows stay visible for human verification
- Notebook-first development — pipeline stages prototyped in Jupyter before promotion to FastAPI services
- Scoped MVP — in-memory projects, CSV export, no checkout or ERP integration
Out of scope: multi-vendor procurement, automatic McMaster ordering, hosted third-party McMaster APIs as default path.
Timeline
| Phase | Window | Milestone |
|---|---|---|
| Scaffold | Jun 2026 | FastAPI + React + Jupyter dev stack (scripts/dev.sh) |
| MakerWorld ingest | Jun 2026 | Embedded BOM, description parser, CSV/XLSX attachments |
| McMaster linking | Jun 2026 | Six offline tiers + filtered browse URLs |
| Verification | Jun 2026 | hardware_match_verify for diameter and bolt length |
| Editor MVP | Jun 2026 | TanStack table, confidence badges, CSV export |
Stack & BOM (software)
| Layer | Components |
|---|---|
| Backend | FastAPI, Pydantic, httpx, optional Playwright |
| Matching | Curated catalog JSON, tier resolver, hardware_spec.py |
| Frontend | React, shadcn/ui, Tailwind CSS, TanStack Table |
| Dev | JupyterLab notebooks 01–06, pytest, GitHub Actions |
| Data | mcmaster_catalog.json, regression URL fixtures |
Deliverables
- Public GitHub repository (makemcmasterBOM)
- Shared pipeline entry points for notebooks and API
- Post-match fastener length and size verification
- Duplicate merge policy across BOM sources
- Rate limiting for MakerWorld scrape politeness
- Persistent project storage (roadmap)
- Optional McMaster B2B API enrichment behind credentials (roadmap)
Outcomes
- Turns MakerWorld hardware prose into purchasable McMaster links without probabilistic guessing
- Documents why filtered browse URLs beat wrong catalog SKUs when metric length matters
- Keeps legal surface small: server-side scraping, throttled outbound HTTP, optional API gated by env flags
Operational constraints
- MakerWorld pages fetched server-side only; browser never scrapes directly
- McMaster browse resolve and B2B API disabled by default in CI
- Duplicate rows merged on
(name, quantity); wording variants may still appear twice until normalization improves
Bitácora y contexto
Alcance, cronograma y BOM están aquí. Para decisiones y contexto más largo, lee la entrada del blog.
Leer la entrada