# tariq-zeyad/smart-coworking-space-manager architecture

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

- Interactive diagram: https://gitdiagram.com/tariq-zeyad/smart-coworking-space-manager
- Repository: https://github.com/tariq-zeyad/smart-coworking-space-manager

## Overview

This is a Dart console back-office system for managing shared workspaces, customers, bookings, payments, and reports. The main workflow runs from a user through the console and application facade into domain operations, with repositories persisting state in in-memory maps. Domain capabilities include availability and overlap checks, booking lifecycle operations, balance-funded payments, and reporting. The README documents these relationships; no source excerpts were provided, so edges are limited to documented relationships and cite the README.

Main entry points: [`lib/data/repositories`](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/data/repositories) (Repository implementations), [`lib/application/workspace_manager.dart`](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/application/workspace_manager.dart) (Workspace manager), [`lib/domain/repositories`](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/repositories) (Repository contracts), [`lib/domain/use_cases/booking`](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/booking) (Booking operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Console presentation"]
  node_entry["CLI entry point"]
  node_console["Console app<br/>[console_app.dart]"]
  node_console_io["Validated input<br/>[console_io.dart]"]
end

subgraph group_application["Application facade"]
  node_manager["Workspace manager"]
end

subgraph group_domain["Domain capabilities"]
  node_customer_ops["Customer operations"]
  node_workspace_ops["Workspace operations"]
  node_booking_ops["Booking operations"]
  node_payment_ops["Payment operations"]
  node_reports["Management reports"]
  node_availability["Availability service"]
  node_entities["Domain entities"]
  node_contracts["Repository contracts"]
  node_exceptions["App exceptions"]
end

subgraph group_data["Data storage"]
  node_repositories["Repository implementations"]
  node_booking_store[("Booking map store")]
  node_customer_store[("Customer map store")]
  node_payment_store[("Payment map store")]
  node_workspace_store[("Workspace map store")]
end

node_user(("Operator"))

node_user -->|"uses"| node_console
node_entry -->|"runs"| node_console
node_console -->|"reads input"| node_console_io
node_console -->|"invokes"| node_manager
node_manager -->|"dispatches"| node_customer_ops
node_manager -->|"dispatches"| node_workspace_ops
node_manager -->|"dispatches"| node_booking_ops
node_manager -->|"dispatches"| node_payment_ops
node_manager -->|"dispatches"| node_reports
node_manager -->|"wires"| node_repositories
node_booking_ops -->|"checks availability"| node_availability
node_booking_ops -->|"uses contracts"| node_contracts
node_payment_ops -->|"uses contracts"| node_contracts
node_reports -->|"uses contracts"| node_contracts
node_availability -->|"uses contracts"| node_contracts
node_customer_ops -->|"CRUD access"| node_repositories
node_workspace_ops -->|"CRUD access"| node_repositories
node_booking_ops -->|"applies rules"| node_entities
node_repositories -.->|"implements"| node_contracts
node_repositories -->|"stores bookings"| node_booking_store
node_repositories -->|"stores customers"| node_customer_store
node_repositories -->|"stores payments"| node_payment_store
node_repositories -->|"stores workspaces"| node_workspace_store

click node_entry "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/bin/smart_coworking_system.dart"
click node_console "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/presentation/console_app.dart"
click node_console_io "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/presentation/console_io.dart"
click node_manager "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/application/workspace_manager.dart"
click node_customer_ops "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/customer"
click node_workspace_ops "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/workspace"
click node_booking_ops "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/booking"
click node_payment_ops "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/payment"
click node_reports "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/domain/use_cases/report/generate_report.dart"
click node_availability "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/domain/services/workspace_availability_service.dart"
click node_entities "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/entities"
click node_contracts "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/repositories"
click node_exceptions "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/core/errors/app_exceptions.dart"
click node_repositories "https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/data/repositories"
click node_booking_store "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/booking_local_data_source.dart"
click node_customer_store "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/customer_local_data_source.dart"
click node_payment_store "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/payment_local_data_source.dart"
click node_workspace_store "https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/workspace_local_data_source.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_console,node_console_io toneBlue
class node_manager toneAmber
class node_customer_ops,node_workspace_ops,node_booking_ops,node_payment_ops,node_reports,node_availability,node_entities,node_contracts,node_exceptions toneMint
class node_repositories,node_booking_store,node_customer_store,node_payment_store,node_workspace_store toneRose
class node_user toneIndigo
```

## Components

### Console presentation

- [CLI entry point](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/bin/smart_coworking_system.dart): `bin/smart_coworking_system.dart`
- [Console app](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/presentation/console_app.dart): `lib/presentation/console_app.dart`
- [Validated input](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/presentation/console_io.dart): `lib/presentation/console_io.dart`

### Application facade

- [Workspace manager](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/application/workspace_manager.dart): `lib/application/workspace_manager.dart`

### Domain capabilities

- [Customer operations](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/customer): `lib/domain/use_cases/customer`
- [Workspace operations](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/workspace): `lib/domain/use_cases/workspace`
- [Booking operations](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/booking): `lib/domain/use_cases/booking`
- [Payment operations](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/use_cases/payment): `lib/domain/use_cases/payment`
- [Management reports](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/domain/use_cases/report/generate_report.dart): `lib/domain/use_cases/report/generate_report.dart`
- [Availability service](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/domain/services/workspace_availability_service.dart): `lib/domain/services/workspace_availability_service.dart`
- [Domain entities](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/entities): `lib/domain/entities`
- [Repository contracts](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/domain/repositories): `lib/domain/repositories`
- [App exceptions](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/core/errors/app_exceptions.dart): `lib/core/errors/app_exceptions.dart`

### Data storage

- [Repository implementations](https://github.com/tariq-zeyad/smart-coworking-space-manager/tree/main/lib/data/repositories): `lib/data/repositories`
- [Booking map store](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/booking_local_data_source.dart): `lib/data/data_sources/local/booking_local_data_source.dart`
- [Customer map store](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/customer_local_data_source.dart): `lib/data/data_sources/local/customer_local_data_source.dart`
- [Payment map store](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/payment_local_data_source.dart): `lib/data/data_sources/local/payment_local_data_source.dart`
- [Workspace map store](https://github.com/tariq-zeyad/smart-coworking-space-manager/blob/main/lib/data/data_sources/local/workspace_local_data_source.dart): `lib/data/data_sources/local/workspace_local_data_source.dart`

### Other components

- **Operator**

## Connections

- Operator → Console app: uses (evidence: `README.md`)
- CLI entry point → Console app: runs (evidence: `README.md`)
- Console app → Validated input: reads input (evidence: `README.md`)
- Console app → Workspace manager: invokes (evidence: `README.md`)
- Workspace manager → Customer operations: dispatches (evidence: `README.md`)
- Workspace manager → Workspace operations: dispatches (evidence: `README.md`)
- Workspace manager → Booking operations: dispatches (evidence: `README.md`)
- Workspace manager → Payment operations: dispatches (evidence: `README.md`)
- Workspace manager → Management reports: dispatches (evidence: `README.md`)
- Workspace manager → Repository implementations: wires (evidence: `README.md`)
- Booking operations → Availability service: checks availability (evidence: `README.md`)
- Booking operations → Repository contracts: uses contracts (evidence: `README.md`)
- Payment operations → Repository contracts: uses contracts (evidence: `README.md`)
- Management reports → Repository contracts: uses contracts (evidence: `README.md`)
- Availability service → Repository contracts: uses contracts (evidence: `README.md`)
- Customer operations → Repository implementations: CRUD access (evidence: `README.md`)
- Workspace operations → Repository implementations: CRUD access (evidence: `README.md`)
- Booking operations → Domain entities: applies rules (evidence: `README.md`)
- Repository implementations → Repository contracts: implements (evidence: `README.md`)
- Repository implementations → Booking map store: stores bookings (evidence: `README.md`)
- Repository implementations → Customer map store: stores customers (evidence: `README.md`)
- Repository implementations → Payment map store: stores payments (evidence: `README.md`)
- Repository implementations → Workspace map store: stores workspaces (evidence: `README.md`)
