# itzatha/fostipresenceapp architecture

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

- Interactive diagram: https://gitdiagram.com/itzatha/fostipresenceapp
- Repository: https://github.com/itzatha/fostipresenceapp

## Overview

This Flutter app manages member attendance at events, including ESP32 ID-card registration, attendance monitoring, and attendance-summary export. The graph reflects the documented product capabilities and the source tree; Dart implementation excerpts were not provided, so wiring between screens, providers, and storage is left unspecified.

Main entry points: [`lib/features/dashboard/base_pages.dart`](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/base_pages.dart) (Dashboard Shell), [`lib/main.dart`](https://github.com/itzatha/fostipresenceapp/blob/main/lib/main.dart) (App Entry), [`lib/app.dart`](https://github.com/itzatha/fostipresenceapp/blob/main/lib/app.dart) (App Setup), [`lib/routes/app_router.dart`](https://github.com/itzatha/fostipresenceapp/blob/main/lib/routes/app_router.dart) (App Router)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_navigation["App Navigation"]
  node_main["App Entry<br/>[main.dart]"]
  node_app["App Setup<br/>[app.dart]"]
  node_router["App Router<br/>[app_router.dart]"]
end

subgraph group_attendance["Attendance Console"]
  node_dashboard["Dashboard Shell<br/>[base_pages.dart]"]
  node_home["Home Screen<br/>[home_page.dart]"]
  node_members["Member Management<br/>[members_page.dart]"]
  node_register["Card Registration<br/>[register_page.dart]"]
  node_events["Event Management<br/>[events_page.dart]"]
  node_presence["Attendance Monitor"]
  node_bluetooth["Bluetooth Screen"]
  node_settings["Settings<br/>[settings_page.dart]"]
end

subgraph group_state["Domain State"]
  node_members_state["Members State"]
  node_events_state["Events State"]
  node_logs_state["Attendance Logs"]
  node_member_model["Member Model<br/>[member_model.dart]"]
  node_event_model["Event Model<br/>[event_model.dart]"]
  node_log_model["Event Log Model"]
  node_export["Summary Export"]
end

subgraph group_integrations["Integrations"]
  node_database["Database Manager"]
  node_ble["BLE Service<br/>[ble_service.dart]"]
  node_stream["Stream Listener"]
end

node_user(("Operator"))
node_supabase[("Supabase")]
node_esp32["ESP32 ID Card"]

node_user -->|"opens"| node_main
node_main -->|"starts"| node_app
node_app -->|"configures navigation"| node_router
node_router -->|"routes to"| node_dashboard
node_dashboard -->|"presents"| node_home
node_dashboard -->|"presents"| node_members
node_dashboard -->|"presents"| node_register
node_dashboard -->|"presents"| node_events
node_dashboard -->|"presents"| node_presence
node_dashboard -->|"presents"| node_bluetooth
node_dashboard -->|"presents"| node_settings
node_database -->|"exchanges data"| node_supabase
node_ble -->|"communicates"| node_esp32
node_stream -.->|"listens to"| node_ble

click node_main "https://github.com/itzatha/fostipresenceapp/blob/main/lib/main.dart"
click node_app "https://github.com/itzatha/fostipresenceapp/blob/main/lib/app.dart"
click node_router "https://github.com/itzatha/fostipresenceapp/blob/main/lib/routes/app_router.dart"
click node_dashboard "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/base_pages.dart"
click node_home "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/home_page.dart"
click node_members "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/members_page.dart"
click node_register "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/register_page.dart"
click node_events "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/events_page.dart"
click node_presence "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/presence_menu_page.dart"
click node_bluetooth "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/bluetooth_page.dart"
click node_settings "https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/settings_page.dart"
click node_database "https://github.com/itzatha/fostipresenceapp/blob/main/lib/manager/database_manager.dart"
click node_members_state "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/members_notifier.dart"
click node_events_state "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/events_notifier.dart"
click node_logs_state "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/events_logs_notifier.dart"
click node_member_model "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/member_model.dart"
click node_event_model "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/event_model.dart"
click node_log_model "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/event_log_model.dart"
click node_export "https://github.com/itzatha/fostipresenceapp/blob/main/lib/core/utils/events_recap_factory.dart"
click node_ble "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/service/ble_service.dart"
click node_stream "https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/service/stream_listener.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_main,node_app,node_router toneBlue
class node_dashboard,node_home,node_members,node_register,node_events,node_presence,node_bluetooth,node_settings,node_supabase toneAmber
class node_members_state,node_events_state,node_logs_state,node_member_model,node_event_model,node_log_model,node_export toneMint
class node_database,node_ble,node_stream toneRose
class node_user,node_esp32 toneIndigo
```

## Components

### App Navigation

- [App Entry](https://github.com/itzatha/fostipresenceapp/blob/main/lib/main.dart): `lib/main.dart`
- [App Setup](https://github.com/itzatha/fostipresenceapp/blob/main/lib/app.dart): `lib/app.dart`
- [App Router](https://github.com/itzatha/fostipresenceapp/blob/main/lib/routes/app_router.dart): `lib/routes/app_router.dart`

### Attendance Console

- [Dashboard Shell](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/base_pages.dart): `lib/features/dashboard/base_pages.dart`
- [Home Screen](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/home_page.dart): `lib/features/dashboard/views/home_page.dart`
- [Member Management](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/members_page.dart): `lib/features/dashboard/views/members_page.dart`
- [Card Registration](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/register_page.dart): `lib/features/dashboard/views/register_page.dart`
- [Event Management](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/events_page.dart): `lib/features/dashboard/views/events_page.dart`
- [Attendance Monitor](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/presence_menu_page.dart): `lib/features/dashboard/views/presence_menu_page.dart`
- [Bluetooth Screen](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/bluetooth_page.dart): `lib/features/dashboard/views/bluetooth_page.dart`
- [Settings](https://github.com/itzatha/fostipresenceapp/blob/main/lib/features/dashboard/views/settings_page.dart): `lib/features/dashboard/views/settings_page.dart`

### Domain State

- [Members State](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/members_notifier.dart): `lib/shared/provider/members_notifier.dart`
- [Events State](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/events_notifier.dart): `lib/shared/provider/events_notifier.dart`
- [Attendance Logs](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/provider/events_logs_notifier.dart): `lib/shared/provider/events_logs_notifier.dart`
- [Member Model](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/member_model.dart): `lib/shared/models/member_model.dart`
- [Event Model](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/event_model.dart): `lib/shared/models/event_model.dart`
- [Event Log Model](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/models/event_log_model.dart): `lib/shared/models/event_log_model.dart`
- [Summary Export](https://github.com/itzatha/fostipresenceapp/blob/main/lib/core/utils/events_recap_factory.dart): `lib/core/utils/events_recap_factory.dart`

### Integrations

- [Database Manager](https://github.com/itzatha/fostipresenceapp/blob/main/lib/manager/database_manager.dart): `lib/manager/database_manager.dart`
- [BLE Service](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/service/ble_service.dart): `lib/shared/service/ble_service.dart`
- [Stream Listener](https://github.com/itzatha/fostipresenceapp/blob/main/lib/shared/service/stream_listener.dart): `lib/shared/service/stream_listener.dart`

### Other components

- **Operator**
- **Supabase**
- **ESP32 ID Card**

## Connections

- Operator → App Entry: opens
- App Entry → App Setup: starts
- App Setup → App Router: configures navigation
- App Router → Dashboard Shell: routes to
- Dashboard Shell → Home Screen: presents
- Dashboard Shell → Member Management: presents
- Dashboard Shell → Card Registration: presents
- Dashboard Shell → Event Management: presents
- Dashboard Shell → Attendance Monitor: presents
- Dashboard Shell → Bluetooth Screen: presents
- Dashboard Shell → Settings: presents
- Database Manager → Supabase: exchanges data
- BLE Service → ESP32 ID Card: communicates
- Stream Listener → BLE Service: listens to
