# brunomygueldotcom/automatize-flutter-nailflows architecture

> Architecture diagram of the GitHub repository brunomygueldotcom/automatize-flutter-nailflows, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/brunomygueldotcom/automatize-flutter-nailflows
- Repository: https://github.com/brunomygueldotcom/automatize-flutter-nailflows

## Overview

NailsFlow is a Flutter web-first panel for a nail designer, with an Android target. Its user workflow begins at provisional login and supports managing appointments, clients, and services; clients can also register through a one-use invitation. The README documents API discovery with in-memory fallback, appointment rules, Google Calendar invitation statuses, and WhatsApp sharing. Source excerpts cover only Android scaffolding, so relationships among Flutter components rely on README statements; uncertain screen-to-screen calls are omitted.

Main entry points: [`lib/dados/agenda_repository.dart`](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository.dart) (Repository contract), [`lib/dados/fonte_de_dados.dart`](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/fonte_de_dados.dart) (Source selector), [`lib/telas/agendamento_form_page.dart`](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/agendamento_form_page.dart) (Appointment form), [`lib/telas/clientes_page.dart`](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/clientes_page.dart) (Client management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Panel workflows"]
  node_login["Login<br/>[login_page.dart]"]
  node_app["App shell<br/>[app.dart]"]
  node_agenda["Daily agenda<br/>[agenda_page.dart]"]
  node_appointment_form["Appointment form"]
  node_appointment_detail["Appointment detail"]
  node_clients["Client management<br/>[clientes_page.dart]"]
  node_client_history["Client history"]
  node_services["Service catalog<br/>[servicos_page.dart]"]
  node_settings["Data settings<br/>[ajustes_page.dart]"]
  node_invite_ui["Invite creation"]
  node_self_registration["Client registration"]
end

subgraph group_domain["Domain data"]
  node_appointment_model["Appointment rules<br/>[agendamento.dart]"]
  node_client_model["Client model<br/>[cliente.dart]"]
  node_service_model["Service model<br/>[servico.dart]"]
end

subgraph group_data["Data access"]
  node_chooser["Source selector"]
  node_repository["Repository contract"]
  node_api_repo["API repository"]
  node_fake_repo[("Memory repository")]
  node_auth["Provisional access<br/>[autenticacao.dart]"]
  node_invite_service["Invite service"]
end

subgraph group_integrations["External services"]
  node_google_calendar["Google Calendar<br/>[google_agenda.dart]"]
  node_api["Automatize API"]
  node_whatsapp["WhatsApp"]
end

node_user(("Professional"))

node_user -->|"opens"| node_login
node_login -.->|"checks access"| node_auth
node_app -->|"selects source"| node_chooser
node_chooser -->|"selects on response"| node_api_repo
node_chooser -->|"falls back"| node_fake_repo
node_api_repo -->|"requests data"| node_api
node_agenda -.->|"uses data"| node_repository
node_appointment_form -.->|"uses data"| node_repository
node_clients -.->|"uses data"| node_repository
node_client_history -.->|"uses data"| node_repository
node_services -.->|"uses data"| node_repository
node_settings -->|"shows source"| node_chooser
node_invite_ui -->|"creates invite"| node_invite_service
node_invite_service -->|"requests invite"| node_api
node_invite_ui -->|"shares invite"| node_whatsapp
node_self_registration -->|"submits registration"| node_api
node_appointment_detail -.->|"shows response status"| node_google_calendar
node_google_calendar -->|"provides invite status"| node_appointment_model
node_appointment_form -->|"follows scheduling rules"| node_appointment_model
node_clients -.->|"manages clients"| node_client_model
node_services -.->|"manages services"| node_service_model

click node_login "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/login_page.dart"
click node_app "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/app.dart"
click node_agenda "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/agenda_page.dart"
click node_appointment_form "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/agendamento_form_page.dart"
click node_appointment_detail "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/detalhe_atendimento_page.dart"
click node_clients "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/clientes_page.dart"
click node_client_history "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/cliente_historico_page.dart"
click node_services "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/servicos_page.dart"
click node_settings "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/ajustes_page.dart"
click node_invite_ui "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/link_de_cadastro_dialog.dart"
click node_self_registration "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/cadastro_cliente_page.dart"
click node_appointment_model "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/agendamento.dart"
click node_client_model "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/cliente.dart"
click node_service_model "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/servico.dart"
click node_chooser "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/fonte_de_dados.dart"
click node_repository "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository.dart"
click node_api_repo "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository_api.dart"
click node_fake_repo "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository_falso.dart"
click node_auth "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/autenticacao.dart"
click node_invite_service "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/cadastro_por_convite.dart"
click node_google_calendar "https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/google_agenda.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_login,node_app,node_agenda,node_appointment_form,node_appointment_detail,node_clients,node_client_history,node_services,node_settings,node_invite_ui,node_self_registration toneBlue
class node_appointment_model,node_client_model,node_service_model toneAmber
class node_chooser,node_repository,node_api_repo,node_fake_repo,node_auth,node_invite_service toneMint
class node_google_calendar,node_api,node_whatsapp toneRose
class node_user toneIndigo
```

## Components

### Panel workflows

- [Login](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/login_page.dart): `lib/telas/login_page.dart`
- [App shell](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/app.dart): `lib/app.dart`
- [Daily agenda](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/agenda_page.dart): `lib/telas/agenda_page.dart`
- [Appointment form](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/agendamento_form_page.dart): `lib/telas/agendamento_form_page.dart`
- [Appointment detail](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/detalhe_atendimento_page.dart): `lib/telas/detalhe_atendimento_page.dart`
- [Client management](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/clientes_page.dart): `lib/telas/clientes_page.dart`
- [Client history](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/cliente_historico_page.dart): `lib/telas/cliente_historico_page.dart`
- [Service catalog](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/servicos_page.dart): `lib/telas/servicos_page.dart`
- [Data settings](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/ajustes_page.dart): `lib/telas/ajustes_page.dart`
- [Invite creation](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/link_de_cadastro_dialog.dart): `lib/telas/link_de_cadastro_dialog.dart`
- [Client registration](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/telas/cadastro_cliente_page.dart): `lib/telas/cadastro_cliente_page.dart`

### Domain data

- [Appointment rules](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/agendamento.dart): `lib/modelos/agendamento.dart`
- [Client model](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/cliente.dart): `lib/modelos/cliente.dart`
- [Service model](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/modelos/servico.dart): `lib/modelos/servico.dart`

### Data access

- [Source selector](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/fonte_de_dados.dart): `lib/dados/fonte_de_dados.dart`
- [Repository contract](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository.dart): `lib/dados/agenda_repository.dart`
- [API repository](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository_api.dart): `lib/dados/agenda_repository_api.dart`
- [Memory repository](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/agenda_repository_falso.dart): `lib/dados/agenda_repository_falso.dart`
- [Provisional access](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/autenticacao.dart): `lib/dados/autenticacao.dart`
- [Invite service](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/cadastro_por_convite.dart): `lib/dados/cadastro_por_convite.dart`

### External services

- [Google Calendar](https://github.com/brunomygueldotcom/automatize-flutter-nailflows/blob/main/lib/dados/google_agenda.dart): `lib/dados/google_agenda.dart`
- **Automatize API**
- **WhatsApp**

### Other components

- **Professional**

## Connections

- Professional → Login: opens (evidence: `README.md`)
- Login → Provisional access: checks access
- App shell → Source selector: selects source (evidence: `README.md`)
- Source selector → API repository: selects on response (evidence: `README.md`)
- Source selector → Memory repository: falls back (evidence: `README.md`)
- API repository → Automatize API: requests data (evidence: `README.md`)
- Daily agenda → Repository contract: uses data
- Appointment form → Repository contract: uses data
- Client management → Repository contract: uses data
- Client history → Repository contract: uses data
- Service catalog → Repository contract: uses data
- Data settings → Source selector: shows source (evidence: `README.md`)
- Invite creation → Invite service: creates invite (evidence: `README.md`)
- Invite service → Automatize API: requests invite (evidence: `README.md`)
- Invite creation → WhatsApp: shares invite (evidence: `README.md`)
- Client registration → Automatize API: submits registration (evidence: `README.md`)
- Appointment detail → Google Calendar: shows response status
- Google Calendar → Appointment rules: provides invite status (evidence: `README.md`)
- Appointment form → Appointment rules: follows scheduling rules (evidence: `README.md`)
- Client management → Client model: manages clients
- Service catalog → Service model: manages services
