ImmoMarket is a dynamic real estate marketplace for real estate advertisements and the rental of apartments and houses. It is built using the MERN (MongoDB, Express, React, Node.js) stack.
- User Authentication: Users can register, login, and manage their profiles.
- Real Estate Listings: Users can search and view available real estate listings with details and contacting owner by email.
- Property Management: users can add, edit, and delete property listings.
- Responsive Design: The application is responsive and works seamlessly across devices.
- JWT (JSON Web Tokens): Used for secure authentication and authorization by generating tokens that contain user information.
- Nodemon: Monitors your server for changes and automatically restarts it, making the development process more efficient.
- Node.js: A JavaScript runtime environment that allows you to run JavaScript code outside of a web browser, commonly used for building server-side applications.
- Express.js: A web application framework for Node.js that simplifies the process of building APIs and web servers.
- MongoDB: A NoSQL database used for storing data in a flexible, JSON-like format, commonly used in Node.js applications.
- Bcrypt.js: A library used for hashing passwords, adding a layer of security to user authentication.
- Multer: Middleware for handling file uploads in Node.js, often used for uploading images or other files.
- Morgan: HTTP request logger middleware for Node.js, used to log information about incoming requests.
- Joi: A schema description language and validator for JavaScript objects, used for validating request data in Express.js applications.
- Dotenv: Loads environment variables from a .env file into process.env, making it easy to manage configuration settings.
- Vite: A fast, modern build tool for frontend development, providing a rapid development experience with instant server start and hot module replacement.
- React.js: A JavaScript library for building user interfaces, commonly used for building dynamic and interactive web applications.
- Tailwind CSS: A utility-first CSS framework for building custom designs without having to leave your HTML.
- Axios: A promise-based HTTP client for making AJAX requests, commonly used for sending requests to a backend API.*
- Redux Toolkit Query: A Redux-based data fetching and caching tool, providing a simplified API for managing remote data in a Redux application.
- PropTypes: A library for type checking props in React components, helping to catch bugs early in development.
- React Router DOM: A library for routing in React applications, allowing you to define different routes and their corresponding components.
- React Icons: A library of popular icon packs as React components, making it easy to add icons to your application.
- React Toastify: A library for displaying toast notifications in React applications, providing a simple API for showing messages to users.
- React Spinners: A collection of loading spinner components for React, providing visual feedback to users during long-running tasks.
1.Clone the repository:
git clone https://github.com/hossam-dev14/ImmoMarket.git
cd immomarket2.Install dependencies for both the frontend and backend:
cd client
npm install
cd api
npm install3.Set up the environment variables:
- Create a .env file in the backend directory.
- Add the following variables to the .env file:
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
- Start the backend server:
cd api
npm run dev- Start the frontend development server:
cd client
npm run dev- Open your browser and navigate to http://localhost:3000 to view the application.
This project is licensed under the MIT License - see the LICENSE file for details.
