# ptsi-01/agile-android architecture

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

- Interactive diagram: https://gitdiagram.com/ptsi-01/agile-android
- Repository: https://github.com/ptsi-01/agile-android

## Overview

Agile Mobile is a Flutter e-procurement app prototype. Its documented user-facing flow is a mobile login screen with email/password validation, password visibility, and dark mode; login does not authenticate or persist a session. The source tree also contains procurement, master-data, supplier/buyer, and reporting screens and services, but their runtime connections are not established by the available excerpts. The README explicitly says the dashboard is a project/sprint prototype, not the final operational dashboard, and that Laravel/API integration is not connected.

Main entry points: [`lib/main.dart`](https://github.com/ptsi-01/agile-android/blob/main/lib/main.dart) (Prototype home), [`lib/screens/login_page.dart`](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/login_page.dart) (Login form)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App entry"]
  node_main["Prototype home<br/>[main.dart]"]
end

subgraph group_auth["Login UI"]
  node_login["Login form<br/>[login_page.dart]"]
end

subgraph group_procurement["Procurement UI"]
  node_dashboard["Dashboard overview"]
  node_purchase["Purchasing<br/>[purchase_page.dart]"]
  node_reports["Reports<br/>[reports_page.dart]"]
  node_modules["Module selection<br/>[modules_page.dart]"]
  node_masterdata["Master data"]
  node_buyers["Buyer groups"]
  node_buyer_detail["Buyer details"]
  node_suppliers["Supplier management"]
  node_supplier_detail["Supplier details"]
  node_categories["Item categories"]
end

subgraph group_services["Data services"]
  node_auth_service["Authentication service<br/>[auth_service.dart]"]
  node_purchase_service["Purchase service"]
  node_master_service["Master-data service"]
  node_supplier_service["Supplier service"]
  node_buyer_service["Buyer-group service"]
end

node_user(("Mobile user"))

node_user -->|"uses login"| node_login
node_user -->|"opens prototype"| node_main

click node_main "https://github.com/ptsi-01/agile-android/blob/main/lib/main.dart"
click node_login "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/login_page.dart"
click node_dashboard "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/dashboard_overview_page.dart"
click node_purchase "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/purchase_page.dart"
click node_reports "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/reports_page.dart"
click node_modules "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/modules_page.dart"
click node_masterdata "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/master_data_page.dart"
click node_buyers "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/buyer_group_page.dart"
click node_buyer_detail "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/buyer_detail_page.dart"
click node_suppliers "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/supplier/supplier_list_page.dart"
click node_supplier_detail "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/supplier/supplier_detail_page.dart"
click node_categories "https://github.com/ptsi-01/agile-android/blob/main/lib/screens/item_category_page.dart"
click node_auth_service "https://github.com/ptsi-01/agile-android/blob/main/lib/services/auth_service.dart"
click node_purchase_service "https://github.com/ptsi-01/agile-android/blob/main/lib/services/purchase_service.dart"
click node_master_service "https://github.com/ptsi-01/agile-android/blob/main/lib/services/master_data_service.dart"
click node_supplier_service "https://github.com/ptsi-01/agile-android/blob/main/lib/services/supplier_service.dart"
click node_buyer_service "https://github.com/ptsi-01/agile-android/blob/main/lib/services/buyer_group_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_user toneBlue
class node_login toneAmber
class node_dashboard,node_purchase,node_reports,node_modules,node_masterdata,node_buyers,node_buyer_detail,node_suppliers,node_supplier_detail,node_categories toneMint
class node_auth_service,node_purchase_service,node_master_service,node_supplier_service,node_buyer_service toneRose
```

## Components

### App entry

- [Prototype home](https://github.com/ptsi-01/agile-android/blob/main/lib/main.dart): `lib/main.dart`

### Login UI

- [Login form](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/login_page.dart): `lib/screens/login_page.dart`

### Procurement UI

- [Dashboard overview](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/dashboard_overview_page.dart): `lib/screens/dashboard_overview_page.dart`
- [Purchasing](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/purchase_page.dart): `lib/screens/purchase_page.dart`
- [Reports](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/reports_page.dart): `lib/screens/reports_page.dart`
- [Module selection](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/modules_page.dart): `lib/screens/modules_page.dart`
- [Master data](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/master_data_page.dart): `lib/screens/master_data_page.dart`
- [Buyer groups](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/buyer_group_page.dart): `lib/screens/buyer_group_page.dart`
- [Buyer details](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/buyer_detail_page.dart): `lib/screens/buyer_detail_page.dart`
- [Supplier management](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/supplier/supplier_list_page.dart): `lib/screens/supplier/supplier_list_page.dart`
- [Supplier details](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/supplier/supplier_detail_page.dart): `lib/screens/supplier/supplier_detail_page.dart`
- [Item categories](https://github.com/ptsi-01/agile-android/blob/main/lib/screens/item_category_page.dart): `lib/screens/item_category_page.dart`

### Data services

- [Authentication service](https://github.com/ptsi-01/agile-android/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`
- [Purchase service](https://github.com/ptsi-01/agile-android/blob/main/lib/services/purchase_service.dart): `lib/services/purchase_service.dart`
- [Master-data service](https://github.com/ptsi-01/agile-android/blob/main/lib/services/master_data_service.dart): `lib/services/master_data_service.dart`
- [Supplier service](https://github.com/ptsi-01/agile-android/blob/main/lib/services/supplier_service.dart): `lib/services/supplier_service.dart`
- [Buyer-group service](https://github.com/ptsi-01/agile-android/blob/main/lib/services/buyer_group_service.dart): `lib/services/buyer_group_service.dart`

### Other components

- **Mobile user**

## Connections

- Mobile user → Login form: uses login (evidence: `README.md`)
- Mobile user → Prototype home: opens prototype (evidence: `README.md`)
