Skip to content

Latest commit

History

443 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Inventoros

Inventoros

Inventory Management for the Rest of Us

TestsLicense: MITLaravel 13PHP 8.3+Vue 3Inertia.jsCode of Conduct

Inventoros is an open-source Inventory and Warehouse Management System (WMS) built with Laravel 13, Inertia.js, and Vue 3. Designed to bridge the gap between complex enterprise-grade WMS tools and user-friendly systems, Inventoros provides powerful inventory management capabilities with a developer-focused, extensible architecture.

Screenshots

Dark Mode

DashboardProductsOrders
DashboardProductsOrders
ReportsLocationsPurchase Orders
ReportsLocationsPurchase Orders
More dark mode screenshots
CategoriesSuppliersSettings
CategoriesSuppliersSettings

Light Mode

DashboardProductsOrders
DashboardProductsOrders
ReportsLocationsPurchase Orders
ReportsLocationsPurchase Orders
More light mode screenshots
CategoriesSuppliersSettings
CategoriesSuppliersSettings

Features

Inventory & Product Management

  • Full product CRUD with SKU, pricing, stock levels, categories, locations, and barcodes
  • Product variants with options (size, color, material) and variant-specific SKUs, pricing, and stock
  • Kitting & bundling -- create virtual kit products with auto-calculated stock from components
  • Assembly & work orders -- production workflow that consumes components and produces finished goods
  • Batch tracking with lot numbers, expiry dates, and manufacturing dates
  • Serial number tracking with individual status management
  • Barcode generation (UPC/EAN/Code128), bulk printing, and camera-based scanning
  • Configurable SKU patterns with auto-generation
  • CSV import/export for bulk operations

Multi-Warehouse Management

  • Multiple warehouses with addresses, contacts, and per-warehouse settings
  • Warehouse-level user access control -- restrict staff to specific warehouses
  • Global warehouse switcher in the header to filter all views
  • Inter-warehouse stock transfers with shipping method, tracking number, and transit status
  • Default warehouse per organization with manual override on orders
  • Locations nested within warehouses (Warehouse > Aisle > Shelf > Bin)

Order & Supply Chain

  • Full order lifecycle with automatic inventory adjustments and row locking
  • Order approval workflow (pending, approved, rejected)
  • Returns & exchanges (RMA) -- full return lifecycle with automatic stock restoration
  • Purchase orders with item receiving workflow and invoice generation
  • Customer management with order history
  • Automated reorder points with supplier-grouped PO generation

Custom Report Builder

  • Build custom reports from 6 data sources (products, orders, stock adjustments, customers, suppliers, purchase orders)
  • Select columns, add filters (10+ operators), configure sorting
  • Save reports as reusable templates, share with team
  • Export reports as CSV
  • Live preview while building

User & Access Management

  • Role-based access control with 30+ granular permissions
  • Custom roles with reusable permission set templates
  • Two-factor authentication (TOTP with setup wizard, QR code, and recovery codes)
  • API token management (create, list, revoke)

REST & GraphQL APIs

  • REST API v1 with full CRUD for all resources (products, orders, warehouses, work orders, reports, and more)
  • GraphQL API with queries and mutations, permission checks, and query depth/complexity limits
  • Auto-generated OpenAPI 3.1 docs via Scramble at /docs/api
  • Sanctum token authentication

Plugin System

  • WordPress-style hooks and filters
  • Extensible UI with plugin slots
  • Database-driven plugin activation
  • Sample plugin with documentation

Notifications & Integrations

  • Email notifications with multi-provider support (SMTP, Mailgun, SendGrid)
  • Customizable templates with per-user preferences
  • Webhook system with HMAC-SHA256 signing, exponential backoff retry, and delivery logs

System & DevOps

  • Multi-tenant architecture with organization-based data isolation
  • Installer wizard with database validation and admin creation
  • Update manager with automatic backups (UI + CLI)
  • Activity logging with filtering and export
  • Dark mode with persistent preferences
  • Global search command palette (Ctrl+K / Cmd+K)
  • Automated screenshot generation via GitHub Actions
  • 1000+ tests with comprehensive coverage

Technology Stack

LayerTechnology
BackendLaravel 13 (PHP 8.3+)
FrontendInertia.js v3 + Vue 3 + Tailwind CSS
BuildVite 7
DatabaseSQLite (dev) / MySQL 8+ / PostgreSQL 13+
APIREST + GraphQL (Sanctum auth)
TestingPHPUnit + Playwright
ArchitectureMulti-tenant, plugin-ready

Requirements

  • PHP 8.3 or higher
  • Composer 2.x
  • Node.js 18+ and npm
  • MySQL 8.0+ or PostgreSQL 13+ (SQLite for development)
  • Redis (optional, recommended for production queues)

Installation

Quick Start

git clone https://github.com/Inventoros/Inventoros.git
cd Inventoros
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
npm install && npm run build
php artisan serve

Development Setup

# Run all dev services (server, queue, logs, vite) concurrently
composer dev
# Or run individually
php artisan serve # Application server
npm run dev # Vite dev server with HMR
php artisan queue:work # Queue worker

Configuration

  1. Copy .env.example to .env and configure:

    • Database credentials (DB_*)
    • Application URL (APP_URL)
    • Mail settings (for notifications)
    • Queue driver (recommend redis for production)
  2. Run php artisan migrate to create the database schema

  3. Run npm run build for production assets

Testing

# Run all tests
composer test# Run specific suites
php artisan test --testsuite=Feature
php artisan test --testsuite=Unit
# Run E2E tests
npm run test:e2e

CLI Commands

php artisan app:update --check # Check for updates
php artisan app:update # Perform update with backup
php artisan app:update --backup # Create manual backup
php artisan app:update --list-backups # List backups
php artisan app:update --restore=file # Restore from backup

API

The REST API is available at /api/v1/ with Sanctum token authentication.

View all API endpoints
ResourceEndpoints
ProductsGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
Product OptionsNested under products: GET, POST, PUT/{id}, DELETE/{id}
Product VariantsNested under products: GET, POST, PUT/{id}, DELETE/{id}, POST/adjust-stock
Product ComponentsNested under products: GET, POST, PUT/{id}, DELETE/{id}
Batch TrackingNested under products: GET, POST, GET/{id}
Serial TrackingNested under products: GET, POST, GET/{id}, PUT/{id}
CategoriesGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
LocationsGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
WarehousesGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
OrdersGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
Stock AdjustmentsGET, POST, GET/{id}
Stock AuditsGET, GET/{id}
SuppliersGET, POST, GET/{id}, PUT/{id}, DELETE/{id}
Purchase OrdersGET, POST, GET/{id}, PUT/{id}, DELETE/{id}, POST/receive, POST/send, POST/cancel
Work OrdersGET, POST, GET/{id}, POST/start, POST/complete, POST/cancel
Saved ReportsGET, POST, GET/{id}, PUT/{id}, DELETE/{id}, GET/{id}/export
Permission SetsGET, POST, GET/{id}, PUT/{id}, DELETE/{id}, GET/categories
Barcode LookupGET/{code}

The GraphQL API is available at /graphql with Sanctum bearer token authentication. Interactive API documentation is auto-generated at /docs/api.

Documentation

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

  • Follow PSR-12 coding standards
  • Use declare(strict_types=1) in all PHP files
  • Write tests for new features
  • Use conventional commit messages

Community & Support

License

Inventoros is open-source software licensed under the MIT license.

Acknowledgments

Built with Laravel, Inertia.js, Vue.js, and Tailwind CSS.

About

Open source PHP based Inventory / WMS management for the rest of us

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages