<Chandan />
Back to projects

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 project preview
ReactReduxNode.jsExpressMongoDBJWTGoogle OAuth

01

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

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

The solution

House Hunt combines a React interface and Redux-managed client state with a Node/Express API and MongoDB persistence. Authentication establishes user ownership so listing-management actions can be tied to the correct account.

04

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

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

06

Technical decisions

Centralized client state

Redux provides a predictable place for authentication and shared application state instead of threading state through unrelated component trees.

Ownership-aware listing APIs

Listing mutations are associated with an authenticated user so editing and deletion are not treated as anonymous CRUD operations.

07

Challenges

01

Synchronizing authentication and UI state

Problem

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

Approach

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

02

Keeping CRUD ownership clear

Problem

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

Approach

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

08

What I learned

  • 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.

09

Next improvements

  • Improve search and filtering
  • Add richer image handling
  • Add automated integration tests
  • Improve accessibility and responsive details

Want to talk about this project?

I'm happy to walk through the architecture, trade-offs and implementation decisions in more depth.

Contact me