-
Install
git clone https://github.com/Cfomodz/Object-Scanning-Listing-Tool-Core-Backend-.git cd Object-Scanning-Listing-Tool-Core-Backend pip install -r requirements.txt -
Configure
- Copy
.env.exampleto.envand set any global environment variables. - Each plugin may have its own
.envfor item-type-specific settings.
- Copy
-
Run
python main.py <item_type> [args...] # Example: python main.py coin --images ./images
- Core Backend: Provides abstract base classes, barcode/image utilities, listing/box/order management, and a plugin registry.
- Plugin System: Each item type (coins, cards, comics, etc.) is implemented as a plugin, with its own scanner, listing builder, and label writer.
- Stateless API: Designed for integration with any frontend or automation pipeline.
- Extensible: Add new item types by creating a new plugin directory and implementing the required interfaces.
- 📦 Modular box/order management for any item type
- 🖨️ Label generation and printing (PDF, QR/barcode, etc.)
- 📷 Barcode and image-based identification utilities
- 🧩 Plugin discovery and dynamic dispatch
- 💾 Caching and persistence utilities
- 🧪 Full test suite for core and plugins
- Global settings: Place in
.envat the project root. - Plugin settings: Each plugin can have its own
.env(see plugin's.env.example). - Dependencies: See
requirements.txtfor required Python packages.
-
Create a new plugin:
- Add a directory under
plugins/(e.g.,plugins/cards/). - Implement
ItemScanner,ListingBuilder, and (optionally)LabelWritersubclasses. - Register your plugin in its
__init__.py.
- Add a directory under
-
Add tests:
- Place plugin-specific tests in
plugins/<your_plugin>/tests/. - Core tests live in the
tests/directory.
- Place plugin-specific tests in
-
Integrate with the API or CLI:
- The core system will discover and use your plugin automatically.
- Capture images of your items (any type) using your preferred frontend or camera tool.
- Send images to the backend via API or CLI, specifying the item type.
- Backend identifies, builds listings, and generates labels using the appropriate plugin.
- Export listings as JSON, send to an external API, or print labels as needed.
LGPL-2.1
💌 Questions? Open an issue or join the Discord!
