mirror of
https://github.com/Donkie/Spoolman.git
synced 2026-10-22 01:52:17 -05:00
a76c8ed3d957c7bc35a76cfee93bf1a587067d43
Browser coverage was smoke plus CRUD, mirroring the old React suite -- which left the subsystems with the most new code in them completely untested. Everything added here needs a real deployment to mean anything, which is why it lives in this suite and not in vitest. search.spec.ts drives the top-bar search (a filament, a manufacturer and a location each land in their own section; spools match on their own text, not their filament's, so a location is what finds one) and the toolbar's group / filter / sort. Group, sort and filters live in the URL, so each is checked to survive a reload. Sorting a grouped list by something the backend cannot order groups by flattens the view, and that is asserted rather than left as a surprise. labels.spec.ts round-trips a design through the label_designs server setting and exports a label for a real spool through the "Image files" mode, asserting a non-trivial PNG comes back -- the only way to prove the QR encoding, template substitution, logo and mm-to-pixel maths actually ran. The print modes are left alone on purpose: they open the browser's print dialog, which would stall the session. settings.spec.ts separates the two persistence models the page mixes with no visual cue -- currency, rounding and base URL on the server, theme in the browser -- and takes an extra field from definition to the library's filter menu and back out again. pwa.spec.ts checks the deployed manifest rather than the source file: served at the deploy root, with a type browsers accept, all icons resolving, all URLs relative. The add-spool flow moves out of crud.spec.ts into a helper so each spec creates its own data instead of leaning on what an earlier one left behind, and filters pin assertions to that data -- the library is paginated, so an unfiltered assertion about a specific row is a coin toss on an instance with real data in it. Anything with instance-wide reach is put back afterwards. Verified against both an empty database and one holding ~50 seeded spools. Claude-Session: https://claude.ai/code/session_01UB5KocsTBm9GL5x3Uuup5F
Keep track of your inventory of 3D-printer filament spools.
Spoolman is a self-hosted web service designed to help you efficiently manage your 3D printer filament spools and monitor their usage. It acts as a centralized database that seamlessly integrates with popular 3D printing software like OctoPrint and Klipper/Moonraker. When connected, it automatically updates spool weights as printing progresses, giving you real-time insights into filament usage.
Features
- Filament Management: Keep comprehensive records of filament types, manufacturers, and individual spools.
- API Integration: The REST API allows easy integration with other software, facilitating automated workflows and data exchange.
- Real-Time Updates: Stay informed with live spool updates through Websockets, providing immediate feedback during printing operations.
- Central Filament Database: A community-supported database of manufacturers and filaments simplify adding new spools to your inventory. Contribute by heading to SpoolmanDB.
- Web-Based Client: Spoolman includes a built-in web client that lets you manage data effortlessly:
- View, create, edit, and delete filament data.
- Add custom fields to tailor information to your specific needs.
- Print labels with QR codes for easy spool identification and tracking.
- Contribute to its translation into 18 languages via Weblate.
- Database Support: SQLite, PostgreSQL, MySQL, and CockroachDB.
- Multi-Printer Management: Handles spool updates from several printers simultaneously.
- Advanced Monitoring: Integrate with Prometheus for detailed historical analysis of filament usage, helping you track and optimize your printing processes. See the Wiki for instructions on how to set it up.
Spoolman integrates with:
- Moonraker and most front-ends (Fluidd, KlipperScreen, Mainsail, ...)
- OctoPrint
- OctoEverywhere
- Home Assistant
- MCP Server - Manage your filament inventory through AI assistants like Claude using the Model Context Protocol
Installation
Please see the Installation page on the Wiki for details how to install Spoolman.
Description
Keep track of your inventory of 3D-printer filament spools.
Readme
MIT
15 MiB
0 Stars
1 Watchers
0 Forks