Skip to content

Architecture

Illia Kotvitskyi edited this page Sep 8, 2024 · 4 revisions

Architecture

Overview

Trendlink is a platform designed to facilitate social blogger search and help businesses with influencer marketing. It follows a monolithic architecture, separating the frontend, backend, and authentication components. The platform uses modern technologies such as React, ASP.NET Core, and Keycloak for user management.

Key Components

1. Frontend (Client-side)

  • Technology: React, TypeScript
  • Role: Manages the user interface and interactions with backend services via RESTful APIs.
  • Details:
    • State Management: Handled using React’s useState and useEffect, or a global state management library (e.g., Redux).
    • UI Components: Modular React components styled using Tailwind library.

2. Backend (Server-side)

  • Technology: C#, ASP.NET Core
  • Role: Handles business logic, API requests, and database interactions.
  • Endpoints: REST API endpoints for CRUD operations related to bloggers, users, and cooperations.
  • Database: Uses Entity Framework Core and Dapper to interact with the database.

3. Authentication and Authorization

  • Technology: Keycloak
  • Role: Provides centralized authentication using OAuth 2.0 and OpenID Connect, managing user identities.

4. Database

  • Technology: PostgreSQL database.
  • Role: Stores data related to users, advertisements, cooperations and other.

5. Containerization and Orchestration

  • Technology: Docker
  • Role: Uses Docker to containerize services, ensuring scalability and easier deployment.
  • Docker Compose: Used to define multi-container applications, allowing for easy local development.

Flow of Data

  1. User Request: A user interacts with the frontend via a web browser (e.g., searching for bloggers or managing cooperations).
  2. Frontend-Backend Interaction: The frontend sends HTTPS requests to backend API endpoints.
  3. Backend Processing: The backend processes the request, performs business logic, and interacts with the database.
  4. Response: The backend returns data, which the frontend displays to the user.
  5. Authentication: Keycloak secures access by validating user credentials and enforcing permissions.
Clone this wiki locally