# hoosammr/digbin5 architecture

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

- Interactive diagram: https://gitdiagram.com/hoosammr/digbin5
- Repository: https://github.com/hoosammr/digbin5

## Overview

DigBin5 is an offline-first Android workshop-management app. Users enter through the Compose app and can manage clients, machines and their versioned specifications, jobs and their machine/tool assignments, and a reusable tool catalog; work search combines jobs, machines, and clients. Room provides local persistence through repository implementations. The README is empty, and only selected source was sampled, so feature-to-repository wiring and several repository implementations are not asserted where their callers were not visible.

Main entry points: [`android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DigBinDatabase.kt`](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DigBinDatabase.kt) (Room database), [`android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineSearchRepository.kt`](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineSearchRepository.kt) (Unified search), [`android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineToolRepository.kt`](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineToolRepository.kt) (Tool repository), [`android/DigBin5/app/src/main/java/com/meray/digbin5/MainActivity.kt`](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/app/src/main/java/com/meray/digbin5/MainActivity.kt) (Main activity)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App shell"]
  node_activity["Main activity<br/>[MainActivity.kt]"]
  node_navigation["App navigation<br/>[AppNavigation.kt]"]
end

subgraph group_features["Workshop features"]
  node_home["Home"]
  node_clients["Client management"]
  node_machines["Machine registry"]
  node_work["Jobs and search"]
  node_tools["Tool catalog"]
end

subgraph group_data["Data layer"]
  node_models["Domain models"]
  node_client_repo["Client repository"]
  node_machine_repo["Machine repository"]
  node_job_repo["Job repository"]
  node_tool_repo["Tool repository"]
  node_search_repo["Unified search"]
end

subgraph group_storage["Local storage"]
  node_database[("Room database<br/>[DigBinDatabase.kt]")]
  node_db_module["Database providers<br/>[DatabaseModule.kt]"]
  node_client_dao["Client DAO<br/>[ClientDao.kt]"]
  node_machine_dao["Machine and template DAOs<br/>[MachineDao.kt]"]
  node_job_dao["Job DAO<br/>[JobDao.kt]"]
  node_tool_dao["Tool DAO<br/>[ToolDao.kt]"]
end

node_user(("Workshop user"))

node_user -->|"opens"| node_activity
node_activity -->|"hosts"| node_navigation
node_search_repo -->|"observes jobs"| node_job_repo
node_search_repo -->|"observes machines"| node_machine_repo
node_search_repo -->|"observes clients"| node_client_repo
node_machine_repo -->|"reads and writes"| node_machine_dao
node_tool_repo -->|"reads and writes"| node_tool_dao
node_tool_repo -->|"checks jobs"| node_job_dao
node_db_module -->|"provides"| node_database
node_database -->|"exposes"| node_client_dao
node_database -->|"exposes"| node_machine_dao
node_database -->|"exposes"| node_job_dao
node_database -->|"exposes"| node_tool_dao

click node_activity "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/app/src/main/java/com/meray/digbin5/MainActivity.kt"
click node_navigation "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/app/src/main/java/com/meray/digbin5/navigation/AppNavigation.kt"
click node_home "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/home"
click node_clients "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/clients"
click node_machines "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/machines"
click node_work "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/work"
click node_tools "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/tools"
click node_models "https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/core/model/src/main/java/com/meray/digbin5/core/model"
click node_client_repo "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineClientRepository.kt"
click node_machine_repo "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineMachineRepository.kt"
click node_job_repo "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineJobRepository.kt"
click node_tool_repo "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineToolRepository.kt"
click node_search_repo "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineSearchRepository.kt"
click node_database "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DigBinDatabase.kt"
click node_db_module "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DatabaseModule.kt"
click node_client_dao "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ClientDao.kt"
click node_machine_dao "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/MachineDao.kt"
click node_job_dao "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/JobDao.kt"
click node_tool_dao "https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ToolDao.kt"

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_activity,node_navigation,node_user toneBlue
class node_home,node_clients,node_machines,node_work,node_tools toneAmber
class node_models,node_client_repo,node_machine_repo,node_job_repo,node_tool_repo,node_search_repo toneMint
class node_database,node_db_module,node_client_dao,node_machine_dao,node_job_dao,node_tool_dao toneRose
```

## Components

### App shell

- [Main activity](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/app/src/main/java/com/meray/digbin5/MainActivity.kt): `android/DigBin5/app/src/main/java/com/meray/digbin5/MainActivity.kt`
- [App navigation](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/app/src/main/java/com/meray/digbin5/navigation/AppNavigation.kt): `android/DigBin5/app/src/main/java/com/meray/digbin5/navigation/AppNavigation.kt`

### Workshop features

- [Home](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/home): `android/DigBin5/feature/home`
- [Client management](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/clients): `android/DigBin5/feature/clients`
- [Machine registry](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/machines): `android/DigBin5/feature/machines`
- [Jobs and search](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/work): `android/DigBin5/feature/work`
- [Tool catalog](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/feature/tools): `android/DigBin5/feature/tools`

### Data layer

- [Domain models](https://github.com/hoosammr/digbin5/tree/main/android/DigBin5/core/model/src/main/java/com/meray/digbin5/core/model): `android/DigBin5/core/model/src/main/java/com/meray/digbin5/core/model`
- [Client repository](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineClientRepository.kt): `android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineClientRepository.kt`
- [Machine repository](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineMachineRepository.kt): `android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineMachineRepository.kt`
- [Job repository](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineJobRepository.kt): `android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineJobRepository.kt`
- [Tool repository](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineToolRepository.kt): `android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineToolRepository.kt`
- [Unified search](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineSearchRepository.kt): `android/DigBin5/core/data/src/main/java/com/meray/digbin5/core/data/OfflineSearchRepository.kt`

### Local storage

- [Room database](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DigBinDatabase.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DigBinDatabase.kt`
- [Database providers](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DatabaseModule.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/DatabaseModule.kt`
- [Client DAO](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ClientDao.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ClientDao.kt`
- [Machine and template DAOs](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/MachineDao.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/MachineDao.kt`
- [Job DAO](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/JobDao.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/JobDao.kt`
- [Tool DAO](https://github.com/hoosammr/digbin5/blob/main/android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ToolDao.kt): `android/DigBin5/core/database/src/main/java/com/meray/digbin5/core/database/ToolDao.kt`

### Other components

- **Workshop user**

## Connections

- Workshop user → Main activity: opens
- Main activity → App navigation: hosts
- Unified search → Job repository: observes jobs
- Unified search → Machine repository: observes machines
- Unified search → Client repository: observes clients
- Machine repository → Machine and template DAOs: reads and writes
- Tool repository → Tool DAO: reads and writes
- Tool repository → Job DAO: checks jobs
- Database providers → Room database: provides
- Room database → Client DAO: exposes
- Room database → Machine and template DAOs: exposes
- Room database → Job DAO: exposes
- Room database → Tool DAO: exposes
