# lilian-pletosu/smartparking_md architecture

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

## Overview

This is a Flutter smart-parking app. Its apparent user workflow is to manage parking-related choices (cities, zones, and license plates), then enter a parking session and see parking totals or duration state. The tree supports a separation into screens, providers, and data access, but the Dart implementation was not sampled, so the connections below reflect the named app structure rather than verified method-level calls. The README documents no further product capabilities.

Main entry points: [`lib/screens/add_parking_screen.dart`](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/add_parking_screen.dart) (Add parking), [`lib/data/datasource/db.dart`](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/data/datasource/db.dart) (Local database), [`lib/providers/city_provider.dart`](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/city_provider.dart) (City state), [`lib/providers/zone_provider.dart`](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/zone_provider.dart) (Zone state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app_shell["App shell"]
  node_entry["Flutter entry<br/>[main.dart]"]
  node_app["App root"]
  node_router["Route setup<br/>[router.dart]"]
  node_route_defs["Route definitions<br/>[routes.dart]"]
end

subgraph group_parking_flow["Parking workflow"]
  node_home["Home screen<br/>[home_screen.dart]"]
  node_add_parking["Add parking"]
  node_period["Parking period"]
  node_total["Parking total"]
end

subgraph group_reference_data["Parking choices"]
  node_cities["Cities screen<br/>[cities_screen.dart]"]
  node_zones["Zones screen<br/>[zones_screen.dart]"]
  node_plates["License plates"]
end

subgraph group_state_data["State and storage"]
  node_city_state["City state<br/>[city_provider.dart]"]
  node_zone_state["Zone state<br/>[zone_provider.dart]"]
  node_plate_state["Plate state"]
  node_payment_state["Payment state"]
  node_position_state["Position state"]
  node_database[("Local database<br/>[db.dart]")]
  node_models["Data models<br/>[models.dart]"]
end

node_user(("App user"))

node_user -->|"opens app"| node_entry
node_entry -->|"starts"| node_app
node_app -->|"configures routes"| node_router
node_router -->|"uses routes"| node_route_defs
node_user -->|"uses"| node_home
node_user -->|"starts session"| node_add_parking
node_user -->|"manages cities"| node_cities
node_user -->|"manages zones"| node_zones
node_user -->|"manages plates"| node_plates
node_add_parking -->|"updates period"| node_period
node_add_parking -->|"updates total"| node_total
node_cities -->|"uses state"| node_city_state
node_zones -->|"uses state"| node_zone_state
node_plates -->|"uses state"| node_plate_state
node_add_parking -->|"uses state"| node_city_state
node_add_parking -->|"uses state"| node_zone_state
node_add_parking -->|"uses state"| node_plate_state
node_add_parking -->|"uses state"| node_payment_state
node_add_parking -->|"uses state"| node_position_state
node_city_state -->|"persists data"| node_database
node_zone_state -->|"persists data"| node_database
node_plate_state -->|"persists data"| node_database
node_database -->|"uses models"| node_models

click node_entry "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/main.dart"
click node_app "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/app/smart_parking_md_app.dart"
click node_router "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/config/routes/router.dart"
click node_route_defs "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/config/routes/routes.dart"
click node_home "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/home_screen.dart"
click node_add_parking "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/add_parking_screen.dart"
click node_period "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/parking_period_provider.dart"
click node_total "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/total_parking_provider.dart"
click node_cities "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/cities_screen.dart"
click node_zones "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/zones_screen.dart"
click node_plates "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/license_plates_screen.dart"
click node_city_state "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/city_provider.dart"
click node_zone_state "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/zone_provider.dart"
click node_plate_state "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/license_plate_provider.dart"
click node_payment_state "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/payment_method_provider.dart"
click node_position_state "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/position_provider.dart"
click node_database "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/data/datasource/db.dart"
click node_models "https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/data/models/models.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_app,node_router,node_route_defs,node_user toneBlue
class node_home,node_add_parking,node_period,node_total toneAmber
class node_cities,node_zones,node_plates toneMint
class node_city_state,node_zone_state,node_plate_state,node_payment_state,node_position_state,node_database,node_models toneRose
```

## Components

### App shell

- [Flutter entry](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/main.dart): `lib/main.dart`
- [App root](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/app/smart_parking_md_app.dart): `lib/app/smart_parking_md_app.dart`
- [Route setup](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/config/routes/router.dart): `lib/config/routes/router.dart`
- [Route definitions](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/config/routes/routes.dart): `lib/config/routes/routes.dart`

### Parking workflow

- [Home screen](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Add parking](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/add_parking_screen.dart): `lib/screens/add_parking_screen.dart`
- [Parking period](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/parking_period_provider.dart): `lib/providers/parking_period_provider.dart`
- [Parking total](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/total_parking_provider.dart): `lib/providers/total_parking_provider.dart`

### Parking choices

- [Cities screen](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/cities_screen.dart): `lib/screens/cities_screen.dart`
- [Zones screen](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/zones_screen.dart): `lib/screens/zones_screen.dart`
- [License plates](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/screens/license_plates_screen.dart): `lib/screens/license_plates_screen.dart`

### State and storage

- [City state](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/city_provider.dart): `lib/providers/city_provider.dart`
- [Zone state](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/zone_provider.dart): `lib/providers/zone_provider.dart`
- [Plate state](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/license_plate_provider.dart): `lib/providers/license_plate_provider.dart`
- [Payment state](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/payment_method_provider.dart): `lib/providers/payment_method_provider.dart`
- [Position state](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/providers/position_provider.dart): `lib/providers/position_provider.dart`
- [Local database](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/data/datasource/db.dart): `lib/data/datasource/db.dart`
- [Data models](https://github.com/lilian-pletosu/smartparking_md/blob/master/lib/data/models/models.dart): `lib/data/models/models.dart`

### Other components

- **App user**

## Connections

- App user → Flutter entry: opens app
- Flutter entry → App root: starts
- App root → Route setup: configures routes
- Route setup → Route definitions: uses routes
- App user → Home screen: uses
- App user → Add parking: starts session
- App user → Cities screen: manages cities
- App user → Zones screen: manages zones
- App user → License plates: manages plates
- Add parking → Parking period: updates period
- Add parking → Parking total: updates total
- Cities screen → City state: uses state
- Zones screen → Zone state: uses state
- License plates → Plate state: uses state
- Add parking → City state: uses state
- Add parking → Zone state: uses state
- Add parking → Plate state: uses state
- Add parking → Payment state: uses state
- Add parking → Position state: uses state
- City state → Local database: persists data
- Zone state → Local database: persists data
- Plate state → Local database: persists data
- Local database → Data models: uses models
