# frakhmann/scribbles-mobile architecture

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

- Interactive diagram: https://gitdiagram.com/frakhmann/scribbles-mobile
- Repository: https://github.com/frakhmann/scribbles-mobile

## Overview

Scribbles Mobile is a Flutter client application. The tree suggests a social app centered on viewing and creating posts, with authentication, profiles, comments, exploration, and messaging as additional user-facing areas. A likely internal layer is the shared network client and services. The README is only Flutter starter text, and the sampled source contains platform launchers rather than Dart feature implementations, so feature wiring and backend interactions cannot be verified; uncertain links are omitted.

Main entry points: [`lib/src/app.dart`](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/app.dart) (Flutter app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["App shell"]
  node_app["Flutter app<br/>[app.dart]"]
  node_routing["App routing<br/>[app_router.dart]"]
  node_shell_layout["Root layout<br/>[root_shell.dart]"]
end

subgraph group_social["Posts and discovery"]
  node_feed["Post feed<br/>[feed_page.dart]"]
  node_post_detail["Post details"]
  node_create_post["Create post"]
  node_explore["Explore<br/>[explore_page.dart]"]
  node_post_state["Post providers"]
  node_comment_state["Comment providers"]
end

subgraph group_people["Accounts and profiles"]
  node_auth["Authentication<br/>[login_page.dart]"]
  node_register["Registration<br/>[register_page.dart]"]
  node_verify["Account verification<br/>[verify_page.dart]"]
  node_profile["User profiles<br/>[profile_page.dart]"]
  node_public_profile["Public profiles"]
  node_messages["Messages<br/>[messages_page.dart]"]
end

subgraph group_services["Network and state"]
  node_api["API client<br/>[api_client.dart]"]
  node_auth_service["Auth service<br/>[auth_service.dart]"]
  node_websocket["WebSocket service"]
  node_token_storage["Token storage<br/>[token_storage.dart]"]
end

node_user(("App user"))
node_backend["Backend services"]

node_user -->|"uses"| node_app

click node_app "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/app.dart"
click node_routing "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/routing/app_router.dart"
click node_shell_layout "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/core/layout/root_shell.dart"
click node_feed "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/presentation/feed_page.dart"
click node_post_detail "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/presentation/post_detail_page.dart"
click node_create_post "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/controllers/presentation/create_post_page.dart"
click node_explore "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/explore/presentation/explore_page.dart"
click node_post_state "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/providers/posts_provider.dart"
click node_comment_state "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/providers/comments_provider.dart"
click node_auth "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/login_page.dart"
click node_register "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/register_page.dart"
click node_verify "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/verify_page.dart"
click node_profile "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/profile/presentation/profile_page.dart"
click node_public_profile "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/profile/presentation/public_profile_page.dart"
click node_messages "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/messages/presentation/messages_page.dart"
click node_api "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/api_client.dart"
click node_auth_service "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/auth_service.dart"
click node_websocket "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/websocket_service.dart"
click node_token_storage "https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/core/token_storage.dart"

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_app,node_routing,node_shell_layout,node_user toneBlue
class node_feed,node_post_detail,node_create_post,node_explore,node_post_state,node_comment_state toneAmber
class node_auth,node_register,node_verify,node_profile,node_public_profile,node_messages toneMint
class node_api,node_auth_service,node_websocket,node_token_storage toneRose
class node_backend toneIndigo
```

## Components

### App shell

- [Flutter app](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/app.dart): `lib/src/app.dart`
- [App routing](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/routing/app_router.dart): `lib/src/routing/app_router.dart`
- [Root layout](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/core/layout/root_shell.dart): `lib/src/core/layout/root_shell.dart`

### Posts and discovery

- [Post feed](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/presentation/feed_page.dart): `lib/src/features/posts/presentation/feed_page.dart`
- [Post details](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/presentation/post_detail_page.dart): `lib/src/features/posts/presentation/post_detail_page.dart`
- [Create post](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/controllers/presentation/create_post_page.dart): `lib/src/features/posts/controllers/presentation/create_post_page.dart`
- [Explore](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/explore/presentation/explore_page.dart): `lib/src/features/explore/presentation/explore_page.dart`
- [Post providers](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/providers/posts_provider.dart): `lib/src/features/posts/providers/posts_provider.dart`
- [Comment providers](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/posts/providers/comments_provider.dart): `lib/src/features/posts/providers/comments_provider.dart`

### Accounts and profiles

- [Authentication](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/login_page.dart): `lib/src/features/auth/presentation/login_page.dart`
- [Registration](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/register_page.dart): `lib/src/features/auth/presentation/register_page.dart`
- [Account verification](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/auth/presentation/verify_page.dart): `lib/src/features/auth/presentation/verify_page.dart`
- [User profiles](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/profile/presentation/profile_page.dart): `lib/src/features/profile/presentation/profile_page.dart`
- [Public profiles](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/profile/presentation/public_profile_page.dart): `lib/src/features/profile/presentation/public_profile_page.dart`
- [Messages](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/features/messages/presentation/messages_page.dart): `lib/src/features/messages/presentation/messages_page.dart`

### Network and state

- [API client](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/api_client.dart): `lib/src/data/network/api_client.dart`
- [Auth service](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/auth_service.dart): `lib/src/data/network/auth_service.dart`
- [WebSocket service](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/data/network/websocket_service.dart): `lib/src/data/network/websocket_service.dart`
- [Token storage](https://github.com/frakhmann/scribbles-mobile/blob/main/lib/src/core/token_storage.dart): `lib/src/core/token_storage.dart`

### Other components

- **App user**
- **Backend services**

## Connections

- App user → Flutter app: uses
