House Market is a comprehensive platform designed to simplify property renting. It provides a secure and efficient way for landlords to list properties and for users to find and manage rental properties.
We aim to enhance the project by introducing more advanced features and improvements:
- Property Search & Filtration: Users will be able to filter properties based on various criteria like price, location, and size, making the search process more efficient.
- Shift to React.js: The frontend will transition to React.js for a more dynamic and responsive user experience.
- Messaging System with Kafka: Implementing a real-time messaging system using Kafka to facilitate communication between property owners and potential buyers/renters.
- Deployment on AWS Elastic Beanstalk: For scalability, we plan to deploy the project on AWS Elastic Beanstalk, ensuring high availability and performance.
- CI/CD Pipelines: Continuous integration and deployment pipelines will be set up to streamline the development process, ensuring smooth updates and releases.
- Media Management: Efficient handling of property photos and videos for a more comprehensive property listing experience.
- Java 17
- Spring Boot 3.3.4
- MySQL
- JWT for security
- Maven
- Frontend: HTML, CSS, JavaScript
- User Authentication: Secure user authentication using JWT tokens.
- Property Management: CRUD operations for managing property details.
- Error Handling: Centralized exception handling with standardized error responses.
- Validation: Handled validation for API payload data.
- Login Page: User login with JWT authentication.
- Dashboard: Display of property listings after successful authentication.
- Token Management: Handling of access and refresh tokens.
- Java Development Kit (JDK) version 17 or higher
- Maven (for building the project)
- MySQL database
- A code editor (e.g., Visual Studio Code) for both frontend and backend
-
Clone the repository:
git clone https://github.com/Rohit-MyRG/House-Market.git cd house-market
-
Build the project:
mvn -U clean install
-
Set up your MySQL database configuration in
src/main/resources/application.properties
. -
Run the application:
java -jar target/house-market-0.0.1-SNAPSHOT.jar
The backend will start on http://localhost:8080.
- Navigate to the
src/frontend/
folder. - Run the frontend using a local server (e.g., Live Server extension in VS Code). The frontend will be accessible on http://localhost:5500.
- POST
/api/authenticate
: Authenticate user and generate JWT token.-
Request Payload:
{ "email": "user@example.com", "password": "password" }
-
Response Payload:
{ "accessToken": "eyJhbGciOiJIUzI1NiIsIn...", "refreshToken": "eyJhbGciOiJIUzI1NiIsIn..." }
-
- Endpoints:
GET /api/properties
: Retrieve all properties.POST /api/properties/{ownerId}
: Add a new property associated with a specific owner.GET /api/properties/owner/{ownerId}
: Get all properties for a specific owner.PUT /api/properties/{propertyId}
: Update an existing property by ID.DELETE /api/properties/{propertyId}
: Delete a property by ID.
- Endpoints:
GET /api/users
: Retrieve all users.POST /api/users
: Add a new user.