Problem Statement: Real Estate Listings
You are required to develop a real estate listings web application using React. The real estate listings should allow users to view and search for properties for sale or rent.
The following features are required:
- User Authentication: Users should be able to sign up, log in, and log out.
- Property Listings: A list of properties with their details (address, price, type, images, etc.).
- Property Search: Users should be able to search for properties based on different criteria (location, price, type, etc.).
- Property Details: Users should be able to view the details of a property, including its description, images, and location.
- Contact Agent: Users should be able to contact the agent responsible for the property by sending an email.
- User Dashboard: Users should be able to view a list of their saved properties and view their contact history.
Technical Requirements:
- React 16.13 or higher
- Use of Redux for state management
- Use of Axios for API calls [Use any publically available APIs or Firebase]
- Proper use of React components, hooks, and routing
- Proper use of async/await for handling asynchronous actions
- Proper use of React Bootstrap or any other UI library
- Proper use of form validation and error handling
Deliverables:
- The source code of the project is properly documented.
- A brief report explaining the solution’s architecture and the design decisions are taken.
- Deployment instructions for the application.