# rzhfxv/mangareader architecture

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

## Overview

MangaReader is an Android app for browsing and reading MangaDex titles, with Firebase-backed accounts. The main path is splash/session check, browse or search, inspect manga details, select a chapter, then load and display its pages. Authentication and profile are separate account capabilities; About is an informational screen. The sampled fragments show direct UI-to-data calls. The README documents profile and logout behavior, but their implementation was not sampled, so those links are limited to the supported feature path. The graph omits unspecified call wiring for those screens.

Main entry points: [`app/src/main/java/com/rzhf/mangareader/data/api/RetrofitClient.kt`](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/RetrofitClient.kt) (Retrofit client), [`app/src/main/java/com/rzhf/mangareader/ui/detail/DetailFragment.kt`](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/DetailFragment.kt) (Manga details), [`app/src/main/java/com/rzhf/mangareader/data/auth/AuthRepository.kt`](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/auth/AuthRepository.kt) (Auth repository), [`app/src/main/java/com/rzhf/mangareader/ui/dashboard/HomeFragment.kt`](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/HomeFragment.kt) (Manga dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_account["Account access"]
  node_main["Main activity<br/>[MainActivity.kt]"]
  node_splash["Session gate<br/>[SplashFragment.kt]"]
  node_login["Login<br/>[LoginFragment.kt]"]
  node_register["Registration"]
  node_authrepo["Auth repository<br/>[AuthRepository.kt]"]
  node_profile["User profile<br/>[ProfileFragment.kt]"]
end

subgraph group_discovery["Manga discovery"]
  node_home["Manga dashboard<br/>[HomeFragment.kt]"]
  node_search["Manga search<br/>[SearchFragment.kt]"]
  node_adapter["Manga list adapter<br/>[MangaAdapter.kt]"]
  node_detail["Manga details<br/>[DetailFragment.kt]"]
  node_about["About screen<br/>[AboutFragment.kt]"]
end

subgraph group_reading["Chapter reading"]
  node_chapters["Chapter list"]
  node_chapteradapter["Chapter adapter<br/>[ChapterAdapter.kt]"]
  node_reader["Page reader<br/>[ReaderFragment.kt]"]
  node_pageadapter["Page adapter<br/>[PageAdapter.kt]"]
end

subgraph group_data["Data access"]
  node_api["MangaDex API<br/>[MangaDexApi.kt]"]
  node_retrofit["Retrofit client<br/>[RetrofitClient.kt]"]
  node_models["API models<br/>[MangaModels.kt]"]
  node_glide["Glide image loader"]
end

node_user(("App user"))
node_firebase[("Firebase Auth")]
node_mangadex(("MangaDex service"))

node_user -->|"opens app"| node_main
node_main -->|"hosts screen"| node_splash
node_user -->|"enters credentials"| node_login
node_user -->|"creates account"| node_register
node_splash -->|"checks session"| node_authrepo
node_login -->|"signs in"| node_authrepo
node_register -->|"registers"| node_authrepo
node_authrepo -->|"auth operations"| node_firebase
node_user -->|"browses titles"| node_home
node_user -->|"searches titles"| node_search
node_home -->|"fetches manga"| node_retrofit
node_search -->|"searches manga"| node_retrofit
node_home -->|"displays results"| node_adapter
node_search -->|"displays results"| node_adapter
node_adapter -->|"opens title"| node_detail
node_detail -->|"fetches details"| node_retrofit
node_detail -->|"loads cover"| node_glide
node_detail -->|"opens chapters"| node_chapters
node_chapters -->|"fetches chapters"| node_retrofit
node_chapters -->|"displays chapters"| node_chapteradapter
node_chapteradapter -->|"opens chapter"| node_reader
node_reader -->|"fetches page data"| node_retrofit
node_reader -->|"displays pages"| node_pageadapter
node_pageadapter -->|"loads page images"| node_glide
node_retrofit -->|"creates service"| node_api
node_api -->|"requests data"| node_mangadex
node_api -->|"decodes responses"| node_models
node_user -->|"views account"| node_profile
node_user -->|"views information"| node_about

click node_main "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/MainActivity.kt"
click node_splash "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/splash/SplashFragment.kt"
click node_login "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/auth/LoginFragment.kt"
click node_register "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/auth/RegisterFragment.kt"
click node_authrepo "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/auth/AuthRepository.kt"
click node_home "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/HomeFragment.kt"
click node_search "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/SearchFragment.kt"
click node_adapter "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/MangaAdapter.kt"
click node_detail "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/DetailFragment.kt"
click node_profile "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/ProfileFragment.kt"
click node_about "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/AboutFragment.kt"
click node_chapters "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterListFragment.kt"
click node_chapteradapter "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterAdapter.kt"
click node_reader "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/reader/ReaderFragment.kt"
click node_pageadapter "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/reader/PageAdapter.kt"
click node_api "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/MangaDexApi.kt"
click node_retrofit "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/RetrofitClient.kt"
click node_models "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/MangaModels.kt"
click node_glide "https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/DexReaderGlideModule.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_main,node_splash,node_login,node_register,node_authrepo,node_profile,node_user toneBlue
class node_home,node_search,node_adapter,node_detail,node_about,node_firebase toneAmber
class node_chapters,node_chapteradapter,node_reader,node_pageadapter toneMint
class node_api,node_retrofit,node_models,node_glide toneRose
class node_mangadex toneIndigo
```

## Components

### Account access

- [Main activity](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/MainActivity.kt): `app/src/main/java/com/rzhf/mangareader/MainActivity.kt`
- [Session gate](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/splash/SplashFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/splash/SplashFragment.kt`
- [Login](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/auth/LoginFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/auth/LoginFragment.kt`
- [Registration](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/auth/RegisterFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/auth/RegisterFragment.kt`
- [Auth repository](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/auth/AuthRepository.kt): `app/src/main/java/com/rzhf/mangareader/data/auth/AuthRepository.kt`
- [User profile](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/ProfileFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/dashboard/ProfileFragment.kt`

### Manga discovery

- [Manga dashboard](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/HomeFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/dashboard/HomeFragment.kt`
- [Manga search](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/SearchFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/dashboard/SearchFragment.kt`
- [Manga list adapter](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/MangaAdapter.kt): `app/src/main/java/com/rzhf/mangareader/ui/dashboard/MangaAdapter.kt`
- [Manga details](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/DetailFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/detail/DetailFragment.kt`
- [About screen](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/dashboard/AboutFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/dashboard/AboutFragment.kt`

### Chapter reading

- [Chapter list](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterListFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterListFragment.kt`
- [Chapter adapter](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterAdapter.kt): `app/src/main/java/com/rzhf/mangareader/ui/detail/ChapterAdapter.kt`
- [Page reader](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/reader/ReaderFragment.kt): `app/src/main/java/com/rzhf/mangareader/ui/reader/ReaderFragment.kt`
- [Page adapter](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/ui/reader/PageAdapter.kt): `app/src/main/java/com/rzhf/mangareader/ui/reader/PageAdapter.kt`

### Data access

- [MangaDex API](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/MangaDexApi.kt): `app/src/main/java/com/rzhf/mangareader/data/api/MangaDexApi.kt`
- [Retrofit client](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/RetrofitClient.kt): `app/src/main/java/com/rzhf/mangareader/data/api/RetrofitClient.kt`
- [API models](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/data/api/MangaModels.kt): `app/src/main/java/com/rzhf/mangareader/data/api/MangaModels.kt`
- [Glide image loader](https://github.com/rzhfxv/mangareader/blob/main/app/src/main/java/com/rzhf/mangareader/DexReaderGlideModule.kt): `app/src/main/java/com/rzhf/mangareader/DexReaderGlideModule.kt`

### Other components

- **App user**
- **Firebase Auth**
- **MangaDex service**

## Connections

- App user → Main activity: opens app
- Main activity → Session gate: hosts screen
- App user → Login: enters credentials
- App user → Registration: creates account
- Session gate → Auth repository: checks session
- Login → Auth repository: signs in
- Registration → Auth repository: registers
- Auth repository → Firebase Auth: auth operations
- App user → Manga dashboard: browses titles
- App user → Manga search: searches titles
- Manga dashboard → Retrofit client: fetches manga
- Manga search → Retrofit client: searches manga
- Manga dashboard → Manga list adapter: displays results
- Manga search → Manga list adapter: displays results
- Manga list adapter → Manga details: opens title
- Manga details → Retrofit client: fetches details
- Manga details → Glide image loader: loads cover
- Manga details → Chapter list: opens chapters
- Chapter list → Retrofit client: fetches chapters
- Chapter list → Chapter adapter: displays chapters
- Chapter adapter → Page reader: opens chapter
- Page reader → Retrofit client: fetches page data
- Page reader → Page adapter: displays pages
- Page adapter → Glide image loader: loads page images
- Retrofit client → MangaDex API: creates service
- MangaDex API → MangaDex service: requests data
- MangaDex API → API models: decodes responses
- App user → User profile: views account
- App user → About screen: views information
