The brief
A laser-cutting and press-brake shop wanted a new website where customers can price a part themselves instead of waiting for someone to read a drawing.
What it does
- Upload and quote: a DXF for flat parts or a STEP file for 3D sheet-metal parts returns an estimate for cutting, bending and material, with a three.js preview of the part in the browser.
- Geometry in a sandbox: files are analysed in an isolated background worker. DXF geometry is measured with ezdxf and shapely; STEP sheet metal is unfolded to a flat pattern with build123d on OpenCascade first.
- Pricing the shop controls: staff edit rates and pricing modes in an admin. The rapid-move allowance, handling factor and quantity-break behaviour are each selectable; the minimum order applies to the quote total rather than each part; and press-brake setup is charged once per unique thickness and inside radius, shared across parts.
How it was built
A FastAPI service with SQLAlchemy and Alembic on Postgres, an RQ worker for the geometry, and a React and Vite front end, covered by about 97 tests. The work ran in phases with the client’s sign-off after each; the first four phases and the admin were done in a single day.
Status
A working demo. Emailed PDF estimates, abuse hardening and the shop’s real rates come next, before it goes live. The quoting is also offered to other shops as a module of ShopJig.