// PROJECT_

AnyProperty

React 18

01. PROJECT_OVERVIEW

6 months of remote part-time work at Digital Diligence (New Zealand). AnyProperty is a commercial real estate marketplace for the Christchurch property market — a direct challenger to traditional real estate agencies, built at commercial scale. The platform covers the full buying and selling lifecycle: property search and browse, a P2P offer system, a 9-step listing wizard with identity verification, and a Sanity CMS-driven content layer. Google Maps and Leaflet handle interactive property maps. The "AnyProperty It" calculator shows sellers how much commission they save versus a traditional agent. I contributed to the frontend architecture — routing structure (React Router 6), component boundaries, API service layer, and screen implementation across buyer and seller flows. The repository is private at the request of Digital Diligence.

// PRIVATE_REPO — NDA

Status

Closed

Scope

Full-Stack Architecture

Primary Stack

React 18

02. SCREENSHOTS

Homepage — Your move, your call
Homepage — Your move, your call
Homes you might like — property cards
Homes you might like — property cards
AnyProperty It — agent commission savings calculator
AnyProperty It — agent commission savings calculator
Make an offer — P2P buyer-seller connection
Make an offer — P2P buyer-seller connection
Search & View — Christchurch property database
Search & View — Christchurch property database
Step 3: Move in — end-to-end purchase flow
Step 3: Move in — end-to-end purchase flow

03. TECH_STACK & ARCHITECTURE

//Remote part-time role at Digital Diligence (NZ) — commercial-scale real estate marketplace for the Christchurch property market

//React 18 SPA (CRA) with React Router 6 — buyer and seller flows share route structure, protected by cookie-based auth

//Dual map approach: Google Maps for listing creation (address autocomplete + pin placement), Leaflet for search results (clustered pins)

//Sanity CMS decouples editorial content (blog, landing pages) from the React app — GROQ queries at render time, no deploy needed for copy changes

//Cookie auth: apiService.js injects auth-token from getCookie('token') on every request, withCredentials: true across all calls

//9-step listing wizard: MUI Stepper gates each step — backward navigation allowed, skipping not, photos via pre-signed URLs

//P2P offer system: buyer submits offer → AnyProperty intermediates → seller notified → full lifecycle tracked in dashboard

//AnyProperty It: commission savings calculator is the core product differentiator vs traditional agents

React 18 + Create React App

Frontend — UI Framework

SPA with React Router 6 for client-side navigation. Route structure covers buyer flows (browse, search, watchlist, offer management) and seller flows (listing wizard, account, identity verification). CRA handles build tooling with environment-variable injection at build time.

Material UI v5 (MUI)

Frontend — Component Library

Primary UI layer — form fields, steppers, dialogs, cards and data tables throughout the platform. MUI's createTheme drives consistent color tokens and typography. AnyProperty's brand pink applied via primary palette override, keeping design consistent across buyer and seller flows.

React Router 6

Frontend — Client-Side Routing

Declarative routing with nested routes and lazy-loaded code-split bundles per feature area. Protected routes redirect to login when the auth cookie is absent. URL structure follows REST-style paths: /properties/:id, /account/offers, /list-property/step/:n.

Google Maps API + Leaflet

Frontend — Maps & Location

Google Maps handles listing creation: address autocomplete via Places API and interactive pin placement so the seller can pin the exact property location. Leaflet renders the search-results map with clustered property pins — two libraries, two distinct use cases at different points in the user journey.

Sanity CMS

Content Management — Blog & Landing Pages

Headless CMS for editorial content: blog articles, marketing landing pages and dynamic content blocks. GROQ queries fetch structured content at render time. Decoupling content from the React app means the marketing team can push editorial updates without a frontend deploy.

Axios + Cookie Auth

Frontend — API Layer

Centralized API service (apiService.js) wraps every request with an auth-token cookie header injected via getCookie('token') and withCredentials: true. Error responses are normalized to { error: message } for consistent UI error handling across all screens.

Bootstrap 5

Frontend — Layout & Grid

Grid system and responsive utilities used alongside MUI for page-level layout on landing and listing pages. Utility classes handle spacing and responsive breakpoints without custom CSS — Bootstrap and MUI co-exist cleanly with separate scopes.

9-Step Listing Wizard

Frontend — Core Seller Feature

Multi-step property listing flow gated by a MUI Stepper: location → map pin → rooms → features → specifics → description → community → photos → virtual tour. Each step validates before advancing — backward navigation allowed, skipping not. Photo uploads go through pre-signed URLs. Virtual tour accepts a Matterport embed link.

P2P Offer System

Frontend — Core Buyer Feature

Buyers submit offers directly to sellers without an agent intermediary — the core disruptor of the traditional agency model. The make-offer flow collects price, conditions and a personal message. AnyProperty intermediates to connect parties securely. Full offer lifecycle tracked: pending → accepted → completed, visible in the buyer's account dashboard.

Identity Verification

Frontend — Trust & Safety

Sellers must verify identity before a listing goes live — document upload (passport or driver's license) plus a live selfie. Verification state persists in the user account and surfaces as a trust badge on listings. Acts as a first-line defence against fraudulent or ghost listings.

AnyProperty It — Commission Calculator

Frontend — Business Value Proposition

Interactive savings calculator that shows sellers exactly how much commission they save vs a traditional agent. On a $100,000 NZD property: $5,163.50 back in the seller's pocket. This widget is the platform's core commercial argument — the business model challenge to the real estate industry made tangible and interactive.