# emidocs/billsplit architecture

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

- Interactive diagram: https://gitdiagram.com/emidocs/billsplit
- Repository: https://github.com/emidocs/billsplit

## Overview

This is a small Flutter billsplit app. Its visible product surface is a login screen and a home screen, but the excerpts do not show their behavior or how navigation connects them. Native plugin registrants indicate Firebase Auth, Firestore, and other platform integrations are available; registration does not establish how the Dart app uses them. Desktop host files are Flutter launch scaffolding, not bill-splitting domain logic.

Main entry points: [`macos/Flutter/GeneratedPluginRegistrant.swift`](https://github.com/emidocs/billsplit/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift) (macOS plugins), [`lib/main.dart`](https://github.com/emidocs/billsplit/blob/main/lib/main.dart) (App entry), [`windows/runner/main.cpp`](https://github.com/emidocs/billsplit/blob/main/windows/runner/main.cpp) (Windows runner), [`windows/flutter/generated_plugin_registrant.cc`](https://github.com/emidocs/billsplit/blob/main/windows/flutter/generated_plugin_registrant.cc) (Windows plugins)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Flutter app"]
  node_entry["App entry<br/>[main.dart]"]
  node_login["Login screen<br/>[login_screen.dart]"]
  node_home["Home screen<br/>[home_screen.dart]"]
end

subgraph group_integrations["Platform integrations"]
  node_firebase_auth{{"Firebase Auth"}}
  node_firestore[("Cloud Firestore")]
  node_firebase_ai{{"Firebase AI"}}
  node_google_signin{{"Google Sign-In"}}
end

subgraph group_hosts["Desktop hosts"]
  node_win_boot["Windows runner<br/>[main.cpp]"]
  node_win_window["Flutter window<br/>[flutter_window.cpp]"]
  node_win_native["Win32 window<br/>[win32_window.cpp]"]
  node_win_plugins["Windows plugins"]
  node_linux_boot["Linux runner<br/>[main.cc]"]
  node_linux_app["GTK application<br/>[my_application.cc]"]
  node_linux_plugins["Linux plugins"]
  node_ios_boot["iOS app delegate<br/>[AppDelegate.swift]"]
  node_mac_plugins["macOS plugins"]
end

node_user(("User"))

node_user -.->|"launches"| node_entry
node_entry -.->|"may show"| node_login
node_entry -.->|"may show"| node_home
node_win_boot -->|"creates"| node_win_window
node_win_window -->|"inherits"| node_win_native
node_win_boot -->|"creates via window"| node_win_native
node_win_plugins -->|"registers"| node_firebase_auth
node_win_plugins -->|"registers"| node_firestore
node_linux_boot -->|"creates"| node_linux_app
node_ios_boot -.->|"registers plugins"| node_mac_plugins
node_mac_plugins -->|"registers"| node_firebase_auth
node_mac_plugins -->|"registers"| node_firestore
node_mac_plugins -->|"registers"| node_firebase_ai
node_mac_plugins -->|"registers"| node_google_signin

click node_entry "https://github.com/emidocs/billsplit/blob/main/lib/main.dart"
click node_login "https://github.com/emidocs/billsplit/blob/main/lib/screens/login_screen.dart"
click node_home "https://github.com/emidocs/billsplit/blob/main/lib/screens/home_screen.dart"
click node_win_boot "https://github.com/emidocs/billsplit/blob/main/windows/runner/main.cpp"
click node_win_window "https://github.com/emidocs/billsplit/blob/main/windows/runner/flutter_window.cpp"
click node_win_native "https://github.com/emidocs/billsplit/blob/main/windows/runner/win32_window.cpp"
click node_win_plugins "https://github.com/emidocs/billsplit/blob/main/windows/flutter/generated_plugin_registrant.cc"
click node_linux_boot "https://github.com/emidocs/billsplit/blob/main/linux/runner/main.cc"
click node_linux_app "https://github.com/emidocs/billsplit/blob/main/linux/runner/my_application.cc"
click node_linux_plugins "https://github.com/emidocs/billsplit/blob/main/linux/flutter/generated_plugin_registrant.cc"
click node_ios_boot "https://github.com/emidocs/billsplit/blob/main/ios/Runner/AppDelegate.swift"
click node_mac_plugins "https://github.com/emidocs/billsplit/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift"

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_login,node_home,node_user toneBlue
class node_firebase_auth,node_firestore,node_firebase_ai,node_google_signin toneAmber
class node_win_boot,node_win_window,node_win_native,node_win_plugins,node_linux_boot,node_linux_app,node_linux_plugins,node_ios_boot,node_mac_plugins toneMint
```

## Components

### Flutter app

- [App entry](https://github.com/emidocs/billsplit/blob/main/lib/main.dart): `lib/main.dart`
- [Login screen](https://github.com/emidocs/billsplit/blob/main/lib/screens/login_screen.dart): `lib/screens/login_screen.dart`
- [Home screen](https://github.com/emidocs/billsplit/blob/main/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`

### Platform integrations

- **Firebase Auth**
- **Cloud Firestore**
- **Firebase AI**
- **Google Sign-In**

### Desktop hosts

- [Windows runner](https://github.com/emidocs/billsplit/blob/main/windows/runner/main.cpp): `windows/runner/main.cpp`
- [Flutter window](https://github.com/emidocs/billsplit/blob/main/windows/runner/flutter_window.cpp): `windows/runner/flutter_window.cpp`
- [Win32 window](https://github.com/emidocs/billsplit/blob/main/windows/runner/win32_window.cpp): `windows/runner/win32_window.cpp`
- [Windows plugins](https://github.com/emidocs/billsplit/blob/main/windows/flutter/generated_plugin_registrant.cc): `windows/flutter/generated_plugin_registrant.cc`
- [Linux runner](https://github.com/emidocs/billsplit/blob/main/linux/runner/main.cc): `linux/runner/main.cc`
- [GTK application](https://github.com/emidocs/billsplit/blob/main/linux/runner/my_application.cc): `linux/runner/my_application.cc`
- [Linux plugins](https://github.com/emidocs/billsplit/blob/main/linux/flutter/generated_plugin_registrant.cc): `linux/flutter/generated_plugin_registrant.cc`
- [iOS app delegate](https://github.com/emidocs/billsplit/blob/main/ios/Runner/AppDelegate.swift): `ios/Runner/AppDelegate.swift`
- [macOS plugins](https://github.com/emidocs/billsplit/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift): `macos/Flutter/GeneratedPluginRegistrant.swift`

### Other components

- **User**

## Connections

- User → App entry: launches
- App entry → Login screen: may show
- App entry → Home screen: may show
- Windows runner → Flutter window: creates (evidence: `windows/runner/main.cpp`)
- Flutter window → Win32 window: inherits
- Windows runner → Win32 window: creates via window (evidence: `windows/runner/main.cpp`)
- Windows plugins → Firebase Auth: registers (evidence: `windows/flutter/generated_plugin_registrant.cc`)
- Windows plugins → Cloud Firestore: registers (evidence: `windows/flutter/generated_plugin_registrant.cc`)
- Linux runner → GTK application: creates (evidence: `linux/runner/main.cc`)
- iOS app delegate → macOS plugins: registers plugins (evidence: `ios/Runner/AppDelegate.swift`)
- macOS plugins → Firebase Auth: registers (evidence: `macos/Flutter/GeneratedPluginRegistrant.swift`)
- macOS plugins → Cloud Firestore: registers (evidence: `macos/Flutter/GeneratedPluginRegistrant.swift`)
- macOS plugins → Firebase AI: registers (evidence: `macos/Flutter/GeneratedPluginRegistrant.swift`)
- macOS plugins → Google Sign-In: registers (evidence: `macos/Flutter/GeneratedPluginRegistrant.swift`)
