Skip to content

celebiabdulkadir/realestateapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real Estate Application Documentation

Overview

This document provides a comprehensive overview of the Real Estate Application, designed to streamline the process of buying, selling, and renting real estate properties. It connects property owners with potential buyers or tenants through a user-friendly interface.

Application Structure

The application leverages a microservices architecture, enhancing scalability and deployment efficiency. Each microservice is dedicated to a specific function within the application, facilitating independent development and maintenance.

Services and Endpoints

  • Advert Service (/advert):

    • GET /: List all adverts.
    • GET /{id}: Get an advert by ID.
    • POST /: Create a new advert.
    • PUT /{id}: Update an advert by ID.
    • DELETE /{id}: Delete an advert by ID.
    • GET /adverts/{userId}: Get all adverts by user ID.
  • Auth Service (/auth):

    • POST /token: Generate an authentication token.
    • GET /validate: Validate an authentication token.
    • POST /register: Register a new user.
  • Order Service (/order):

    • GET /: List all orders.
    • GET /{id}: Get an order by ID.
    • POST /: Create a new order.
    • PUT /{id}: Update an order by ID.
    • GET /availableAdvertRights/{userId}: Get available advert rights by user ID.
    • GET /orderByUserId/{userId}: Get orders by user ID.
  • Payment Service (/payment):

    • GET /: List all payments.
    • GET /{id}: Get a payment by ID.
    • POST /: Create a new payment.
    • PUT /{id}: Update a payment by ID.
    • GET /{orderId}: Get payments by order ID.
  • User Service (/user):

    • GET /: List all users.
    • GET /{id}: Get a user by ID.
    • PUT /{id}: Update a user by ID.
    • GET /exists/{id}: Check if a user exists by ID.

Technologies

  • Backend: Java with Spring Boot for microservices.
  • Frontend: Next.js/Typescript for the user interface.
  • Database: PostgreSQL for data storage.
  • Messaging: RabbitMQ for asynchronous communication.
  • Containerization: Docker & Docker Compose for service orchestration.

Getting Started

To run the application locally:

  1. Clone the repository:
    git clone https://github.com/celebiabdulkadir/realestateapp.git
    cd realestateapp

Build and start the services using Docker Compose:

docker-compose up --build 
Directory Structure

/advert/: Advert Service and its Dockerfile.
/auth/: Auth Service and its Dockerfile.
/order/: Order Service and its Dockerfile.
/payment/: Payment Service and its Dockerfile.
/user/: User Service and its Dockerfile.
/gateway/: Gateway Service and its Dockerfile.
/serviceregistry/: Service Registry and its Dockerfile.
docker-compose.yaml: Docker Compose configuration.

API Endpoints

Detailed API endpoints for each service are provided in the Services and Endpoints section above.

Frontend Setup

After setting up the microservices, you can start the frontend application as follows:

1- Ensure Node.js is installed on your system. You can download it from https://nodejs.org/.
2- Navigate to the frontend directory:

cd frontend 
3- Install the necessary dependencies:
npm install 
4- Start the development server:
npm run dev 
The application will be accessible at http://localhost:3000.

Frontend Pages

Home Page / Property Listing Page

Path: /
Description: The landing page of the application, showcasing featured properties/adverts and recent listings. Displays a list of properties available for sale or rent
Screenshot 2024-07-23 at 05 03 39

Create/Edit Adverts Screen

Path: /
Description: You can create and edit the advert that you created

Screenshot 2024-07-23 at 05 19 46

Property Detail Page

Path: /advert/:id
Description: Detailed view of a property, including photos, price, description, and contact information.

Screenshot 2024-07-23 at 05 15 03

User Packages Page

Path: /packages
Description: The packages that user bought and display advert rights
Screenshot 2024-07-23 at 05 04 25

Package Purchase Screen

Path: /packages
Description: You can buy package to get advert right to publish adverts
Screenshot 2024-07-23 at 05 04 35

Login Page

Path: /login
Description: Authentication page for users to log in.
Screenshot 2024-07-23 at 05 05 08

Register Page

path: /register
Desription: Register new user
Screenshot 2024-07-23 at 05 05 17

About

Real Estate App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages