# chizuyu/blogger architecture

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

- Interactive diagram: https://gitdiagram.com/chizuyu/blogger
- Repository: https://github.com/chizuyu/blogger

## Overview

Blogger is an Android social blogging app: users authenticate, browse and manage posts, interact through likes and comments, and view or update profiles. The README documents MVVM and Retrofit, while the tree identifies screens, ViewModels, API definitions, and models. Source excerpts were not provided, so internal call wiring and specific API request flows cannot be verified; the graph shows the documented structure and major capabilities without asserting those details.

Main entry points: [`app/src/main/java/com/example/myapplication/MainActivity.kt`](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/MainActivity.kt) (App entry), [`app/src/main/java/com/example/myapplication/api/ApiService.kt`](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/ApiService.kt) (API service), [`app/src/main/java/com/example/myapplication/api/RetroFitClient.kt`](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/RetroFitClient.kt) (Retrofit client), [`app/src/main/java/com/example/myapplication/navigation/navGraph.kt`](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/navigation/navGraph.kt) (Navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Android app"]
  node_activity["App entry<br/>[MainActivity.kt]"]
  node_navigation["Navigation<br/>[navGraph.kt]"]
end

subgraph group_features["User features"]
  node_auth["Login and registration<br/>[LoginScreen.kt]"]
  node_authvm["Auth ViewModels<br/>[LoginViewModel.kt]"]
  node_posts["Post screens<br/>[PostScreen.kt]"]
  node_createpost["Create and edit posts"]
  node_postdetail["Post details"]
  node_postvm["Post ViewModels<br/>[PostViewModel.kt]"]
  node_likes["Likes<br/>[HomeScreen.kt]"]
  node_comments["Comments<br/>[CommentModel.kt]"]
  node_profiles["Profiles and follows<br/>[ProfileScreen.kt]"]
  node_search["User search<br/>[SearchScreen.kt]"]
  node_profilevm["Profile and user ViewModels"]
end

subgraph group_data["Networking and models"]
  node_api["API service<br/>[ApiService.kt]"]
  node_retrofit["Retrofit client<br/>[RetroFitClient.kt]"]
  node_models["Domain models<br/>[PostModel.kt]"]
end

node_user(("User"))
node_backend{{"REST API"}}

node_user -->|"opens app"| node_activity
node_activity -->|"starts navigation"| node_navigation
node_user -->|"authenticates"| node_auth
node_user -->|"browses posts"| node_posts
node_user -->|"manages posts"| node_createpost
node_user -->|"opens post"| node_postdetail
node_user -->|"likes posts"| node_likes
node_user -->|"discusses posts"| node_comments
node_user -->|"views profiles"| node_profiles
node_user -->|"searches users"| node_search
node_retrofit -->|"creates client"| node_api
node_api -.->|"REST requests"| node_backend

click node_activity "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/MainActivity.kt"
click node_navigation "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/navigation/navGraph.kt"
click node_auth "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/LoginScreen.kt"
click node_authvm "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/LoginViewModel.kt"
click node_posts "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/PostScreen.kt"
click node_createpost "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/CreatePostScreen.kt"
click node_postdetail "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/DetailPostScreen.kt"
click node_postvm "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/PostViewModel.kt"
click node_likes "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/HomeScreen.kt"
click node_comments "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/model/CommentModel.kt"
click node_profiles "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/ProfileScreen.kt"
click node_search "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/SearchScreen.kt"
click node_profilevm "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/ProfileViewModel.kt"
click node_api "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/ApiService.kt"
click node_retrofit "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/RetroFitClient.kt"
click node_models "https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/model/PostModel.kt"

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_activity,node_navigation,node_user toneBlue
class node_auth,node_authvm,node_posts,node_createpost,node_postdetail,node_postvm,node_likes,node_comments,node_profiles,node_search,node_profilevm toneAmber
class node_api,node_retrofit,node_models,node_backend toneMint
```

## Components

### Android app

- [App entry](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/MainActivity.kt): `app/src/main/java/com/example/myapplication/MainActivity.kt`
- [Navigation](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/navigation/navGraph.kt): `app/src/main/java/com/example/myapplication/navigation/navGraph.kt`

### User features

- [Login and registration](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/LoginScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/LoginScreen.kt`
- [Auth ViewModels](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/LoginViewModel.kt): `app/src/main/java/com/example/myapplication/ui/viewModel/LoginViewModel.kt`
- [Post screens](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/PostScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/PostScreen.kt`
- [Create and edit posts](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/CreatePostScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/CreatePostScreen.kt`
- [Post details](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/DetailPostScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/DetailPostScreen.kt`
- [Post ViewModels](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/PostViewModel.kt): `app/src/main/java/com/example/myapplication/ui/viewModel/PostViewModel.kt`
- [Likes](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/HomeScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/HomeScreen.kt`
- [Comments](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/model/CommentModel.kt): `app/src/main/java/com/example/myapplication/model/CommentModel.kt`
- [Profiles and follows](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/ProfileScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/ProfileScreen.kt`
- [User search](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/screens/SearchScreen.kt): `app/src/main/java/com/example/myapplication/ui/screens/SearchScreen.kt`
- [Profile and user ViewModels](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/ui/viewModel/ProfileViewModel.kt): `app/src/main/java/com/example/myapplication/ui/viewModel/ProfileViewModel.kt`

### Networking and models

- [API service](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/ApiService.kt): `app/src/main/java/com/example/myapplication/api/ApiService.kt`
- [Retrofit client](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/api/RetroFitClient.kt): `app/src/main/java/com/example/myapplication/api/RetroFitClient.kt`
- [Domain models](https://github.com/chizuyu/blogger/blob/master/app/src/main/java/com/example/myapplication/model/PostModel.kt): `app/src/main/java/com/example/myapplication/model/PostModel.kt`

### Other components

- **User**
- **REST API**

## Connections

- User → App entry: opens app
- App entry → Navigation: starts navigation
- User → Login and registration: authenticates
- User → Post screens: browses posts
- User → Create and edit posts: manages posts
- User → Post details: opens post
- User → Likes: likes posts
- User → Comments: discusses posts
- User → Profiles and follows: views profiles
- User → User search: searches users
- Retrofit client → API service: creates client
- API service → REST API: REST requests
