EliteEstate, a Real Estate Platform, is a full-stack web application built using the MERN stack (MongoDB, Express.js, React.js, and Node.js). It is designed to streamline the buying, selling, and management of real estate properties, catering to three distinct user roles: User, Agent, and Admin.
For testing the platform, use the following credentials:
- Email:
admin@gmail.com
- Password:
Admin@elite123
- Email:
agent@gmail.com
,agent2@gmail.com
- Password:
Agent@elite123
- Visa Card:
4242424242424242
- Master Card:
5555555555554444
- CVC:
Any 3 digits
- Date:
Any future date
- Users can view admin-approved featured properties on the homepage, along with the latest user reviews and other sections.
- Users can browse and search for properties using location, filter, and sort by price. Only admin-verified properties are displayed here.
- Users/buyers can wishlist properties and leave reviews.
- The user/buyer dashboard includes a profile page and a wishlist page, where users can make price offers to agents.
- Once an agent approves an offer, the buyer can make a payment using Stripe. Transaction information is saved and displayed on both the user/buyer and agent dashboards.
- Buyers can also view or delete their reviews.
- Agents can add properties, but the properties will not appear to users/buyers until the admin verifies them.
- Agents can also update/delete their added properties.
- If a buyer sends an offer, it will appear on the agent's Requested Properties page. Agents can accept or reject the offer. If an offer is accepted, all other offers for that property from other buyers will be automatically rejected. The buyer can then pay their offered amount using Stripe.
- Transaction data is saved upon successful payment. Agents can also view their total revenue.
- Admins can verify or reject properties added by agents.
- Admins can view and manage all users from the Manage Users page. They can promote users to agent/admin status, as well as promote agents to admin status or mark an agent as fraudulent.
- Marking an agent as fraudulent will delete all the properties posted by that agent. Admins can also delete any users or agents.
- Admins can view and delete any reviews added by users/buyers.
- Admins can select which properties to advertise on the homepage from the Advertise Property page.
- React.js: For building user interfaces.
- Tailwind CSS: Utility-first CSS framework.
- Material Tailwind: Elegant UI components.
- React Router: Navigation and routing.
- TanStack Query: Data fetching and caching.
- Firebase Authentication: Secure user authentication.
- Node.js: Server-side runtime.
- Express.js: RESTful APIs framework.
- JWT: Secure authentication.
- MongoDB: NoSQL database for app data.
- Stripe API: Secure payment processing.
- Firebase & Surge: Frontend hosting.
- Vercel: Backend hosting.
- ImgBB: Image management.
- Git & GitHub: Version control.
- ESLint & Prettier: Code quality tools.
To get started with the server, follow these steps:
-
Clone the repository:
git clone https://github.com/xyryc/EliteEstate-server.git
-
Navigate to the project directory:
cd EliteEstate-server
-
Install dependencies:
npm install
-
Set up environment variables:
Create a
.env.local
file in the root directory and add your mongodb configs.DB_USER=db_username DB_PASS=db_password ACCESS_TOKEN_SECRET=access_token_secret PAYMENT_SECRET_KEY=payment_secret_key
-
Start the server:
nodemon index.js
Once the server is up and running, you can access the server from http://localhost:5000/
.
Feel free to fork the repository, make improvements, and submit a pull request. For major changes, open an issue first to discuss the proposed changes.