This project is a comprehensive real estate bidding platform where users can list their properties for sale, mark their land on a map, and manage bids from potential buyers. Sellers can set a closing time for each property, and admins can approve new property listings and bid results.
- Project Title and Description
- Table of Contents
- Installation Instructions
- Languages and Tools
- Usage Instructions
- Features
- Contributing
- License
- Contact Information
- Node.js (v12.x or later)
- MongoDB (v4.x or later)
- Git
-
Clone the repository:
git clone https://github.com/VishnuNanilal/real-estate-project.git cd real-estate-project
-
Install server and client dependencies
cd server npm install
cd ../client npm install
-
Environment variables
Create a .env file in server directory and add environment variable in the same strucuture as defined in .env.example
-
Run server and client
cd server nodemon index.js
cd client npm run start
-
/user/register
- Method: POST
- Payload:
{name:"", email:"", phone_num: 0, password:""}
-
/user/sign-in
- Method: POST
- Payload:
{name:"", email:""/phone_num: 0, password:""}
-
/user/me
- Method: GET
-
/user/me
- Method: PATCH
- Payload:
{update data}
-
/user/me/add-property/${property_id}
- Method: PATCH
-
/user/get-all
- Method: GET
-
/user/notification/push
- Method: PATCH
- Payload:
{notification: ""}
-
/user/notification/pop
- Method: PATCH
- Payload:
{notification_id: ""}
-
/seller/register
- Method: POST
- Payload:
{user_id: "", name: ""}
-
/seller/${seller_id}
- Method: GET
-
/seller/${seller_id}
- Method: PATCH
- Payload:
{update data}
-
/seller/${seller_id}/add-property
- Method: PATCH
- Payload:
{property_id:""}
-
/seller/:seller_id/remove-property/:property_id
- Method: PATCH
-
/property/
- Method: POST
- Payload:
{name: "", price: 0, description: "", location: "", boundary_points: [], area: "", seller_id: "", createdAt: "", updatedAt: "", minimum_increment: 1000, closing_time: 0, closing_date: Date.now()}
-
/property/get-all
- Method: GET
-
/property/${property_id}
- Method: GET
-
/property/${property_id}
- Method: PATCH
- Payload:
{update data}
-
/property/${property_id}
- Method: DELETE
-
/property/set-buyer/${property_id}
- Method: PATCH
- Payload:
{property_id:"", buyer_id: ""}
-
/property/change-status/${property_id}
- Method: PATCH
- Payload:
{status: ""}
-
Sign Up
- Navigate to the Sign Up page.
- Fill in your details: name, email, phone number, and password.
- Submit the form to create your account.
-
Sign In
- Navigate to the Sign In page.
- Enter your email/phone number and password.
- Submit the form to log in to your account.
- Once signed in, you will be redirected to the user dashboard.
- Here, you can see an overview of your activities, such as active bids, listed properties, and recent notifications.
-
Add New Property
- Go to the 'Add Property' section in the seller dashboard.
- Fill in the details of your property, such as name, price, description, location, boundary points, area, minimum increment, closing time, and closing date.
- Submit the form to list your property for sale.
-
Property Approval
- After listing, your property will be in a 'pending' status.
- An admin will review and approve the property, changing its status to 'approved'.
- You can then publish the property for bidding.
-
View Properties
- Browse through the listed properties on the home page or in the 'Recent Properties' section.
- Click on a property to view its details.
-
Place a Bid
- Enter your bid amount, which must be higher than the current highest bid by at least the minimum increment.
- Submit your bid.
-
Monitor Bids
- Keep track of your bids in the 'My Bids' section.
- You will receive notifications if you are outbid.
-
Approve Properties
- Navigate to the admin dashboard.
- Review the properties listed in the 'pending' status.
- Approve or reject properties based on your criteria.
-
Manage Bids
- Approve or reject bid results once the bidding time is over.
- Change the status of properties from 'bidPending' to 'sold'.
- You will receive notifications about important events such as property approvals, new bids, and bid results.
- Check the 'Notifications' section for updates.
- Go to the 'Settings' section to update your account information, such as your email, phone number, and password.
- Click on the 'Logout' button to securely sign out of your account.
- Authorization and Authentication.
- Registration and Sign in.
- User and Admin authentication.
- Map display
- Marking and viewing properties
- Differently colors and shades based on property status.
-
Bidding - platform for bidding
-
Admin privileges - Admin authorizes properties before and after bid.
-
Recent Feed - Recently accepted properties displayed on recent feed.
//BACK END
-
seller should be able to create property. Default status: "pending"
-
All pending property should be visible by admin for approval. status: pending->approved
-
All approved property should be publishable by seller as bid.
-
Once bid time is over, status: approved->bidPending.
-
All bidPending property should be approvable by admin: status: bidPending->sold
-
Include bidder's info in the property. (user_id)
-
Include ways to update buyer_id and new price in property,
-
components to buy a property
-
Dislay the time left in front end
-
Implement a time after which bid closes
-
Implement admin who can authorize the ownership of a newly added property.
-
Implement a client side newly marked property sales.(Recent properties)
-
When time is over the payment should be made and marked land owner info should be changed to bought person. Relevant payments should be carried out.
//FRONT END
- Sign In and Register Modal
- Home page should have : left half tabs Right hald map
- Left half tabs should have: Recent properties, Add new property,
- User Dashboard: Displays user-specific information such as active bids, listed properties, etc.
- Seller Dashboard: Specialized dashboard for sellers to manage their properties and see bidding statuses.
- Admin Dashboard: Specialized dashboard for admins to approve new properties, bids, and perform other admin tasks.
- Notifications: Displays user notifications about bids, property approvals, etc.
- Settings: Allows users to change account settings.
- Dashboard: Overview of user activities, including active bids and won properties.
- My Bids: List of properties the user has placed bids on.
- Notifications: Alerts and updates about bid statuses and other activities.
- Profile: View and edit personal information.
- Settings:Account settings and preferences.
- Logout:Sign out of the account.
- Dashboard:Overview of seller activities, including listed properties and ongoing bids.
- My Properties:List of properties the seller has listed.
- Add Property:Form to create and submit a new property listing.
- Notifications:Alerts about bids and property approvals.
- Profile:View and edit personal information.
- Settings:Account settings and preferences.
- Logout:Sign out of the account.
- Admin Dashboard:Overview of platform activities, pending approvals, and user statistics.
- Options to approve or reject new property listings.
- Approve Bids:List of bid results awaiting approval.Options to approve or reject bid results.
- Manage Users:View and manage user accounts.Options to deactivate or delete users.
- Reports/Analytics:Access to various reports and analytics about platform usage.
- Settings:Admin-specific settings and preferences.
- Logout:Sign out of the admin account.
- Support/Help:FAQs and contact options for customer support.
- About Us:Information about the platform and the team.
- Terms of Service:Legal information and terms of use.
- Privacy Policy:Information about data privacy and user rights.
Thank you for your interest in contributing to the Real Estate Bidding Platform! We welcome contributions from the community to help improve this project.
-
Fork the Repository
- Go to the project's GitHub page.
- Click on the 'Fork' button at the top right of the page to create a copy of the repository under your own GitHub account.
-
Clone the Forked Repository
git clone https://github.com/VishnuNanilal/real-estate-project.git cd real-estate-project
-
Create a New Branch
- Create a new branch for your feature or bugfix.
git checkout -b feature/your-feature-name
-
Make Changes
- Implement your feature or bugfix.
- Ensure your code follows the project's coding standards and conventions.
- Write or update tests as necessary.
-
Commit Your Changes
- Commit your changes with a clear and descriptive commit message.
git add . git commit -m "Add detailed description of your changes"
-
Push to Your Fork
- Push your changes to your forked repository.
git push origin feature/your-feature-name
-
Submit a Pull Request
- Go to the original repository on GitHub.
- Click on 'Pull Requests' and then 'New Pull Request'.
- Select your branch from the dropdown menu and create the pull request.
- Provide a detailed description of your changes in the pull request.
- Code Style: Please ensure your code adheres to the project's coding style.
- Testing: Write tests for new features and ensure existing tests pass.
- Commits: Write clear and concise commit messages.
- Pull Requests: Provide a detailed description of your changes and the problem they solve.
We appreciate your contributions and thank you for helping improve the Real Estate Bidding Platform!
This project is licensed under the MIT License - see the LICENSE file for details.
This project is maintained by VISHNU NANILAL PANICKER
- phone number: +91 7306365503
- email: vishnunlal@gmail.com