HomeQuest is a state-of-the-art real estate web application built on the MERN (MongoDB, Express.js, React.js, Node.js) stack. It provides a seamless platform for users to explore, list, and manage property listings with an intuitive interface and robust features.
- Advanced Property Search: Users can apply filters for location, price range, property type, and more.
- Property Listings: Create, read, update, and delete property listings easily.
- User Authentication: Secure login system utilizing both Google and JWT-based authentication.
- Image Management: Upload and manage multiple images for each property listing.
- User Profiles: Personalized dashboards for managing listings and saved properties.
- Responsive Design: Fully responsive design ensures a seamless experience across all devices.
- React.js
- Redux for state management
- Tailwind CSS for styling
- Node.js
- Express.js
- MongoDB for the database
- Firebase Authentication
- JWT for token-based authentication
- Firebase Storage for image hosting
- Git for version control
Key functionalities include:
- Sign Up/Login: Create an account or log in using the authentication system.
- Search Properties: Utilize the search bar and filters to find properties.
- Create Listing: Add new properties by clicking "Add Property."
- Manage Listings: View and manage your listings through the dashboard.
The MongoDB database includes the following key schemas:
- User: Stores user information, including authentication details.
- Listing: Stores property details such as location, price, images, etc.
HomeQuest uses a dual authentication system:
- Google Authentication: Implemented using Firebase Authentication.
- JWT Authentication: Used for email/password login to maintain user sessions.
- Node.js (v14.0.0 or later)
- npm (v6.0.0 or later)
- MongoDB
- Firebase account
-
Clone the repository:
git clone https://github.com/kathan07/HomeQuest.git
-
Create an
.envfile:touch .env
-
Add Environment Variables:
VITE_FIREBASE_API_KEY = "your_firebase_api_key" JWT_SECRET = "your_jwt_secret" MONGODB = "your_mongodb_connection_string"
-
Install node modules:
npm i
-
Run the server:
npm run dev
-
Setup and run the client:
cd client npm i npm run dev