The systems behind the listings.
Real estate runs on conversations, listings and a lot of moving parts. I worked on the systems connecting them, from the backend under a live website to the small decisions that make AI output usable.
the whole journey, at a glance.
Interactive product-flow illustration · tap a step to explore
What needed to work.
The public website needed to keep working while its backend moved from PHP/Laravel to NestJS. At the same time, agents needed less manual work to turn informal property messages into structured listings.
The work behind it.
My contributions included the backend migration, listing ingestion, validation and downstream publishing workflows. This page presents a sanitized view of that work.
The decision that mattered.
Preserve the existing MySQL schema and client contracts first. Use Prisma to bridge the old data model, then normalize incrementally. For listing extraction, let AI interpret language while deterministic code checks prices, contacts and required fields.
A useful migration respects the system people already depend on. A useful AI feature also needs validation, retries and an understandable path when something goes wrong.
A little context.
Sanitized internship case study. The diagram reconstructs the product flow; it is not a screenshot of a private dashboard. Public code is a runnable extract, not the full production system.