Skip to content

thomasantony12/Real-estate-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real Estate App

A simple Real Estate App that connects multiple users, enabling them to browse, interact, and manage posts related to real estate properties. This application provides a seamless experience for managing posts, chatting with other users, and exploring property locations on an interactive map.

Features

  1. User Management User Registration and Login: Secure authentication system for new and existing users. Update User Details: Edit personal information.

  2. Post Management Create Posts: Add real estate listings with relevant details. Update Posts: Modify existing posts as needed. Delete Posts: Remove posts from the system. Get Posts: Retrieve all posts with detailed information.

  3. Interaction and Communication Chat Between Users: Real-time chat functionality to connect users. Save Posts: Mark posts as favorites for easy access later.

  4. Search and Filter Filter Posts: Narrow down results based on various criteria like price, location, or type.

  5. Maps and Locations Property Locations: Interactive maps to display property locations using Leaflet.

Technologies Used

Backend

  • Node.js: JavaScript runtime for building the server-side logic.
  • Express.js: Framework for building RESTful APIs.
  • PostgreSQL: Relational database for managing user and post data.

Frontend

  • React: Component-based UI library for building dynamic interfaces.
  • SASS: For styling the application with a modular and maintainable CSS structure.

Real-Time Features

  • Socket.IO: Real-time communication for the chat functionality.

Utilities

  • Leaflet: Interactive maps for displaying property locations.
  • Axios: For making HTTP requests to the server.
  • Zustand: Lightweight state management library.
  • timeago.js: Display relative time (e.g., "5 minutes ago") for timestamps.

Getting Started

Prerequisites

  • Node.js installed
  • PostgreSQL database setup

Installation

  1. Clone the repository:
git clone https://github.com/your-username/real-estate-app.git
cd real-estate-app
  1. Install dependencies:
npm install
  1. Set up the database:

    • Create a PostgreSQL database.
    • Configure the database connection in the .env file.
  2. Start the development server:

npm run dev
  1. Navigate to http://localhost:3000 in your browser.

Folder Structure

real-estate-app/
│
├── client/                # Frontend React app
│   ├── public/            # Public assets
│   ├── src/               # React components, pages, and styles
│   |   ├── components     # React components
│   |   ├── context        # React context
│   |   ├── lib            # React features
│   |   ├── routes         # React pages
│   |   ├── App.jsx
│   |   └── main.jsx       # React App entry point
│   |   
│   ├── package.json
│   └── index.html
│
├── server/                # Backend server
│   ├── routes/            # API routes
│   ├── middlewere/        # User verification
│   ├── controllers/       # Route logic
│   ├── app.js             # Entry point for the backend
|   ├── db.js              # Database details
|   └── package.json
|
├── socket/                # Backend server
│   ├── app.js             # Entry point for the socket
|   └── package.json
|
└── README.md              # Project documentation

How It Works

  1. User Authentication:

    • Users register and log in to access the app.
    • Securely stored credentials with hashed passwords.
  2. Post Management:

    • Users can create, update, delete, and retrieve posts.
    • Posts include property details such as price, location, and description.
  3. Chat:

    • Real-time messaging powered by Socket.IO for smooth user communication.
  4. Maps Integration:

    • View property locations on a map with Leaflet.
  5. Filter and Search:

    • Quickly find properties based on filters like price, location, and type.

Future Enhancements

  • Implement user reviews and ratings.
  • Add advanced search options (e.g., neighborhood insights, amenities).

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a feature branch: git checkout -b feature-name.
  3. Commit your changes: git commit -m "Add new feature".
  4. Push the branch: git push origin feature-name.
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Screenshots

1 2 3

About

Major project using react node postgress sql and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published