A modern real estate web application built with the MERN stack (MongoDB, Express.js, React, Node.js). Search, list, book, and explore properties for sale or rent with a user-friendly interface and advanced search.
- Property Listings — Browse listings with details, prices, addresses, and descriptions.
- Advanced Search — Filter by type (rent/sale), amenities, and sorting options.
- User Profiles — Register, manage your profile, add a picture, and manage your listings.
- Authentication — Secure sign-up and login with Auth0 (e.g. Google OAuth).
- Book a Visit — Choose a date to schedule a property visit.
- Maps & Location — Interactive maps with property locations, nearby amenities, and points of interest.
- Favourites — Save properties you like for quick access.
- Property Details — Full descriptions, features, room info, amenities, and images.
- Frontend: React, Vite, Mantine UI, React Query, Leaflet (maps), Auth0
- Backend: Node.js, Express, Mongoose, Prisma
- Database: MongoDB
-
Clone the repository
git clone https://github.com/Optu-Consulting-LLC/Real-estate-booking-system.git cd Real-Estate-Booking -
Backend setup
cd server npm install -
Environment variables (server)
Create a
.envfile in theserverdirectory:PORT=8000 MONGO_URI=mongodb://127.0.0.1:27017/realestate JWT_SECRET=your_jwt_secret_here # Auth0 (for login) AUTH0_DOMAIN=your_auth0_domain AUTH0_AUDIENCE=your_auth0_audience # Optional: email, cloud storage, etc. FRONTEND_URL=http://localhost:5173
-
Frontend setup
cd ../client npm install -
Run the app
-
Start the API server (from
server):cd server npm start -
Start the React app (from
client, in another terminal):cd client npm run dev
Open http://localhost:5173 in your browser (or the port Vite shows).
-
- Browse properties, use search and filters, and create an account to list properties, book visits, and use favourites.
- Fork the repository.
- Create a branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m "Your commit message" - Push to the branch:
git push origin feature/your-feature-name - Open a pull request against the main repository.