Farmstock
Laravel + React inventory management platform for agricultural products
Project gallery
Overview
About the project
I built Farmstock as a freelance capstone system linking agricultural sellers with consumers. Farmers manage product listings, images, stock, and incoming order requests. Consumers browse products and submit requests; admins approve accounts, maintain categories and units, and review reports and activity. When a farmer accepts a pending request, the backend checks each item's available stock and records each deduction in an inventory log within a database transaction.
The need
Stock and order status must stay consistent when several items appear in one request.
What I built
Laravel policies and roles separate consumer, farmer, and admin workflows. The order state machine permits pending → accepted or rejected, then accepted → completed; it rejects invalid transitions and insufficient stock.
Features
Main features
Products and inventory
- Farmers maintain products with images, categories, units, and stock levels
- Manual stock adjustments record the quantity, reason, author, and resulting balance
- Stock cannot be reduced below zero
Order requests
- Consumers browse products and submit requests; farmers review the requested items
- Accepting a request deducts stock and logs each item in one database transaction
- Requests go from pending to accepted or rejected; accepted orders can then be completed
Admin and reports
- Admin approves or rejects users and maintains product categories, units, and statuses
- Farmer reports export as CSV or PDF; admins have reports and an activity view
- Role and policy checks protect each workflow
Implementation
Technical stack & architecture
Backend
Laravel 13
Frontend
React + Inertia.js
Styling
Tailwind CSS v4
Database
MySQL
Permissions
Spatie Laravel Permission
DomPDF
Deployment
VPS / Nginx
Have a project in mind?
Tell me what you want to build, your timeline, and your main requirements.