Inventory System is a full-stack web application for managing products, categories, stock adjustments, low-stock alerts, and inventory reporting.
- Backend: Laravel 12 REST API
- Frontend: React 19 with Vite
- Database: MySQL
- Testing: PHPUnit feature tests
backend/ Laravel API, migrations, seeders, tests
frontend/ React + Vite user interface
- PHP 8.2+
- Composer
- Node.js 18+
- MySQL 8+ or XAMPP with MySQL enabled
Create the database first:
CREATE DATABASE inventory_system;Install and start the backend:
cd backend
copy .env.example .env
composer install
php artisan key:generate
php artisan migrate --seed
php artisan serveThe API runs on http://localhost:8000.
Install and start the frontend in a second terminal:
cd frontend
npm install
npm run devThe UI runs on http://localhost:5173.
For a default XAMPP setup, keep these database values in backend/.env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=inventory_system
DB_USERNAME=root
DB_PASSWORD=- Product CRUD with category and supplier assignment
- Supplier CRUD with delete protection when products exist
- Category CRUD with delete protection when products exist
- Stock in/out movements with quantity validation
- Dashboard totals, supplier count, and low-stock alerts
- Category, supplier, and stock value reports
- Product search, filtering, sorting, pagination, and CSV export
# Backend tests
cd backend
php artisan test
# Frontend production build
cd frontend
npm run build