CK<Chandan/>
Back to Projects/House Hunt
Architecture & Engineering Case Study

House Hunt

A property discovery experience built around practical CRUD flows

A MERN real-estate application with authentication, Google OAuth, property listings, search-oriented UI, Redux state, and MongoDB persistence.

house-hunt.krchandan.online
1 / 3
House Hunt - Property Discovery & Search
ReactReduxNode.jsExpressMongoDBJWTGoogle OAuth
01 / OVERVIEW

Overview

House Hunt is a full-stack real-estate application that lets users authenticate, create and manage property listings, and browse available properties through a single web experience. It was built as a practical end-to-end MERN project covering frontend state, API design, authentication, and database-backed CRUD operations.

02 / CHALLENGE

The Problem

Property listing projects quickly become more than a collection of cards: users need identity, listing ownership, predictable create/update/delete flows, and a frontend that keeps state synchronized with the API.
03 / SOLUTION

The Solution

04 / FEATURES

Key Features

Email/password authentication
Google OAuth sign-in
Create, update, and delete property listings
User-owned listing management
Property browsing interface
Centralized client state with Redux
05 / ARCHITECTURE

System Architecture

React client→
Redux state→
Express REST API→
JWT / OAuth authentication→
MongoDB persistence
06 / DECISIONS

Technical Decisions

07 / HARD PROBLEMS

Challenges Solved

CHALLENGE 01

Synchronizing authentication and UI state

The Problem

The interface needs to react consistently when a user signs in, signs out, or completes an OAuth flow.

The Approach

Authentication state is centralized and used to drive protected actions and account-aware UI.

CHALLENGE 02

Keeping CRUD ownership clear

The Problem

A property listing should not be modifiable simply because its database ID is known.

The Approach

Mutation flows connect listings to their owner and require authenticated requests for management operations.

08 / RETROSPECTIVE

Key Takeaways

  • Full-stack CRUD becomes more useful when ownership rules are designed with it.
  • OAuth adds frontend and backend state transitions that need to be handled deliberately.
  • Shared client state is most useful when it represents genuinely shared application concerns.