ERP System (Final Year Project)
ERP platform with architecture-first design, inventory, auth, and automation.
Overview
The project at a glance.
Developed a full ERP platform for small businesses with inventory, authentication, workflow automation, executive dashboards, and structured system design.
0
Core modules
0
Technologies
Modular
Architecture
Complete
Status
Problem & goals
Why this needed to exist.
Problem statement
Small-business operations were spread across manual tracking and disconnected workflows, making inventory visibility, reporting, and access control harder to manage consistently.
Project goals
- Planned system architecture and module boundaries for scalable ERP workflows.
- Designed database schema and system design flow for business operations.
- Built inventory, user-auth, and workflow automation modules in Laravel.
- Created role-aware dashboards for management-level visibility.
- Replaced manual tracking with centralized digital operations.
Research & planning
Reducing uncertainty before implementation.
Discovery
- Mapped the operational areas that needed to share business data.
- Identified role-specific visibility needs for staff and management.
- Reviewed module boundaries before implementation to reduce coupling.
Requirements
- Role-aware authentication and authorization
- Inventory and stock workflows
- Centralized operational data
- Management dashboards
- Workflow automation
- Maintainable Laravel module boundaries
Planning approach
- Defined the main ERP modules and their responsibilities.
- Designed the relational data model around operational workflows.
- Prioritized authentication and inventory foundations before dashboards and automation.
Architecture & data
A clear path through the system.
Database design
The relational design separates authentication, roles, inventory, and operational records so modules can evolve without duplicating core business data. Exact table definitions remain available in the linked repository rather than being reproduced here.
Implementation
Features and engineering decisions.
Planned system architecture and module boundaries for scalable ERP workflows.
Designed database schema and system design flow for business operations.
Built inventory, user-auth, and workflow automation modules in Laravel.
Created role-aware dashboards for management-level visibility.
Replaced manual tracking with centralized digital operations.
// Simplified illustration of the project's service-layer approach
final class InventoryService
{
public function recordMovement(array $data): StockMovement
{
return DB::transaction(function () use ($data) {
$movement = StockMovement::create($data);
$movement->item->recalculateStock();
return $movement;
});
}
}Challenges & solutions
What made the work difficult—and how it was handled.
Challenges
- Keeping ERP modules separate while sharing common business records.
- Designing role-aware interfaces without duplicating dashboard logic.
- Replacing flexible manual tracking with structured validation rules.
Solutions
- Established module boundaries before building features.
- Centralized authorization and shared data access patterns.
- Used structured relational workflows to improve consistency and reporting.
User flow
- 1Authenticate with an assigned business role
- 2Open the relevant ERP module
- 3Create or update an operational record
- 4System validates and stores the change
- 5Management reviews updated dashboard information
Development timeline
From planning to delivery.
- 01
Planning
Clarified the core workflow, scope, and technical constraints.
- 02
Design
Structured the data, modules, and primary user journeys.
- 03
Development
Implemented the product in testable functional increments.
- 04
Testing
Validated core flows, data handling, and usability.
- 05
Delivery
Prepared the working product and documented next improvements.
Screenshots
A closer look at the product.
Performance & reflection
What improved and what comes next.
Optimizations
- Structured dashboard queries around the information each role needs.
- Kept module responsibilities explicit to reduce unnecessary cross-module work.
- No verified Lighthouse or load-test score has been published.
Lessons learned
- Architecture decisions made before implementation reduce ERP complexity later.
- Role design is a product decision as much as an authorization decision.
- Manual workflows contain exceptions that must be discovered before strict validation is added.
Future improvements
- Add automated integration and end-to-end coverage.
- Publish the complete schema and architecture decision record.
- Expand reporting and configurable workflow rules.