01 · The challenge
What needed solving
A real-estate developer was running multiple housing schemes across branches with no unified view of which plots were available, sold or under installment. Customer payment plans were tracked in separate Excel files per project, expense reconciliation happened quarterly, and there was no way to see a single project's P&L without an accountant spending half a day.
02 · Our approach
How we framed the work
We started with a discovery sprint to map the user journey, business goals and real constraints. From there we wrote a fixed-scope plan: clear milestones, weekly review gates on a staging URL, and a written exit criterion for every phase. The web development space rewards teams that ship — not teams that plan — so we biased the engagement towards working software from week two onward.
03 · The solution
What we built
We built a Laravel platform modelled on a Company → Branch → Project hierarchy. Inside each project: AvailableProperty inventory (with a sell-form flow that converts to SoldProperty), Customer records with structured installment schedules, Expense ledgers categorised by ExpenseCategory, and Income tracking by IncomeCategory. Every project has its own dashboard plus dedicated expense and installment reports. Property metadata is typed (PropertyType, PropertyStatus, MeasurementUnit) so reporting stays consistent across schemes. Spatie role / permission RBAC gates each surface, and CKEditor + a media-upload pipeline handle marketing brochures and floor plans per property.
04 · The results
What changed for the client.
One dashboard per project — available vs sold vs under-installment is visible at a glance
Customer installment schedules tracked structurally — no more per-project Excel sheets
Expense and income categorised at write time — project P&L generated on demand, not quarterly
Tech stack
Want a similar outcome for your business? We'd love to hear about it.