A property management platform that brings rental yields, valuation history and maintenance into one place, with fast multi-filter search and quick public listings.

Overview
What this is and why it matters, in plain English.
A property management platform that brings rental yields, valuation history and maintenance into one place, with fast multi-filter search and quick public listings.
One dashboard for a property portfolio: yields, valuations and maintenance, with search in under 70ms.
The situation
What was going on before, and why it needed fixing.
Portfolio managers compared rental yields in spreadsheets, tracked maintenance in email, and had no single view of regional price trends.
Real estate portfolio managers lacked unified tools to compare rental yields, track maintenance tickets, and query regional asset price trends.
What it needed to do
The outcomes the project had to deliver.
- One view of every asset with yield, valuation and maintenance status.
- Fast search across price, size, neighborhood and yield.
- Public listings that load quickly without caching the admin side.
What I did
My part of the work and who I worked with.
I built the Laravel backend and query layer, the spatial indexing and search, the valuation API integrations, and the Cloudflare caching rules, and worked on the Vue.js interface. APIs were documented and tested in Postman.
How it works
The main building blocks, from the screen people use to the data underneath.
Built a responsive Vue.js interface powered by optimized Laravel backend queries, spatial database indexing, and external property valuation API feeds.
- 01
Vue.js interface
Portfolio dashboard, multi-filter property search, valuation history and maintenance tracking.
- 02
Laravel API
Optimized queries for search and valuation history, with spatial indexes for location-based filters.
- 03
External valuation feeds
Property valuation APIs feed historical valuations into MySQL on a schedule.
- 04
Cloudflare
Caches public listing pages at the edge while bypassing cache for authenticated admin routes.
Key choices and trade-offs
Every build involves trade-offs. These are the important ones and what each one cost.
| Decision | Trade-off |
|---|---|
| Spatial indexes for location filters. | More complex schema, but location searches avoid full scans. |
| Edge-cache only public pages. | Two caching behaviors to reason about, but admins always see live data. |
Under the hood
Implementation details for technical readers, with a code sample.
- Multi-parameter search under 70ms.
- Full portfolio visibility in one dashboard.
- API responses around 95ms.
// High-Performance Multi-Filter Property Query with Composite Indexing
public function queryProperties(Request $request) {
return Property::query()
->when($request->city, fn($q, $c) => $q->where('city', $c))
->when($request->price_min, fn($q, $p) => $q->where('price', '>=', $p))
->when($request->price_max, fn($q, $p) => $q->where('price', '<=', $p))
->when($request->bedrooms, fn($q, $b) => $q->where('bedrooms', '>=', $b))
->with(['amenities', 'primaryImage'])
->paginate(24);
}Problems solved
What got in the way, and how each problem was fixed.
- 01
Complex multi-parameter spatial property search (price, square footage, neighborhood, yield).
Composite and spatial indexes that match the search filters, so combined price, size, area and yield queries stay under 70ms.
- 02
Database query optimization handling tens of thousands of historical property valuations.
Query optimization and summarization of historical valuations so charts read a compact series instead of every raw record.
- 03
Cloudflare caching configuration for public property listings while keeping admin portals dynamic.
Cloudflare rules that cache public listing paths and bypass cache for admin and authenticated routes.
Security, speed and growth
How data is protected, and how the system stays fast as usage grows.
Security
Admin routes are authenticated and never cached at the edge. Valuation API keys stay server-side.
Speed & growth
Search queries run under 70ms and API responses around 95ms, with Cloudflare absorbing public listing traffic.
Quality and releases
How changes were tested and shipped safely.
Search endpoints are tested with Postman collections covering filter combinations, and caching rules are verified to bypass authenticated routes.
Tech stack
The tools and technologies used, for recruiters and technical reviewers.
Results
Measured outcomes recorded for this project.
| Metric | Result |
|---|---|
| Search Query Latency | <70 ms |
| Portfolio Visibility | 100 % |
| API Response Time | 95 ms |
Questions
Plain answers first, then the detail a technical reviewer would ask about.
Common questions
- What does a property manager get from this?
- One place to see rental yields, valuation history and maintenance across the portfolio, with search results in under 70ms.
- Could it list properties publicly too?
- Yes. Public listing pages load quickly and stay in sync with the internal data.
For your tech lead
- What can managers search by?
- Price, square footage, neighborhood and rental yield, in any combination.
- Where do valuations come from?
- External property valuation APIs, stored historically so trends can be charted.
Key takeaways
- •One dashboard for a property portfolio: yields, valuations and maintenance, with search in under 70ms.
- •Built with Laravel, Vue.js, RESTful APIs, MySQL, Cloudflare, Postman.