An inventory management system keeps an organisation’s stock accurate day to day: what’s on hand, what’s running low, what’s been received and what’s gone out. This project adds role-based permissions and clean exports, which makes it a strong, well-rounded portfolio piece.
Core features
- Dashboard overview of stock health
- Item, category and product management
- Warehouse management for multiple locations
- Order and stock movement tracking
- User management with dynamic role permissions
- Export to CSV / Excel and print-ready views
Why role permissions matter here
In a real warehouse, a clerk shouldn’t be able to delete products or change permissions. This system lets you create multiple roles and choose exactly which pages and actions each role can reach — a clean, practical example of access control you can reuse everywhere.
Technology stack
Built with PHP on the CodeIgniter framework and MySQL. A typical setup imports a small schema (for example an ims_db database) and runs on XAMPP or any PHP host.
Setup overview
- Download and extract the source.
- Create a database (e.g.
ims_db) and import the SQL file. - Place the code in your web root and open it in the browser.
- Sign in as the seed admin and configure roles.
What you’ll learn
Stock movement modelling, multi-warehouse data design, dynamic permissions, and producing clean CSV/Excel exports from PHP.
Frequently asked questions
Can it handle more than one warehouse?
Yes — that is a built-in concept here; each stock record belongs to a location, so transfers between warehouses are just movements.
How are exports generated?
The app queries the current view and streams it as CSV or an Excel-compatible file for download or printing.
A note on using this project
This guide is written to help students and developers understand how a PHP/CodeIgniter application like this is designed and built. Treat any sample code as a learning reference: read it, run it locally, and adapt it to your own requirements rather than shipping it unchanged. If you reuse third-party components, check their licences first.