# rafin-110/ssp_village-action-group architecture

> Architecture diagram of the GitHub repository rafin-110/ssp_village-action-group, 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/rafin-110/ssp_village-action-group
- Repository: https://github.com/rafin-110/ssp_village-action-group

## Overview

The repository is a Flutter frontend for a village/development-management application, but its README provides no product description and the sampled source contains no Dart implementation. The tree indicates user-facing workflows for authentication, issue reporting and progress, meetings, villages, submissions, and administration, with local storage, Supabase, and synchronization layers. The graph therefore maps these evident domains and likely runtime boundaries; links between Dart subsystems are omitted where the available evidence does not establish their callers.

Main entry points: [`lib/features/issues/presentation/logic`](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/presentation/logic) (Issue state), [`lib/core/sync/sync_manager.dart`](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/sync/sync_manager.dart) (Sync manager), [`lib/main.dart`](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/main.dart) (Flutter entry), [`lib/features/issues/screens`](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/screens) (Issue workflows)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_entry["Flutter entry<br/>[main.dart]"]
  node_application["App configuration<br/>[app.dart]"]
  node_routing["App routing<br/>[app_router.dart]"]
  node_authui["Sign-in screens<br/>[login_screen.dart]"]
end

subgraph group_issues["Issue management"]
  node_issuesui["Issue workflows"]
  node_issueproviders["Issue state"]
  node_progressrules["Progress rules"]
  node_issueentities["Issue domain"]
  node_issue_local["Issue persistence"]
  node_issue_remote["Issue API"]
end

subgraph group_community["Community workflows"]
  node_meetings["Meeting workflows"]
  node_villages["Village workflows"]
  node_submissions["Submission flows"]
  node_dashboard["Dashboard"]
end

subgraph group_admin["Administration"]
  node_adminui["Admin console"]
  node_adminstate["Admin data state"]
end

subgraph group_platform["Data and services"]
  node_sync["Sync manager<br/>[sync_manager.dart]"]
  node_localdb[("Local database<br/>[local_db.dart]")]
  node_authservice["Supabase auth"]
  node_network["Supabase clients"]
end

node_user(("User"))
node_supabase[("Supabase")]

node_user -->|"opens app"| node_entry
node_entry -->|"starts"| node_application
node_user -->|"signs in"| node_authui
node_user -->|"reports or updates"| node_issuesui
node_user -->|"manages meetings"| node_meetings
node_user -->|"views villages"| node_villages
node_user -->|"submits work"| node_submissions
node_user -->|"administers"| node_adminui
node_issuesui -->|"uses issue state"| node_issueproviders
node_issueproviders -->|"handles domain data"| node_issueentities
node_issueproviders -->|"persists issues"| node_issue_local
node_issueproviders -->|"checks progress"| node_progressrules
node_issueproviders -.->|"accesses remote issues"| node_issue_remote
node_issue_local -->|"stores locally"| node_localdb
node_sync -->|"synchronizes local data"| node_localdb
node_sync -->|"uses API client"| node_network
node_network -->|"accesses backend"| node_supabase
node_authservice -->|"authenticates"| node_supabase
node_adminui -->|"uses admin state"| node_adminstate

click node_entry "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/main.dart"
click node_application "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/app.dart"
click node_routing "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/router/app_router.dart"
click node_authui "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/auth/screens/login_screen.dart"
click node_issuesui "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/screens"
click node_issueproviders "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/presentation/logic"
click node_progressrules "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/domain/services/progress_rules_service.dart"
click node_issueentities "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/domain/entities"
click node_issue_local "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/data/data_sources/issue_local_data_source.dart"
click node_issue_remote "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/data/remote/issue_remote_data_source.dart"
click node_meetings "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/meetings/screens"
click node_villages "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/villages/screens"
click node_submissions "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/submissions/screens"
click node_dashboard "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/dashboard/screens/dashboard_screen.dart"
click node_adminui "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/admin/screens"
click node_adminstate "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/admin/presentation/logic"
click node_sync "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/sync/sync_manager.dart"
click node_localdb "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/database/local_db.dart"
click node_authservice "https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/auth/supabase_auth_service.dart"
click node_network "https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/core/network"

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_entry,node_application,node_routing,node_authui,node_user toneBlue
class node_issuesui,node_issueproviders,node_progressrules,node_issueentities,node_issue_local,node_issue_remote,node_supabase toneAmber
class node_meetings,node_villages,node_submissions,node_dashboard toneMint
class node_adminui,node_adminstate toneRose
class node_sync,node_localdb,node_authservice,node_network toneIndigo
```

## Components

### App shell

- [Flutter entry](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/main.dart): `lib/main.dart`
- [App configuration](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/app.dart): `lib/app.dart`
- [App routing](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/router/app_router.dart): `lib/core/router/app_router.dart`
- [Sign-in screens](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/auth/screens/login_screen.dart): `lib/features/auth/screens/login_screen.dart`

### Issue management

- [Issue workflows](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/screens): `lib/features/issues/screens`
- [Issue state](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/presentation/logic): `lib/features/issues/presentation/logic`
- [Progress rules](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/domain/services/progress_rules_service.dart): `lib/features/issues/domain/services/progress_rules_service.dart`
- [Issue domain](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/issues/domain/entities): `lib/features/issues/domain/entities`
- [Issue persistence](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/data/data_sources/issue_local_data_source.dart): `lib/features/issues/data/data_sources/issue_local_data_source.dart`
- [Issue API](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/issues/data/remote/issue_remote_data_source.dart): `lib/features/issues/data/remote/issue_remote_data_source.dart`

### Community workflows

- [Meeting workflows](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/meetings/screens): `lib/features/meetings/screens`
- [Village workflows](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/villages/screens): `lib/features/villages/screens`
- [Submission flows](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/submissions/screens): `lib/features/submissions/screens`
- [Dashboard](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/features/dashboard/screens/dashboard_screen.dart): `lib/features/dashboard/screens/dashboard_screen.dart`

### Administration

- [Admin console](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/admin/screens): `lib/features/admin/screens`
- [Admin data state](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/features/admin/presentation/logic): `lib/features/admin/presentation/logic`

### Data and services

- [Sync manager](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/sync/sync_manager.dart): `lib/core/sync/sync_manager.dart`
- [Local database](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/database/local_db.dart): `lib/core/database/local_db.dart`
- [Supabase auth](https://github.com/rafin-110/ssp_village-action-group/blob/main/lib/core/auth/supabase_auth_service.dart): `lib/core/auth/supabase_auth_service.dart`
- [Supabase clients](https://github.com/rafin-110/ssp_village-action-group/tree/main/lib/core/network): `lib/core/network`

### Other components

- **User**
- **Supabase**

## Connections

- User → Flutter entry: opens app
- Flutter entry → App configuration: starts
- User → Sign-in screens: signs in
- User → Issue workflows: reports or updates
- User → Meeting workflows: manages meetings
- User → Village workflows: views villages
- User → Submission flows: submits work
- User → Admin console: administers
- Issue workflows → Issue state: uses issue state
- Issue state → Issue domain: handles domain data
- Issue state → Issue persistence: persists issues
- Issue state → Progress rules: checks progress
- Issue state → Issue API: accesses remote issues
- Issue persistence → Local database: stores locally
- Sync manager → Local database: synchronizes local data
- Sync manager → Supabase clients: uses API client
- Supabase clients → Supabase: accesses backend
- Supabase auth → Supabase: authenticates
- Admin console → Admin data state: uses admin state
