# angelvtony/chatiko architecture

> Architecture diagram of the GitHub repository angelvtony/chatiko, 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/angelvtony/chatiko
- Repository: https://github.com/angelvtony/chatiko

## Overview

Chatiko is an Android app whose named features cover account access, chat, nearby-vibe discovery, preferences, settings, and a tutorial/home screen. The tree suggests the user-facing flow starts at the app activity and branches into these features, with ViewModels and network helpers providing internal layers. The README is empty and only build configuration was sampled, so screen navigation, API calls, persistence, and feature-to-service wiring cannot be verified; uncertain connections are omitted.

Main entry points: [`app/src/main/java/com/example/chatiko/ui/spalsh/MainActivity.kt`](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/spalsh/MainActivity.kt) (Main activity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App entry"]
  node_activity["Main activity<br/>[MainActivity.kt]"]
  node_home["Home screen<br/>[HomeScreen.kt]"]
end

subgraph group_identity["Account access"]
  node_login["Login screens<br/>[LoginScreenV1.kt]"]
  node_login_vm["Login ViewModel<br/>[LoginViewModel.kt]"]
  node_login_response["Login response<br/>[LoginResponse.kt]"]
  node_registration["Registration screen<br/>[Registration.kt]"]
  node_registration_vm["Registration ViewModel"]
  node_registration_response["Registration response"]
end

subgraph group_messaging["Chat"]
  node_chat_screen["Chat screen<br/>[ChatScreen.kt]"]
  node_chat_vm["Chat ViewModel<br/>[ChatViewModel.kt]"]
  node_message["Message model<br/>[Message.kt]"]
  node_emoji_picker["Emoji picker<br/>[EmojiPicker.kt]"]
end

subgraph group_discovery["Discovery and settings"]
  node_nearby_screen["Nearby vibes screen"]
  node_nearby_vm["Nearby vibes ViewModel"]
  node_nearby_model["Nearby user model<br/>[NearbyUserModel.kt]"]
  node_preferences["Preferences screen"]
  node_preferences_vm["Preferences ViewModel"]
  node_settings["Settings screen<br/>[SettingsScreen.kt]"]
end

subgraph group_network["Network and location"]
  node_registration_service["Registration services"]
  node_retrofit["Retrofit client<br/>[RetrofitClient.kt]"]
  node_crypto["Crypto manager<br/>[CryptoManager.kt]"]
  node_location["Location helper<br/>[LocationHelper.kt]"]
end

node_user(("App user"))
node_backend{{"Remote service"}}

node_user -->|"opens app"| node_activity

click node_activity "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/spalsh/MainActivity.kt"
click node_home "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/tutorial/HomeScreen.kt"
click node_login "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginScreenV1.kt"
click node_login_vm "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginViewModel.kt"
click node_login_response "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginResponse.kt"
click node_registration "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/Registration.kt"
click node_registration_vm "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/RegistrationViewModel.kt"
click node_registration_service "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/RegistrationServices.kt"
click node_registration_response "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/RegistrationResponse.kt"
click node_chat_screen "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/ChatScreen.kt"
click node_chat_vm "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/viewmodel/ChatViewModel.kt"
click node_message "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/Message.kt"
click node_emoji_picker "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/EmojiPicker.kt"
click node_nearby_screen "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesScreen.kt"
click node_nearby_vm "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesViewModel.kt"
click node_nearby_model "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyUserModel.kt"
click node_preferences "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/preferences/PreferenceScreen.kt"
click node_preferences_vm "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/preferences/PreferencesViewModel.kt"
click node_settings "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/settings/SettingsScreen.kt"
click node_retrofit "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/RetrofitClient.kt"
click node_crypto "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/CryptoManager.kt"
click node_location "https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/LocationHelper.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_home,node_user toneBlue
class node_login,node_login_vm,node_login_response,node_registration,node_registration_vm,node_registration_response toneAmber
class node_chat_screen,node_chat_vm,node_message,node_emoji_picker toneMint
class node_nearby_screen,node_nearby_vm,node_nearby_model,node_preferences,node_preferences_vm,node_settings toneRose
class node_registration_service,node_retrofit,node_crypto,node_location,node_backend toneIndigo
```

## Components

### App entry

- [Main activity](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/spalsh/MainActivity.kt): `app/src/main/java/com/example/chatiko/ui/spalsh/MainActivity.kt`
- [Home screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/tutorial/HomeScreen.kt): `app/src/main/java/com/example/chatiko/ui/tutorial/HomeScreen.kt`

### Account access

- [Login screens](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginScreenV1.kt): `app/src/main/java/com/example/chatiko/ui/login/LoginScreenV1.kt`
- [Login ViewModel](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginViewModel.kt): `app/src/main/java/com/example/chatiko/ui/login/LoginViewModel.kt`
- [Login response](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/login/LoginResponse.kt): `app/src/main/java/com/example/chatiko/ui/login/LoginResponse.kt`
- [Registration screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/Registration.kt): `app/src/main/java/com/example/chatiko/ui/registration/Registration.kt`
- [Registration ViewModel](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/RegistrationViewModel.kt): `app/src/main/java/com/example/chatiko/ui/registration/RegistrationViewModel.kt`
- [Registration response](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/registration/RegistrationResponse.kt): `app/src/main/java/com/example/chatiko/ui/registration/RegistrationResponse.kt`

### Chat

- [Chat screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/ChatScreen.kt): `app/src/main/java/com/example/chatiko/ui/chat/ChatScreen.kt`
- [Chat ViewModel](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/viewmodel/ChatViewModel.kt): `app/src/main/java/com/example/chatiko/ui/chat/viewmodel/ChatViewModel.kt`
- [Message model](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/Message.kt): `app/src/main/java/com/example/chatiko/ui/chat/Message.kt`
- [Emoji picker](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/chat/EmojiPicker.kt): `app/src/main/java/com/example/chatiko/ui/chat/EmojiPicker.kt`

### Discovery and settings

- [Nearby vibes screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesScreen.kt): `app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesScreen.kt`
- [Nearby vibes ViewModel](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesViewModel.kt): `app/src/main/java/com/example/chatiko/ui/vibes/NearbyVibesViewModel.kt`
- [Nearby user model](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/vibes/NearbyUserModel.kt): `app/src/main/java/com/example/chatiko/ui/vibes/NearbyUserModel.kt`
- [Preferences screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/preferences/PreferenceScreen.kt): `app/src/main/java/com/example/chatiko/ui/preferences/PreferenceScreen.kt`
- [Preferences ViewModel](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/preferences/PreferencesViewModel.kt): `app/src/main/java/com/example/chatiko/ui/preferences/PreferencesViewModel.kt`
- [Settings screen](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/ui/settings/SettingsScreen.kt): `app/src/main/java/com/example/chatiko/ui/settings/SettingsScreen.kt`

### Network and location

- [Registration services](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/RegistrationServices.kt): `app/src/main/java/com/example/chatiko/network/RegistrationServices.kt`
- [Retrofit client](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/RetrofitClient.kt): `app/src/main/java/com/example/chatiko/network/RetrofitClient.kt`
- [Crypto manager](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/CryptoManager.kt): `app/src/main/java/com/example/chatiko/network/CryptoManager.kt`
- [Location helper](https://github.com/angelvtony/chatiko/blob/main/app/src/main/java/com/example/chatiko/network/LocationHelper.kt): `app/src/main/java/com/example/chatiko/network/LocationHelper.kt`

### Other components

- **App user**
- **Remote service**

## Connections

- App user → Main activity: opens app
