# rakesh-mora/flutter_app_bill architecture

> Architecture diagram of the GitHub repository rakesh-mora/flutter_app_bill, 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/rakesh-mora/flutter_app_bill
- Repository: https://github.com/rakesh-mora/flutter_app_bill

## Overview

Digital Bills is an offline-first Flutter invoicing app. The main workflow is entering the app, opening billing, creating and previewing an invoice, then managing bills and sharing or exporting them. Other documented capabilities include customer history, business profiles, expenses and reports, onboarding, notifications, localization, currency settings, and themes. The README describes component roles and product behavior, but no source excerpts were provided; uncertain internal calls and data wiring are therefore omitted.

Main entry points: [`lib/lib/screens/home_screen.dart`](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/home_screen.dart) (Home tabs), [`lib/lib/main.dart`](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/main.dart) (App entry), [`lib/lib/screens/create_bill_screen.dart`](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/create_bill_screen.dart) (Create bill), [`lib/lib/screens/notifications_screen.dart`](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/notifications_screen.dart) (Notifications)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and settings"]
  node_main["App entry<br/>[main.dart]"]
  node_home["Home tabs<br/>[home_screen.dart]"]
  node_onboarding["Onboarding"]
  node_settings["Settings"]
  node_app_settings["App settings state"]
  node_theme["Theme state"]
  node_localizations["Translations<br/>[localizations.dart]"]
end

subgraph group_billing["Billing workflow"]
  node_bills_tab["Bills list<br/>[bills_tab.dart]"]
  node_create_bill["Create bill"]
  node_preview["Bill preview"]
  node_edit_bill["Edit bill"]
  node_bill_detail["Bill details"]
  node_bill_provider["Bill state<br/>[bill_provider.dart]"]
  node_bill_model["Bill data<br/>[bill.dart]"]
end

subgraph group_business["Business and customers"]
  node_business_tab["Business profile<br/>[business_tab.dart]"]
  node_business_edit["Edit business"]
  node_business_provider["Business state"]
  node_customer_tab["Customer list<br/>[customers_tab.dart]"]
  node_customer_detail["Customer history"]
end

subgraph group_insights["Reports and expenses"]
  node_reports["Reports<br/>[reports_tab.dart]"]
  node_expenses["Expenses"]
end

subgraph group_services["Local services"]
  node_notifications["Notifications"]
  node_notification_service["Notification service"]
  node_storage[("Local storage<br/>[local_storage.dart]")]
  node_pdf["PDF generator<br/>[pdf_generator.dart]"]
  node_sharing["Share and export<br/>[share_service.dart]"]
end

node_user(("Business user"))
node_native_share["Native share sheet"]

node_user -->|"opens"| node_main
node_main -->|"shows"| node_home
node_main -->|"starts setup"| node_onboarding
node_home -->|"offers tab"| node_bills_tab
node_home -->|"offers tab"| node_business_tab
node_home -->|"offers tab"| node_customer_tab
node_home -->|"offers tab"| node_reports
node_home -->|"offers tab"| node_settings
node_user -->|"creates invoice"| node_create_bill
node_create_bill -->|"previews bill"| node_preview
node_user -->|"edits bill"| node_edit_bill
node_user -->|"views bill"| node_bill_detail
node_bill_provider -->|"manages"| node_bill_model
node_user -->|"sets up profile"| node_business_edit
node_business_provider -->|"supplies profile state"| node_business_edit
node_user -->|"views history"| node_customer_detail
node_user -->|"tracks expenses"| node_expenses
node_user -->|"opens center"| node_notifications
node_notifications -->|"uses"| node_notification_service
node_sharing -->|"opens share sheet"| node_native_share

click node_main "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/main.dart"
click node_home "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/home_screen.dart"
click node_onboarding "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/onboarding_screen.dart"
click node_settings "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/settings_screen.dart"
click node_app_settings "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/app_settings_provider.dart"
click node_theme "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/theme_provider.dart"
click node_localizations "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/core/localizations.dart"
click node_bills_tab "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/bills_tab.dart"
click node_create_bill "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/create_bill_screen.dart"
click node_preview "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/preview_screen.dart"
click node_edit_bill "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/edit_bill_screen.dart"
click node_bill_detail "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/bill_detail_screen.dart"
click node_bill_provider "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/bill_provider.dart"
click node_bill_model "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/models/bill.dart"
click node_business_tab "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/business_tab.dart"
click node_business_edit "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/business_edit_screen.dart"
click node_business_provider "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/business_provider.dart"
click node_customer_tab "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/customers_tab.dart"
click node_customer_detail "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/customer_detail_screen.dart"
click node_reports "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/reports_tab.dart"
click node_expenses "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/expenses_screen.dart"
click node_notifications "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/notifications_screen.dart"
click node_notification_service "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/notification_service.dart"
click node_storage "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/local_storage.dart"
click node_pdf "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/pdf_generator.dart"
click node_sharing "https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/share_service.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_home,node_onboarding,node_settings,node_app_settings,node_theme,node_localizations,node_user toneBlue
class node_bills_tab,node_create_bill,node_preview,node_edit_bill,node_bill_detail,node_bill_provider,node_bill_model toneAmber
class node_business_tab,node_business_edit,node_business_provider,node_customer_tab,node_customer_detail toneMint
class node_reports,node_expenses toneRose
class node_notifications,node_notification_service,node_storage,node_pdf,node_sharing,node_native_share toneIndigo
```

## Components

### App and settings

- [App entry](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/main.dart): `lib/lib/main.dart`
- [Home tabs](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/home_screen.dart): `lib/lib/screens/home_screen.dart`
- [Onboarding](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/onboarding_screen.dart): `lib/lib/screens/onboarding_screen.dart`
- [Settings](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/settings_screen.dart): `lib/lib/screens/settings_screen.dart`
- [App settings state](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/app_settings_provider.dart): `lib/lib/providers/app_settings_provider.dart`
- [Theme state](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/theme_provider.dart): `lib/lib/providers/theme_provider.dart`
- [Translations](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/core/localizations.dart): `lib/lib/core/localizations.dart`

### Billing workflow

- [Bills list](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/bills_tab.dart): `lib/lib/screens/tabs/bills_tab.dart`
- [Create bill](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/create_bill_screen.dart): `lib/lib/screens/create_bill_screen.dart`
- [Bill preview](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/preview_screen.dart): `lib/lib/screens/preview_screen.dart`
- [Edit bill](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/edit_bill_screen.dart): `lib/lib/screens/edit_bill_screen.dart`
- [Bill details](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/bill_detail_screen.dart): `lib/lib/screens/bill_detail_screen.dart`
- [Bill state](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/bill_provider.dart): `lib/lib/providers/bill_provider.dart`
- [Bill data](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/models/bill.dart): `lib/lib/models/bill.dart`

### Business and customers

- [Business profile](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/business_tab.dart): `lib/lib/screens/tabs/business_tab.dart`
- [Edit business](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/business_edit_screen.dart): `lib/lib/screens/business_edit_screen.dart`
- [Business state](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/providers/business_provider.dart): `lib/lib/providers/business_provider.dart`
- [Customer list](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/customers_tab.dart): `lib/lib/screens/tabs/customers_tab.dart`
- [Customer history](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/customer_detail_screen.dart): `lib/lib/screens/customer_detail_screen.dart`

### Reports and expenses

- [Reports](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/tabs/reports_tab.dart): `lib/lib/screens/tabs/reports_tab.dart`
- [Expenses](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/expenses_screen.dart): `lib/lib/screens/expenses_screen.dart`

### Local services

- [Notifications](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/screens/notifications_screen.dart): `lib/lib/screens/notifications_screen.dart`
- [Notification service](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/notification_service.dart): `lib/lib/services/notification_service.dart`
- [Local storage](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/local_storage.dart): `lib/lib/services/local_storage.dart`
- [PDF generator](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/pdf_generator.dart): `lib/lib/services/pdf_generator.dart`
- [Share and export](https://github.com/rakesh-mora/flutter_app_bill/blob/main/lib/lib/services/share_service.dart): `lib/lib/services/share_service.dart`

### Other components

- **Business user**
- **Native share sheet**

## Connections

- Business user → App entry: opens
- App entry → Home tabs: shows
- App entry → Onboarding: starts setup
- Home tabs → Bills list: offers tab
- Home tabs → Business profile: offers tab
- Home tabs → Customer list: offers tab
- Home tabs → Reports: offers tab
- Home tabs → Settings: offers tab
- Business user → Create bill: creates invoice
- Create bill → Bill preview: previews bill
- Business user → Edit bill: edits bill
- Business user → Bill details: views bill
- Bill state → Bill data: manages
- Business user → Edit business: sets up profile
- Business state → Edit business: supplies profile state
- Business user → Customer history: views history
- Business user → Expenses: tracks expenses
- Business user → Notifications: opens center
- Notifications → Notification service: uses
- Share and export → Native share sheet: opens share sheet
