# iloveflo/mobile_programming architecture

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

## Overview

This is a Flutter app for managing debt repayment schedules and viewing personal credit health, as stated in the README. Its apparent user journey spans authentication, a home/loan portfolio, loan details and repayment scheduling, with credit-health reporting as a related capability. The tree also shows mock and remote repository implementations, API infrastructure, and domain models. Those connections and runtime flows could not be verified: the supplied source excerpts cover platform runners, not the Dart product code. Dashed edges mark only tentative relationships; no platform-runner internals are included.

Main entry points: [`lib/repositories/interfaces`](https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/interfaces) (Repository contracts), [`lib/screens/loans`](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/loans) (Loan screens), [`lib/controllers/auth_controller.dart`](https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/auth_controller.dart) (Authentication), [`lib/controllers/loan_controller.dart`](https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/loan_controller.dart) (Loan operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_auth_ui["Sign-in screens"]
  node_home_ui["Home dashboard"]
  node_loan_ui["Loan screens"]
  node_schedule_ui["Payment schedule"]
  node_credit_ui["Credit health"]
  node_profile_ui["Profile and settings"]
end

subgraph group_domain["Financial features"]
  node_loan_data["Loan domain data"]
  node_credit_data["Credit domain data"]
  node_auth_data["Auth domain data<br/>[user_model.dart]"]
end

subgraph group_application["Application logic"]
  node_auth_logic["Authentication"]
  node_loan_logic["Loan operations"]
  node_routing["App navigation<br/>[app_router.dart]"]
end

subgraph group_data["Data access"]
  node_repo_contracts["Repository contracts"]
  node_mock_repos["Mock repositories"]
  node_remote_repos["Remote repositories"]
  node_network["API client<br/>[api_client.dart]"]
  node_schema[("Credit health schema")]
end

node_user(("App user"))

node_user -.->|"uses"| node_auth_ui
node_user -.->|"views portfolio"| node_home_ui
node_home_ui -.->|"opens loans"| node_loan_ui
node_loan_ui -.->|"views schedule"| node_schedule_ui
node_user -.->|"views credit health"| node_credit_ui
node_user -.->|"manages profile"| node_profile_ui
node_auth_ui -.->|"delegates"| node_auth_logic
node_loan_ui -.->|"delegates"| node_loan_logic
node_loan_logic -.->|"uses models"| node_loan_data
node_auth_logic -.->|"uses models"| node_auth_data
node_auth_logic -.->|"uses contract"| node_repo_contracts
node_loan_logic -.->|"uses contract"| node_repo_contracts
node_mock_repos -.->|"implements"| node_repo_contracts
node_remote_repos -.->|"implements"| node_repo_contracts
node_remote_repos -.->|"uses client"| node_network

click node_auth_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/auth"
click node_home_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/home"
click node_loan_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/loans"
click node_schedule_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/schedule"
click node_credit_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/credit"
click node_profile_ui "https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/profile"
click node_auth_logic "https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/auth_controller.dart"
click node_loan_logic "https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/loan_controller.dart"
click node_routing "https://github.com/iloveflo/mobile_programming/blob/main/lib/routes/app_router.dart"
click node_loan_data "https://github.com/iloveflo/mobile_programming/tree/main/lib/models"
click node_credit_data "https://github.com/iloveflo/mobile_programming/blob/main/lib/models/credit_profile_model.dart"
click node_auth_data "https://github.com/iloveflo/mobile_programming/blob/main/lib/models/user_model.dart"
click node_repo_contracts "https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/interfaces"
click node_mock_repos "https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/mock"
click node_remote_repos "https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/remote"
click node_network "https://github.com/iloveflo/mobile_programming/blob/main/lib/core/network/api_client.dart"
click node_schema "https://github.com/iloveflo/mobile_programming/blob/main/credit_health_db.sql"

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_auth_ui,node_home_ui,node_loan_ui,node_schedule_ui,node_credit_ui,node_profile_ui,node_user toneBlue
class node_loan_data,node_credit_data,node_auth_data toneAmber
class node_auth_logic,node_loan_logic,node_routing toneMint
class node_repo_contracts,node_mock_repos,node_remote_repos,node_network,node_schema toneRose
```

## Components

### User experience

- [Sign-in screens](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/auth): `lib/screens/auth`
- [Home dashboard](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/home): `lib/screens/home`
- [Loan screens](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/loans): `lib/screens/loans`
- [Payment schedule](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/schedule): `lib/screens/schedule`
- [Credit health](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/credit): `lib/screens/credit`
- [Profile and settings](https://github.com/iloveflo/mobile_programming/tree/main/lib/screens/profile): `lib/screens/profile`

### Financial features

- [Loan domain data](https://github.com/iloveflo/mobile_programming/tree/main/lib/models): `lib/models`
- [Credit domain data](https://github.com/iloveflo/mobile_programming/blob/main/lib/models/credit_profile_model.dart): `lib/models/credit_profile_model.dart`
- [Auth domain data](https://github.com/iloveflo/mobile_programming/blob/main/lib/models/user_model.dart): `lib/models/user_model.dart`

### Application logic

- [Authentication](https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/auth_controller.dart): `lib/controllers/auth_controller.dart`
- [Loan operations](https://github.com/iloveflo/mobile_programming/blob/main/lib/controllers/loan_controller.dart): `lib/controllers/loan_controller.dart`
- [App navigation](https://github.com/iloveflo/mobile_programming/blob/main/lib/routes/app_router.dart): `lib/routes/app_router.dart`

### Data access

- [Repository contracts](https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/interfaces): `lib/repositories/interfaces`
- [Mock repositories](https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/mock): `lib/repositories/mock`
- [Remote repositories](https://github.com/iloveflo/mobile_programming/tree/main/lib/repositories/remote): `lib/repositories/remote`
- [API client](https://github.com/iloveflo/mobile_programming/blob/main/lib/core/network/api_client.dart): `lib/core/network/api_client.dart`
- [Credit health schema](https://github.com/iloveflo/mobile_programming/blob/main/credit_health_db.sql): `credit_health_db.sql`

### Other components

- **App user**

## Connections

- App user → Sign-in screens: uses
- App user → Home dashboard: views portfolio
- Home dashboard → Loan screens: opens loans
- Loan screens → Payment schedule: views schedule
- App user → Credit health: views credit health
- App user → Profile and settings: manages profile
- Sign-in screens → Authentication: delegates
- Loan screens → Loan operations: delegates
- Loan operations → Loan domain data: uses models
- Authentication → Auth domain data: uses models
- Authentication → Repository contracts: uses contract
- Loan operations → Repository contracts: uses contract
- Mock repositories → Repository contracts: implements
- Remote repositories → Repository contracts: implements
- Remote repositories → API client: uses client
