A complete real state app with admin and agent feature
Website Category: Real Estate Web
email: [email protected]
password: Smjihad0
email: [email protected]
password: Smjihad0
- User Authentication & Authorization
- Social Login/Register & Email Password Based Login/Register
- Private Route and Role Based Route
- User can add property to wishlist from property details route and wishlist status will be pending by default and user can make a offer between the price range or remove that property from wishlist (can't select price over or below range), Agent can make this request approved or rejected. If status approved then user can pay via stripe and if paid successfully then status will be Paid and that property will show in Bought Property section also tran_id will show in that card
- User can add reviews on specific properties from property details route and reviews will show on My Reviews route in user dashboard, from that route user can also delete any of reviews he/she added
- User, Admin, Agent all of them can update their profile from Profile route in their dashboard
- Agent can add property and by default it's status will Pending, if admin approved it then it will show in My Properties route in agent dashboard
- Agent can keep track on sold properties from Sold Properties route in dashboard
- Agent can keep track on requested properties and see all of properties users offered from user dashboard and agent can make these properties status approved or rejected
- Admin can manage all of properties in this app. Admin can make agent's added property status pending to Verified or Rejected
- Admin can manage users and can change user to agent or user to admin and make a agent fraud. if a agent fraud then his/her property will not show in all properties route
- Admin can also manage reviews and delete a reviews
- Admin can manage reports against properties
- Admin can manage advertisement from Advertisement route. from here user can make a property advertise and that will be show in home page
- Recharts
- SwiperJS
- Ant Design
- Tanstack Query
- react-icons
- axios
One of the requirements was to ensure that if an admin marks an agent as fraudulent, the properties listed by that agent should not be displayed. To achieve this, I utilized the MongoDB aggregation pipeline.
Using MongoDB's powerful aggregation framework, I was able to filter out properties based on the agent's status. Here's a brief explanation of the approach:
- Lookup: Used
$lookup
to join the properties collection with the users collection to get the agent's status. - Match: Applied a
$match
stage to filter out properties where the agent's status is marked as fraudulent. - Projection: Used
$project
to specify the fields to be included in the final output.
This approach ensures that properties listed by fraudulent agents are dynamically excluded from the results, maintaining the integrity of the listings.
https://github.com/ShejanMahamud/NestQuest-Client.git
npm instal
Dev Mode:
npm run dev
Build Mode:
npm run build