๐งพ A responsive Laravel + SQLite Mini ERP that demonstrates real-world internal workflows: products, inventory movements, orders lifecycle, and safe mock marketplace integration.
This repository is a lightweight and stable Laravel-based Mini ERP designed to simulate core ERP workflows:
- Products (CRUD and SKU identity)
- Inventory movements (Stock In and Stock Out with safety checks)
- Orders workflow (
new โ packed โ shipped โ done) - Mock marketplace sync (import orders from local JSON and record simulated status pushes in local logs)
The marketplace module intentionally does not call external APIs. Instead, it uses local JSON import and local push logs to demonstrate integration patterns without token, rate-limit, or thirdโparty downtime risks.
- โ Product management (CRUD) with SKU-based identification
- โ Inventory movements (Stock In and Stock Out) with negative-stock prevention
- โ Orders lifecycle with clear status workflow
- โ Mock marketplace sync using JSON import and local โpush statusโ logs
- โ Mobile-first UI with clear validation feedback
- โ Predictable setup via migrations and seeders
- โ Strict input validation using Form Requests
-
๐ฆ Products
- Create, list, update, delete
- SKU, name, description, price
-
๐งฎ Inventory
- Stock In and Stock Out transactions
- Movement-based stock calculation
- Prevent Stock Out beyond available stock
-
๐งพ Orders
- Create orders with item snapshot
- Status workflow:
new โ packed โ shipped โ done
-
๐ Marketplace Sync (Mock)
- Import orders from a local JSON file
- Record simulated status updates into local push logs
- No external API dependency
SQLite tables used in this project:
productsinventory_movementsordersorder_itemsmarketplace_push_logs
All tables are created via migrations. Seeders are included for predictable demo data.
- PHP 8.2+
- Composer
- Node.js and npm
- SQLite extension enabled (PDO SQLite)
composer run setupcomposer install
cp .env.example .env
php artisan key:generateCreate SQLite file (if needed):
# macOS / Linux
touch database/database.sqlite# Windows PowerShell
New-Item -ItemType File database\database.sqlite -ForceRun migrations (and optional seeding):
php artisan migrate
# Optional demo data:
php artisan db:seedFront-end assets:
npm install
npm run buildcomposer run devThis starts:
- Laravel dev server
- Queue listener
- Laravel Pail logs
- Vite dev server
php artisan servenpm run dev- Open the Dashboard to see summaries
- Create Products
- Add Stock In to increase inventory
- Perform Stock Out to reduce inventory (guarded by safety checks)
- Use Marketplace Import to import orders from JSON
- Update order status and review marketplace push logs
Suggested routes (may vary by implementation):
/marketplace/marketplace/import
Upload a JSON file, run import, then review imported orders and generated push logs.
composer run testPlace screenshots in attached_assets/ then reference them here.
Example:
attached_assets/dashboard.pngattached_assets/products.pngattached_assets/inventory.pngattached_assets/orders.pngattached_assets/marketplace.png
laravel-mini-erp/
โโ app/
โ โโ Http/
โ โ โโ Controllers/
โ โ โโ Requests/
โ โโ Models/
โ โโ Services/
โโ database/
โ โโ migrations/
โ โโ seeders/
โ โโ database.sqlite
โโ resources/
โ โโ views/
โ โโ css/
โ โโ js/
โโ routes/
โ โโ web.php
โโ attached_assets/
โโ public/
โโ tests/
โโ composer.json
โโ package.jsonThis project prioritizes clarity, correctness, and stability over excessive features.
It demonstrates maintainable internal workflows (inventory tracking and order handling) plus a safe integration mindset using mock marketplace sync.
For educational and portfolio purposes.