# ziponamberwan/kendedes_mobile architecture

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

- Interactive diagram: https://gitdiagram.com/ziponamberwan/kendedes_mobile
- Repository: https://github.com/ziponamberwan/kendedes_mobile

## Overview

Kendedes Mobile is a Flutter field-surveying and business-mapping app. Its tree identifies workflows for projects, map-based tagging and browsing, moving records, polygon operations, photos, and supporting account and reference-data utilities. The Dart source and README descriptions were not provided, so this map uses the tree to identify feature areas but omits internal call and data-flow edges that cannot be verified. Platform runner code is launch scaffolding rather than product behavior.

Main entry points: [`lib/pages/project_list_page.dart`](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/project_list_page.dart) (Projects), [`lib/pages/tagging_page.dart`](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/tagging_page.dart) (Business tagging), [`lib/pages/photo_util/photo_form_page.dart`](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/photo_util/photo_form_page.dart) (Photo capture), [`lib/pages/move_page.dart`](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/move_page.dart) (Record movement)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_survey["Survey workflows"]
  node_projects["Projects"]
  node_project_state["Project state<br/>[project_bloc.dart]"]
  node_tagging["Business tagging<br/>[tagging_page.dart]"]
  node_tag_state["Tagging state<br/>[tagging_bloc.dart]"]
  node_photos["Photo capture"]
  node_photo_state["Photo state"]
  node_move["Record movement<br/>[move_page.dart]"]
  node_move_state["Move state<br/>[move_bloc.dart]"]
end

subgraph group_map["Map and discovery"]
  node_polygons["Polygon tools<br/>[polygon_bloc.dart]"]
  node_browse["Map browsing<br/>[browse_page.dart]"]
  node_browse_state["Browse state<br/>[browse_bloc.dart]"]
  node_home["Home map<br/>[home_page.dart]"]
end

subgraph group_support["Account and utilities"]
  node_auth["Login and registration<br/>[login_page.dart]"]
  node_auth_provider["Authentication<br/>[auth_provider.dart]"]
  node_info["Survey information"]
  node_kbli["Business codes<br/>[top_kbli_page.dart]"]
  node_version["Version checks"]
end

subgraph group_data["Application layers"]
  node_entry["App entry<br/>[main.dart]"]
  node_local_store[("Local database")]
end

node_user(("Field user"))
node_remote_api{{"Remote API"}}

node_user -->|"launches"| node_entry
node_user -->|"uses"| node_projects
node_user -->|"uses"| node_tagging
node_user -->|"uses"| node_photos
node_user -->|"uses"| node_move
node_user -->|"uses"| node_browse
node_user -->|"uses"| node_home
node_user -->|"uses"| node_auth
node_user -->|"uses"| node_info
node_user -->|"uses"| node_kbli

click node_entry "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/main.dart"
click node_projects "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/project_list_page.dart"
click node_project_state "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/project/project_bloc.dart"
click node_tagging "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/tagging_page.dart"
click node_tag_state "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/tagging/tagging_bloc.dart"
click node_photos "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/photo_util/photo_form_page.dart"
click node_photo_state "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/photo_util/photo_util_bloc.dart"
click node_move "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/move_page.dart"
click node_move_state "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/move/move_bloc.dart"
click node_polygons "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/polygon/polygon_bloc.dart"
click node_browse "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/browse_page.dart"
click node_browse_state "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/browse/browse_bloc.dart"
click node_home "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/home_page.dart"
click node_auth "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/login_page.dart"
click node_auth_provider "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/auth_provider.dart"
click node_info "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/info_util/info_list_page.dart"
click node_kbli "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/kbli_util/top_kbli_page.dart"
click node_version "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/version_checking_provider.dart"
click node_local_store "https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/local_db/local_db_provider.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_projects,node_project_state,node_tagging,node_tag_state,node_photos,node_photo_state,node_move,node_move_state,node_user toneBlue
class node_polygons,node_browse,node_browse_state,node_home toneAmber
class node_auth,node_auth_provider,node_info,node_kbli,node_version,node_remote_api toneMint
class node_entry,node_local_store toneRose
```

## Components

### Survey workflows

- [Projects](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/project_list_page.dart): `lib/pages/project_list_page.dart`
- [Project state](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/project/project_bloc.dart): `lib/bloc/project/project_bloc.dart`
- [Business tagging](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/tagging_page.dart): `lib/pages/tagging_page.dart`
- [Tagging state](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/tagging/tagging_bloc.dart): `lib/bloc/tagging/tagging_bloc.dart`
- [Photo capture](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/photo_util/photo_form_page.dart): `lib/pages/photo_util/photo_form_page.dart`
- [Photo state](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/photo_util/photo_util_bloc.dart): `lib/bloc/photo_util/photo_util_bloc.dart`
- [Record movement](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/move_page.dart): `lib/pages/move_page.dart`
- [Move state](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/move/move_bloc.dart): `lib/bloc/move/move_bloc.dart`

### Map and discovery

- [Polygon tools](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/polygon/polygon_bloc.dart): `lib/bloc/polygon/polygon_bloc.dart`
- [Map browsing](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/browse_page.dart): `lib/pages/browse_page.dart`
- [Browse state](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/bloc/browse/browse_bloc.dart): `lib/bloc/browse/browse_bloc.dart`
- [Home map](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/home_page.dart): `lib/pages/home_page.dart`

### Account and utilities

- [Login and registration](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/login_page.dart): `lib/pages/login_page.dart`
- [Authentication](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/auth_provider.dart): `lib/classes/providers/auth_provider.dart`
- [Survey information](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/info_util/info_list_page.dart): `lib/pages/info_util/info_list_page.dart`
- [Business codes](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/pages/kbli_util/top_kbli_page.dart): `lib/pages/kbli_util/top_kbli_page.dart`
- [Version checks](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/version_checking_provider.dart): `lib/classes/providers/version_checking_provider.dart`

### Application layers

- [App entry](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/main.dart): `lib/main.dart`
- [Local database](https://github.com/ziponamberwan/kendedes_mobile/blob/main/lib/classes/providers/local_db/local_db_provider.dart): `lib/classes/providers/local_db/local_db_provider.dart`

### Other components

- **Field user**
- **Remote API**

## Connections

- Field user → App entry: launches
- Field user → Projects: uses
- Field user → Business tagging: uses
- Field user → Photo capture: uses
- Field user → Record movement: uses
- Field user → Map browsing: uses
- Field user → Home map: uses
- Field user → Login and registration: uses
- Field user → Survey information: uses
- Field user → Business codes: uses
