# yasinsametkaraca/social-media-app architecture

> Architecture diagram of the GitHub repository yasinsametkaraca/social-media-app, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yasinsametkaraca/social-media-app
- Repository: https://github.com/yasinsametkaraca/social-media-app

## Overview

This appears to be a Spring question-and-answer or social-posting API: users authenticate, create and update posts, and interact through comments and likes. The tree also identifies JWT security, refresh-token handling, and repositories for users and content. With no README or source excerpts, the component roles can be described from their names, but the wiring between controllers, services, repositories, and security components cannot be verified; those internal relationships are therefore not shown.

Main entry points: [`src/main/java/com/example/questionapp/controllers/AuthenticationController.java`](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/AuthenticationController.java) (Authentication API), [`src/main/java/com/example/questionapp/controllers/PostController.java`](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/PostController.java) (Post API), [`src/main/java/com/example/questionapp/controllers/CommentController.java`](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/CommentController.java) (Comment API), [`src/main/java/com/example/questionapp/controllers/LikeController.java`](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/LikeController.java) (Like API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API controllers"]
  node_auth_api["Authentication API"]
  node_post_api["Post API"]
  node_comment_api["Comment API"]
  node_like_api["Like API"]
  node_user_api["User API"]
end

subgraph group_services["Application services"]
  node_post_service["Post service<br/>[PostService.java]"]
  node_comment_service["Comment service"]
  node_like_service["Like service<br/>[LikeService.java]"]
  node_user_service["User service<br/>[UserService.java]"]
  node_user_details["User details"]
  node_refresh_service["Refresh tokens"]
end

subgraph group_security["Authentication and security"]
  node_security_config["Security configuration"]
  node_jwt_filter["JWT filter"]
  node_jwt_provider["JWT provider"]
  node_jwt_details["JWT user details"]
  node_jwt_entry["JWT entry point"]
end

subgraph group_data["Persistence"]
  node_post_repo["Post repository"]
  node_comment_repo["Comment repository"]
  node_like_repo["Like repository"]
  node_user_repo["User repository"]
  node_refresh_repo["Refresh token repository"]
end

node_user(("User"))

node_user -->|"authentication requests"| node_auth_api
node_user -->|"post requests"| node_post_api
node_user -->|"comment requests"| node_comment_api
node_user -->|"like requests"| node_like_api
node_user -->|"user requests"| node_user_api

click node_auth_api "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/AuthenticationController.java"
click node_post_api "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/PostController.java"
click node_comment_api "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/CommentController.java"
click node_like_api "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/LikeController.java"
click node_user_api "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/UserController.java"
click node_post_service "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/PostService.java"
click node_comment_service "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/CommentService.java"
click node_like_service "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/LikeService.java"
click node_user_service "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/UserService.java"
click node_user_details "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/UserDetailsServiceImplementation.java"
click node_refresh_service "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/RefreshTokenService.java"
click node_security_config "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/configuration/SecurityConfiguration.java"
click node_jwt_filter "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTAuthenticationFilter.java"
click node_jwt_provider "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTTokenProvider.java"
click node_jwt_details "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTUserDetails.java"
click node_jwt_entry "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTAuthenticationEntryPoint.java"
click node_post_repo "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/PostRepository.java"
click node_comment_repo "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/CommentRepository.java"
click node_like_repo "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/LikeRepository.java"
click node_user_repo "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/UserRepository.java"
click node_refresh_repo "https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/RefreshTokenRepository.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth_api,node_post_api,node_comment_api,node_like_api,node_user_api,node_user toneBlue
class node_post_service,node_comment_service,node_like_service,node_user_service,node_user_details,node_refresh_service toneAmber
class node_security_config,node_jwt_filter,node_jwt_provider,node_jwt_details,node_jwt_entry toneMint
class node_post_repo,node_comment_repo,node_like_repo,node_user_repo,node_refresh_repo toneRose
```

## Components

### API controllers

- [Authentication API](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/AuthenticationController.java): `src/main/java/com/example/questionapp/controllers/AuthenticationController.java`
- [Post API](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/PostController.java): `src/main/java/com/example/questionapp/controllers/PostController.java`
- [Comment API](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/CommentController.java): `src/main/java/com/example/questionapp/controllers/CommentController.java`
- [Like API](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/LikeController.java): `src/main/java/com/example/questionapp/controllers/LikeController.java`
- [User API](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/controllers/UserController.java): `src/main/java/com/example/questionapp/controllers/UserController.java`

### Application services

- [Post service](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/PostService.java): `src/main/java/com/example/questionapp/services/PostService.java`
- [Comment service](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/CommentService.java): `src/main/java/com/example/questionapp/services/CommentService.java`
- [Like service](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/LikeService.java): `src/main/java/com/example/questionapp/services/LikeService.java`
- [User service](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/UserService.java): `src/main/java/com/example/questionapp/services/UserService.java`
- [User details](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/UserDetailsServiceImplementation.java): `src/main/java/com/example/questionapp/services/UserDetailsServiceImplementation.java`
- [Refresh tokens](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/services/RefreshTokenService.java): `src/main/java/com/example/questionapp/services/RefreshTokenService.java`

### Authentication and security

- [Security configuration](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/configuration/SecurityConfiguration.java): `src/main/java/com/example/questionapp/configuration/SecurityConfiguration.java`
- [JWT filter](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTAuthenticationFilter.java): `src/main/java/com/example/questionapp/security/JWTAuthenticationFilter.java`
- [JWT provider](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTTokenProvider.java): `src/main/java/com/example/questionapp/security/JWTTokenProvider.java`
- [JWT user details](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTUserDetails.java): `src/main/java/com/example/questionapp/security/JWTUserDetails.java`
- [JWT entry point](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/security/JWTAuthenticationEntryPoint.java): `src/main/java/com/example/questionapp/security/JWTAuthenticationEntryPoint.java`

### Persistence

- [Post repository](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/PostRepository.java): `src/main/java/com/example/questionapp/dataAccess/PostRepository.java`
- [Comment repository](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/CommentRepository.java): `src/main/java/com/example/questionapp/dataAccess/CommentRepository.java`
- [Like repository](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/LikeRepository.java): `src/main/java/com/example/questionapp/dataAccess/LikeRepository.java`
- [User repository](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/UserRepository.java): `src/main/java/com/example/questionapp/dataAccess/UserRepository.java`
- [Refresh token repository](https://github.com/yasinsametkaraca/social-media-app/blob/main/src/main/java/com/example/questionapp/dataAccess/RefreshTokenRepository.java): `src/main/java/com/example/questionapp/dataAccess/RefreshTokenRepository.java`

### Other components

- **User**

## Connections

- User → Authentication API: authentication requests
- User → Post API: post requests
- User → Comment API: comment requests
- User → Like API: like requests
- User → User API: user requests
