MakerWorld BOM to McMaster Matcher
Rule-based MakerWorld → McMaster matcher: 41 fastener categories, length verification, monthly taxonomy crawl, enrich/pricing, and CSV export.

Направление проекта
Программное обеспечение
Key Features
MakerWorld scrape and BOM merge
Tiered McMaster match across 41 categories
Metric and imperial fastener verification
Monthly taxonomy crawl + enrich/pricing UX
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 | 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 |
| Browse + matcher maturity | Jun–Jul 2026 | In-house browse; nuts/washers; imperial; 41 categories |
| Taxonomy + enrich UX | Jul 2026 | Monthly crawl workflow; pricing tab; feedback dispatch |
Stack & BOM (software)
| Layer | Components |
|---|---|
| Backend | FastAPI, Pydantic, httpx, optional Playwright |
| Matching | Catalog JSON, category router, hardware_spec.py, structured guesses |
| Data | Taxonomy crawl, metacategories, monthly GitHub Actions refresh |
| Frontend | React, shadcn/ui, Tailwind CSS, TanStack Table, pricing + report-error |
| Dev | JupyterLab notebooks 01–06, pytest (350+ offline), GitHub Actions |
Deliverables
- Public GitHub repository (makemcmasterBOM)
- Shared pipeline entry points for notebooks and API
- Post-match fastener length and size verification (metric + imperial)
- Duplicate merge + description-BOM priority when section labeled
- Rate limiting for MakerWorld scrape politeness
- Monthly McMaster taxonomy crawl (Fastening & Joining)
- Match-error feedback dispatch (optional email / GitHub / webhook)
- Persistent project storage (roadmap)
- Public-deploy security hardening (strict URL host checks, API auth)
Outcomes
- Turns MakerWorld hardware prose into purchasable McMaster links without probabilistic guessing
- Documents why filtered browse URLs beat wrong catalog SKUs when thread length matters
- Keeps category maps fresh via monthly polite crawl, not per-import scrapes
- Keeps legal surface small: server-side scraping, throttled outbound HTTP, optional API/enrich 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
- Explicit description BOM sections win over embedded supply when both exist
- Duplicate rows merged on
(name, quantity); wording variants may still appear twice until normalization improves
Журнал и контекст
Здесь — объём, сроки и спецификация. Решения и подробный рассказ — в связанной статье блога.
Читать статьюCompleted on: 2 июл. 2026 г.