Home
Softono
b

blaineventurine

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by blaineventurine

simple_inventory
Open Source

simple_inventory

SimpleInventory is a lightweight Windows application for managing small stores and school shops, originally developed for a school in Mondulkiri, Cambodia. Built with C and WPF on the .NET 4.8 framework, it uses a SQLite database for data storage and supports Windows 7 and newer. The software features multi-user support with granular permissions, allowing different access levels for various staff roles. Users can manage inventory quantities, categorize items such as drinks or supplies, and track stock movements. It supports barcode scanning for both single-item sales and bulk transactions, with the latter allowing limited customer data storage. The system automatically calculates change in multiple currencies and defaults to the Cambodian Riel and A4 paper size for local relevance. Administrative tools include PDF barcode generation, detailed inventory reports, and sales performance analysis with daily or weekly income and profit summaries. The application tracks all stock adjustments and sales transactions t

Inventory Management Inventory & POS Feature Flags
16 Github Stars
simple-inventory-card
Open Source

simple-inventory-card

# Simple Inventory Card [![hacs_badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg?style=for-the-badge)](https://github.com/hacs/integration) A Lovelace card for the [Simple Inventory](https://github.com/blaineventurine/simple_inventory) integration. Manage your household inventory directly from the Home Assistant dashboard. ## Installation Install the [Simple Inventory](https://github.com/blaineventurine/simple_inventory) integration first, then install this card: [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=blaineventurine&repository=simple-inventory-card&category=Dashboard) Or manually: copy `dist/simple-inventory-card.js` to your `www/` directory and add it as a Lovelace resource. ## Card Configuration Add the card via the UI editor or YAML. The only required option is the inventory entity: ```yaml type: custom:simple-inventory-card entity: sensor.kitchen_inventory ``` ### Display Options The card editor lets you toggle which fields are shown on each item row: | Option | Default | Description | | -------------------- | ------- | ------------------------------- | | `show_description` | `true` | Show item descriptions | | `show_location` | `true` | Show item locations | | `show_category` | `true` | Show item categories | | `show_expiry` | `true` | Show expiration dates | | `show_auto_add_info` | `true` | Show auto-add to todo list info | | `show_header` | `true` | Show card header row | | `show_search` | `true` | Show search and filters | | `show_sort` | `true` | Show sorting controls | | `show_add_button` | `true` | Show add button | ## Features ### Item Management - **Add items** — Click the "+" button to open the add item modal with all available fields - **Edit items** — Click an item row to edit its details - **Delete items** — Remove items from the edit modal - **Increment/Decrement** — Use the +/- buttons on each item row to adjust quantity ### Real-Time Updates The card uses WebSocket subscriptions (`simple_inventory/subscribe`) for real-time updates. When any item changes — whether from the card, a service call, or an automation — the card updates immediately without polling. ### Search and Filtering **Text search** searches across item names, descriptions, locations, and categories with a 300ms debounce. **Advanced filters** (toggle with the "Filters" button): | Filter | Options | | -------- | ---------------------------------------------- | | Category | Multi-select from categories in your inventory | | Location | Multi-select from locations in your inventory | | Quantity | Zero, Non-zero | | Expiry | No Expiry, Expired, Expiring Soon, Future | Active filters are shown as badges above the item list. Filters persist in browser local storage per entity. ### Sorting Sort items by: | Sort Method | Description | | --------------- | --------------------------------------------- | | Name | Alphabetical (default) | | Category | Grouped by category | | Location | Grouped by location | | Quantity (High) | Highest quantity first | | Quantity (Low) | Lowest quantity first | | Expiry Date | Soonest expiration first | | Zero Last | Items with zero quantity sorted to the bottom | When sorting by category or location, items are grouped under headers. ### Expiry Badges The card header shows badge counts for expired and expiring-soon items, with distinct icons: - **Expired** (red) — Items past their expiry date - **Expiring soon** (amber) — Items within their alert threshold ### Multi-Value Locations and Categories Items can have multiple locations and categories. The add/edit modals use a multi-select dropdown with checkboxes. Values are stored as comma-separated strings. ### Barcodes Each item can have one or more barcodes associated with it. Enter barcodes manually in the add/edit modal, or use the camera scan button to scan UPC/EAN barcodes with your device camera. When a barcode is scanned or entered, the card automatically looks up the product name from Open Food Facts and pre-fills the item name if found. Barcodes can also be used to identify items in automations (e.g. scan-to-increment). #### Quick Scan from Header The card header includes a scan button (barcode icon) for quickly incrementing or decrementing an existing item without opening any modal. Tap the scan button to open the camera, scan a barcode, then choose increment/decrement and an amount before confirming. The scanned barcode is resolved across all inventories automatically via the `scan_barcode` service. ### Auto-Add to Todo List Configure items to be automatically added to a Home Assistant todo list when stock drops below a threshold. In the add/edit modal: 1. Enable "Auto-add to todo list" 2. Set the threshold quantity (when to trigger) 3. Optionally set a desired quantity (how much to buy) 4. Select the target todo list entity 5. Choose where the needed quantity appears: in the item name (e.g. "Milk (x4)"), in the description, or hidden ### Item History and Consumption Analytics View the change history for any item from the edit modal. The history modal has two tabs: **History tab** — A timeline of all changes (add, increment, decrement, update, remove) with before/after quantities and timestamps. **Consumption tab** — Analytics calculated from your decrement history: | Metric | Description | | ----------- | ---------------------------------------------------------- | | Daily rate | Average units consumed per day | | Weekly rate | Average units consumed per week | | Days Left | Estimated days until the item runs out at the current rate | | Avg Restock | Average days between restocking events | | Total Used | Total units consumed over the period | | Events | Number of decrement events tracked | Use the time window pills (30d / 60d / 90d / All) to change the calculation period. A shorter window reflects recent consumption patterns, while "All" averages across your entire history. The consumption tab requires at least 2 decrement events before it can calculate rates. Until then, it shows a "not enough data" message. ### Import and Export Access import/export from the overflow menu (three-dot button) in the card header: - **Export** — Download your inventory as JSON - **Import** — Upload JSON or CSV data ### Translations The card supports localization. Translation files are loaded from the integration and the card adapts to the user's Home Assistant language setting. ## Notes - The built-in `todo.shopping_list` does not support item descriptions, so description-based features (description quantity placement, inventory ID in description) only work with other todo list integrations. - `desired_quantity` of 0 is displayed as blank in the UI, meaning "use the threshold-based formula instead."

Web Components & Widgets Home Automation
21 Github Stars