# chivichi3143/chatiafacilito architecture

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

- Interactive diagram: https://gitdiagram.com/chivichi3143/chatiafacilito
- Repository: https://github.com/chivichi3143/chatiafacilito

## Overview

ChatIAFacilito is a cross-platform Flutter app for chatting with Google Gemini, with Google or email/password sign-in. The documented user journey is sign-in or registration, then access to chat; the app also includes profile and chat-list screens. Firebase, Gemini, and AdMob are documented product integrations. The supplied source excerpts cover platform launchers rather than Dart runtime code, so internal call ownership and data flow cannot be confirmed; the diagram shows only the product structure and documented integrations.

Main entry points: [`lib/features/auth_page.dart`](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/auth_page.dart) (Auth pages), [`lib/features/home_page.dart`](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/home_page.dart) (Home), [`lib/services/auth_service.dart`](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/services/auth_service.dart) (Auth service), [`lib/main.dart`](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/main.dart) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App experience"]
  node_entry["App entry<br/>[main.dart]"]
  node_home["Home<br/>[home_page.dart]"]
  node_profile["User profile<br/>[profile_page.dart]"]
end

subgraph group_identity["Identity"]
  node_auth_ui["Sign-in screens<br/>[login_screen.dart]"]
  node_auth_pages["Auth pages<br/>[auth_page.dart]"]
  node_register["Registration<br/>[register_page.dart]"]
  node_forgot["Password recovery"]
  node_google_login["Google login<br/>[google_login.dart]"]
  node_auth_service["Auth service<br/>[auth_service.dart]"]
  node_user_model["User model<br/>[user.dart]"]
end

subgraph group_chat["Chat and data"]
  node_chat_list["Chat list<br/>[chat_list.dart]"]
  node_prompts["Gemini prompts"]
end

subgraph group_integrations["External services"]
  node_firebase_auth["Firebase Auth"]
  node_firestore[("Firebase database")]
  node_google["Google OAuth"]
  node_gemini["Gemini API"]
  node_admob["Google AdMob"]
end

node_user(("User"))

node_user -->|"opens"| node_entry
node_entry -->|"starts at"| node_auth_ui
node_auth_ui -->|"offers"| node_auth_pages
node_auth_pages -->|"supports"| node_register
node_auth_pages -->|"supports"| node_forgot
node_auth_service -->|"authenticates"| node_firebase_auth
node_google_login -->|"signs in"| node_google
node_home -->|"provides access"| node_chat_list
node_prompts -->|"integrates"| node_gemini
node_auth_service -.->|"uses database"| node_firestore
node_home -.->|"monetizes"| node_admob

click node_entry "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/main.dart"
click node_auth_ui "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/login_screen.dart"
click node_auth_pages "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/auth_page.dart"
click node_register "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/register_page.dart"
click node_forgot "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/forgot_pw_page.dart"
click node_google_login "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/google_login.dart"
click node_auth_service "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/services/auth_service.dart"
click node_home "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/home_page.dart"
click node_chat_list "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/chat_list.dart"
click node_prompts "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/gemini_prompts.dart"
click node_profile "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/profile_page.dart"
click node_user_model "https://github.com/chivichi3143/chatiafacilito/blob/main/lib/models/user.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_entry,node_home,node_profile,node_user toneBlue
class node_auth_ui,node_auth_pages,node_register,node_forgot,node_google_login,node_auth_service,node_user_model toneAmber
class node_chat_list,node_prompts toneMint
class node_firebase_auth,node_firestore,node_google,node_gemini,node_admob toneRose
```

## Components

### App experience

- [App entry](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/main.dart): `lib/main.dart`
- [Home](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/home_page.dart): `lib/features/home_page.dart`
- [User profile](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/profile_page.dart): `lib/presentation/screens/profile_page.dart`

### Identity

- [Sign-in screens](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/login_screen.dart): `lib/presentation/screens/login_screen.dart`
- [Auth pages](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/auth_page.dart): `lib/features/auth_page.dart`
- [Registration](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/register_page.dart): `lib/features/register_page.dart`
- [Password recovery](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/forgot_pw_page.dart): `lib/features/forgot_pw_page.dart`
- [Google login](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/google_login.dart): `lib/features/google_login.dart`
- [Auth service](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`
- [User model](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/models/user.dart): `lib/models/user.dart`

### Chat and data

- [Chat list](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/presentation/screens/chat_list.dart): `lib/presentation/screens/chat_list.dart`
- [Gemini prompts](https://github.com/chivichi3143/chatiafacilito/blob/main/lib/features/gemini_prompts.dart): `lib/features/gemini_prompts.dart`

### External services

- **Firebase Auth**
- **Firebase database**
- **Google OAuth**
- **Gemini API**
- **Google AdMob**

### Other components

- **User**

## Connections

- User → App entry: opens
- App entry → Sign-in screens: starts at
- Sign-in screens → Auth pages: offers
- Auth pages → Registration: supports
- Auth pages → Password recovery: supports
- Auth service → Firebase Auth: authenticates
- Google login → Google OAuth: signs in
- Home → Chat list: provides access
- Gemini prompts → Gemini API: integrates
- Auth service → Firebase database: uses database
- Home → Google AdMob: monetizes
