codecrafter@portfolio

➜ ~/projects intermark.md

← cd ..
Статус
Завершен
Разработка
Даты не указаны
Клиент
Личный проект
Моя роль
Fullstack Developer

# Intermark Real Estate - #1 Luxury Property Authority

Intermark Real Estate - #1 Luxury Property Authority

# Description

A high-load, multilingual enterprise-grade web ecosystem tailored for Intermark, a leading international real estate agency. The portal aggregates and structures more than 14,000 exclusive listings across Luxury Residential, Commercial, and Overseas Property segments. The core architectural achievement is a 100% seamless integration with a proprietary On-Premise edition of JoyWork CRM, rendering the front-end a real-time reactive mirror of the agency's back-office database.

⚡ The Challenge

- Design a fault-tolerant public listing storefront powered by a highly optimized custom CMS/Framework, handling millions of entity relational queries;

- Engineer a high-frequency data synchronization pipeline between local On-Premise JoyWork CRM nodes and the production database, maintaining a latency window under 2 seconds;

- Architect a multi-tier faceted search engine adapting configuration filters dynamically across Urban, Suburban (highways/estates), Commercial, and International (70+ countries) markets;

- Integrate advanced spatial selection components: an interactive SVG/Canvas-driven Moscow Metro transit board and alphabetical suburban village directories;

- Build a persistent defense matrix protecting proprietary listing data against aggressive competitor scraping scripts without obstructing genuine traffic or search crawlers.

🔌 Integrations

- JoyWork CRM (On-Premise Enterprise Core): Deep bi-directional integration with the self-hosted CRM core driven by a private REST API secured via JWT token authorization.

1. Data Synchronization: Engineered an event-driven data pipeline leveraging Webhooks and background message queues. When an agent updates a listing in the CRM, the site immediately consumes a JSON payload containing delta changes. The reverse track streams user activity logs and direct booking statuses back into the CRM ledger.

2. Lead Capture Routing: Implemented secure lead-ingestion endpoints. The web platform captures UTM parameters, device finger-prints, and target listing IDs, pushing them directly into the CRM where JoyWork’s internal logic automatically assigns a dedicated broker based on the asset's tier and location.

3. Media Processing Engine: Bound directly to the CRM’s asset storage. During photo and blueprint ingestion, the website backend processes raw graphics via internal APIs, applies contextual watermarks (exclusive vs regular layouts), and pushes optimized WebP footprints across high-availability CDN nodes.

- Sphinx / Elasticsearch Engine: Interfaced a high-performance search daemon to compute intensive multi-variable faceted filtering queries. The platform syncs Sphinx index profiles with MySQL nodes every 5 minutes, running complex full-text queries over 150+ parameters without imposing read overhead on primary DB instances.

- Yandex SmartCaptcha API: Backend-level security integration engineered to counter automated harvesting scripts. Tethered directly to a custom traffic scoring loop: if an anomalous query rate is triggered against filtering endpoints, the backend intercepts the routing session, requiring invisible Yandex Captcha token validation.

- DaData / Yandex Maps API: Integrated geocoding and address-normalization architectures. Utilized to automatically validate spatial coordinates of properties imported from the CRM and calculate their exact intersection within custom high-end marketing zone polygons (Geo-fencing).

- IP Telephony (Mango Office / Telfin via CRM): Call-tracking infrastructure integration. The web front-end updates dynamic phone numbers based on conversion channel tracking, while deep hooks into the CRM-side PBX systems allow brokers to view incoming client cards instantly upon call reception.

🎯 Results

- Delivered a highly scalable ecosystem merging public-facing components with an enterprise B2B back-office into a continuous unified sales loop;

- Deployed a powerful parametric search interface recognizing 150+ ultra-luxury property variables (panoramic views, private terraces, operational fireplaces, dedicated spa complexes);

- Formulated sophisticated navigation systems, including an effortless transit station picker and hierarchical location index setups spanning global markets;

- Secured top-tier rendering speeds: search filters and inventory pages compile in under 150ms due to extensive database schema tuning.

🛠 Technical Challenges

- Alleviating DB Table Lock Conflicts and Read Penalties During Mass Bulk CRM Imports: Processing heavy continuous updates for pricing matrices, exchange rates (USD/EUR/RUB), and statuses of thousands of listings out of the internal CRM regularly triggered read latency drops on production nodes.

Solution: Decoupled the database layer utilizing CQRS principles. Implemented a tailored, read-only optimized replica to serve front-end user operations while pushing CRM modifications safely into a staging write-database. Synchronizations are dispatched in micro-batches via background queuing workers, stabilizing CPU usage at a safe 15%.

- Validating and Normalizing Irregular Spatial Data Maps from Rigid CRM Fields Into Fluent Front-End Queries: Internal JoyWork addresses rely on standard postal and municipal registries. However, marketing requirements mandated grouping listings into custom high-end clusters ("Patriarshie Ponds", "Moscow-City", "Novaya Riga") that do not follow formal administrative borders.

Solution: Built an automatic backend geocoding layer. During data ingestion, property records undergo spatial coordinate checks against geo-fenced polygons, programmatically injecting contextual marketing labels and estate tags onto the listing nodes.

- Thwarting Aggressive Competitor Scraping Bots Targeting Exclusive Property Data: Malicious crawler scripts routinely tried to extract unique real estate content, resulting in server overhead and posing duplicate-content risks for SEO indexing.

Solution: Implemented a strict multi-layer request filtering shield. Programmed real-time behavioral parsing of inbound API filtering queries on the backend, enforced stringent Rate Limiting rules, and paired suspicious session tracks with Yandex SmartCaptcha validations. This mitigated 99% of bot activities while remaining invisible to Googlebot and Yandex crawlers.

# Tech Stack

PHP Elasticsearch MySQL PostgreSQL HTML5 IP Telephony
➜ cd .. (Back to list)