places.je V5
Project type: clientPartnering on a full rebuild of places.je, Jersey's property listing platform.
Technical consulting engagement for Jersey’s leading property aggregator platform, which scrapes and consolidates listings from 224+ estate agents across the island.
Project Overview
places.je is a comprehensive property portal serving the Jersey real estate market. The platform aggregates property listings from estate agent websites, planning portal data, and various data sources through a sophisticated scraping and ingestion pipeline.
Consulting Scope
Phase 1: Technical Review and Infrastructure Migration
The engagement focused on a thorough analysis of the existing codebase and infrastructure:
- Code Review: Deep dive into the .NET backend architecture, React frontend, and job processing systems
- Infrastructure Assessment: Evaluated current hosting, CI/CD pipelines, and deployment processes
- Migration Planning: Developed recommendations for moving from Bitbucket Pipelines to GitHub Actions
- Database Migration: SQL Server data migration strategy to new hosting platform (Fly.io)
Key Technical Findings
Architecture Analysis
The platform consists of several key components:
- Places.Web - Public-facing property search site
- Places.Web.Agent - Agent portal for property management
- Places.Feeds - Scraping and data ingestion pipeline
- Hangfire - Background job processing for indexing, media, and alerts
Frontend Modernization
Identified technical debt in the frontend stack:
- React 17 (nearly 5 years old at time of review)
- React.NET (unmaintained server-side rendering)
- Webpack 5.70 and Babel 7.17 requiring updates
Infrastructure Recommendations
Provided detailed recommendations covering:
- Database migration strategy
- CI/CD modernization with GitHub Actions
- Authentication and authorization improvements
- Image storage optimization on Google Cloud Storage
- Job orchestration improvements (Hangfire hardening)
- Ongoing maintenance and support contract structure
Image Processing Pipeline
Documented and analyzed the sophisticated image processing system:
- Scraping from estate agent websites
- SHA1 hashing for duplicate detection
- Format standardization (PNG to JPEG conversion)
- Multiple size generation (thumbnails to lightbox)
- Cloud storage with organized naming conventions
- Version-based cache busting
Technologies
- .NET backend services
- React frontend with server-side rendering
- SQL Server primary database
- Redis caching layer
- Hangfire background job processing
- Google Cloud Storage for image assets
- Fly.io hosting platform