➜ ~/projects joywork.md
← cd ..# JoyWork — Specialized CRM platform for real estate agencies
# Description
⚡ The Challenge
- Build a highly scalable architecture capable of tracking thousands of simultaneous properties, clients, and leads;
- Develop an automated data-matching engine connecting client criteria in lead inquiries with available property listings;
- Architect a complex, fully customizable Role-Based Access Control (RBAC) system to ensure strict data isolation between agencies;/
- Integrate a high-speed, multi-parameter full-text search engine for complex property filtering
🔌 Integrations
- Sphinx Search Engine — utilized for sub-second, multi-variable filtering across heavy text and numeric real estate parameters;
- Hybrid DB Architecture (MySQL + PostgreSQL) — combining efficient relational modeling with fast JSON/log processing;
- Internal Entity Intersector — an automated matching pipeline generating immediate matches on the "Inquiry - Listing" level;
🎯 Results
- Delivered a resilient backend capable of handling hundreds of onboarded real estate agencies without performance drops;
- Deployed a highly flexible access control matrix (ACL), enabling agency owners to micro-manage property and client visibility for every agent;
- Implemented an automated entity-matching loop, drastically reducing the manual time agents spend selecting appropriate listings;
- Achieved ultra-low latency queries over massive datasets by decoupling heavy search workflows into a dedicated search server.
🛠 Technical Challenges
- Synchronizing and Maintaining a Hybrid DB Infrastructure (MySQL & PostgreSQL): Utilizing distinct database management systems required absolute data consistency during transaction executions.
Solution: Created strict domain separation between data structures. Heavy transactional B2B modules and application logs were routed to PostgreSQL, while structured relational tables remained in MySQL. Synchronization was established using an Event-Driven model managed via the PHP backend.
- Optimizing Faceted Search Over Multi-Variable Property Matrices: Traditional SQL queries using multiple JOIN chains for property parameters (floor, district, pricing, dimensions) caused database saturation.
Solution: Embedded Sphinx Search as a dedicated background indexing service. Set up automated incremental indexation tasks. This reduced complex query execution times to <50ms and completely unburdened primary DB nodes.
- Performance Constraints of a Complex Access Validation System (RBAC/ACL): Validating complex multi-layered organizational hierarchy permissions during large listing views created a significant data-query bottleneck.
Solution: Engineered a hierarchical matrix of role parameters and cached user permission maps inside session states/Redis. Access restriction clauses were injected directly into the SQL query building block (applying contextual WHERE tenant_id = X restrictions dynamically), eliminating post-processing validation overhead in PHP.