This project was designed to provide small service businesses with a unified platform for managing vendors, services, inventory, invoices, payments, and expenses. The system connects these workflows to provide reporting on sales, margins, profitability, and outstanding income. Built as a multi-tenant SaaS application, the system allows each business to maintain its own isolated data with different roles and permissions. The project was also developed as a public portfolio version of a larger application, with the architecture and development decisions documented through ADRs and a structured, decision-driven development process.
Designing a Multi-Tenant Architecture
Ensuring businesses could share the same application while keeping their data completely isolated required careful database and authorization design.
Modeling Complex Business Workflows
Connecting vendors, products, services, invoices, payments, and inventory required a domain model that accurately reflected real business relationships.
Keeping Inventory Data Accurate
Tracking received, used, wasted, and corrected stock required a reliable ledger and careful handling of inventory changes.
Building Reusable Business Logic
The system needed to support different businesses and workflows without relying on business-specific assumptions or duplicated code.
Making Architectural Decisions Deliberately
Complex technical and domain decisions were stress-tested and documented through ADRs before implementation rather than being decided ad hoc.
Built a full multi-tenant business management platform.
Implemented role-based access across multiple businesses.
Added reporting for sales, margins, P&L, and outstanding income.
Built automated inventory depletion and low-stock tracking.
Implemented structured audit logging across data-changing operations.
Established automated testing and CI against PostgreSQL.
0%