Burner Estate is a state-of-the-art real estate application developed using the MERN stack (MongoDB, Express.js, React, Node.js). It provides users with a secure, seamless platform to manage and browse property listings, offering advanced features and an intuitive user interface.
- JWT (JSON Web Token): Secure user sessions and authentication.
- Firebase Authentication: Robust, scalable authentication with Firebase.
- Google OAuth: Easy sign-in using Google accounts for a smooth user experience.
- Create, Read, Update, Delete: Efficient property listing management with MongoDB.
- Image Uploads: Users can easily upload and manage property images.
- Property Listing Management: Streamlined process for handling property details.
- Sophisticated Search: Enhanced search capabilities to help users find properties quickly and accurately.
- Node.js (v14 or higher)
- MongoDB
- Firebase Account
- Google Developer Account for OAuth
-
Clone the repository
git clone https://github.com/awadesh365/DreamscapeDwellings.git cd DreamscapeDwellings
-
Install dependencies
npm install
-
Set up environment variables
Create a
.env
file in the root directory and add the following:MONGODB_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret FIREBASE_API_KEY=your_firebase_api_key FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain FIREBASE_PROJECT_ID=your_firebase_project_id FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id FIREBASE_APP_ID=your_firebase_app_id GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret
-
Run the application
npm start
-
Sign Up / Sign In
- Users can register or log in using email and password, Google OAuth, or Firebase authentication.
-
Property Management
- Users can create, update, and delete property listings as needed.
-
Search Properties
- Utilize advanced search features to find properties based on various criteria.
DreamscapeDwellings/
├── client/ # React frontend
│ ├── public/
│ └── src/
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ ├── services/ # API service calls
│ ├── styles/ # CSS and styling
│ └── utils/ # Utility functions
├── server/ # Express backend
│ ├── config/ # Configuration files
│ ├── controllers/ # Request handlers
│ ├── models/ # Mongoose models
│ ├── routes/ # Express routes
│ └── middleware/ # Middleware functions
├── .env # Environment variables
├── .gitignore
├── package.json
└── README.md
We welcome contributions from the community. To ensure a smooth contribution process, please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Commit your changes
git commit -m 'Add some feature'
- Push to the branch
git push origin feature/your-feature-name
- Open a pull request with a detailed description of your changes.
We expect all contributors to adhere to our Code of Conduct. Please read it to understand the expected behavior when contributing to this project.