# juancode747/dopamind architecture

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

- Interactive diagram: https://gitdiagram.com/juancode747/dopamind
- Repository: https://github.com/juancode747/dopamind

## Overview

Dopamind is a Flutter app whose screens suggest a personal focus and wellbeing workflow: users onboard, manage tasks, focus with a timer, record journal entries, practice mindfulness, and view achievements. The graph includes those distinct product stages and the app’s state, persistence, and camera service layers. The README is only a Flutter starter template, and the sampled source contains no Dart app code, so relationships among these components are shown as unverified rather than asserted as observed calls.

Main entry points: [`lib/services/app_provider.dart`](https://github.com/juancode747/dopamind/blob/master/lib/services/app_provider.dart) (App state), [`lib/screens/home_screen.dart`](https://github.com/juancode747/dopamind/blob/master/lib/screens/home_screen.dart) (Home), [`lib/main.dart`](https://github.com/juancode747/dopamind/blob/master/lib/main.dart) (Flutter app entry), [`lib/screens/tasks_screen.dart`](https://github.com/juancode747/dopamind/blob/master/lib/screens/tasks_screen.dart) (Task management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["App experience"]
  node_app["Flutter app entry<br/>[main.dart]"]
  node_onboarding["Onboarding"]
  node_home["Home<br/>[home_screen.dart]"]
  node_tasks["Task management<br/>[tasks_screen.dart]"]
end

subgraph group_wellbeing["Focus and wellbeing"]
  node_focus["Focus session<br/>[focus_screen.dart]"]
  node_mindfulness["Mindfulness"]
  node_journal["Journal"]
  node_achievements["Achievements"]
end

subgraph group_domain["Domain data"]
  node_taskmodel["Task model<br/>[task.dart]"]
  node_predefined["Predefined tasks"]
  node_journalmodel["Journal entry model<br/>[journal_entry.dart]"]
  node_achievementmodel["Achievement model<br/>[achievement.dart]"]
end

subgraph group_services["App services"]
  node_provider["App state<br/>[app_provider.dart]"]
  node_timer["Timer service<br/>[timer_service.dart]"]
  node_database[("Local database")]
  node_camera["Camera service"]
end

node_user(("User"))
node_camera_device["Device camera"]

node_user -.->|"opens"| node_app
node_app -.->|"may present"| node_onboarding
node_app -.->|"may present"| node_home
node_home -.->|"may navigate"| node_tasks
node_home -.->|"may navigate"| node_focus
node_home -.->|"may navigate"| node_mindfulness
node_home -.->|"may navigate"| node_journal
node_home -.->|"may navigate"| node_achievements
node_tasks -.->|"may use"| node_provider
node_focus -.->|"may use"| node_timer
node_journal -.->|"may use"| node_provider
node_achievements -.->|"may use"| node_provider
node_provider -.->|"may persist"| node_database
node_provider -.->|"may manage"| node_taskmodel
node_provider -.->|"may load"| node_predefined
node_provider -.->|"may manage"| node_journalmodel
node_provider -.->|"may manage"| node_achievementmodel
node_camera -.->|"may access"| node_camera_device

click node_app "https://github.com/juancode747/dopamind/blob/master/lib/main.dart"
click node_onboarding "https://github.com/juancode747/dopamind/blob/master/lib/screens/onboarding_screen.dart"
click node_home "https://github.com/juancode747/dopamind/blob/master/lib/screens/home_screen.dart"
click node_tasks "https://github.com/juancode747/dopamind/blob/master/lib/screens/tasks_screen.dart"
click node_focus "https://github.com/juancode747/dopamind/blob/master/lib/screens/focus_screen.dart"
click node_mindfulness "https://github.com/juancode747/dopamind/blob/master/lib/screens/mindfulness_screen.dart"
click node_journal "https://github.com/juancode747/dopamind/blob/master/lib/screens/journal_screen.dart"
click node_achievements "https://github.com/juancode747/dopamind/blob/master/lib/screens/achievements_screen.dart"
click node_provider "https://github.com/juancode747/dopamind/blob/master/lib/services/app_provider.dart"
click node_timer "https://github.com/juancode747/dopamind/blob/master/lib/services/timer_service.dart"
click node_database "https://github.com/juancode747/dopamind/blob/master/lib/services/database_service.dart"
click node_camera "https://github.com/juancode747/dopamind/blob/master/lib/services/camera_service.dart"
click node_taskmodel "https://github.com/juancode747/dopamind/blob/master/lib/models/task.dart"
click node_predefined "https://github.com/juancode747/dopamind/blob/master/lib/models/predefined_tasks.dart"
click node_journalmodel "https://github.com/juancode747/dopamind/blob/master/lib/models/journal_entry.dart"
click node_achievementmodel "https://github.com/juancode747/dopamind/blob/master/lib/models/achievement.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_app,node_onboarding,node_home,node_tasks,node_user toneBlue
class node_focus,node_mindfulness,node_journal,node_achievements toneAmber
class node_taskmodel,node_predefined,node_journalmodel,node_achievementmodel toneMint
class node_provider,node_timer,node_database,node_camera toneRose
class node_camera_device toneIndigo
```

## Components

### App experience

- [Flutter app entry](https://github.com/juancode747/dopamind/blob/master/lib/main.dart): `lib/main.dart`
- [Onboarding](https://github.com/juancode747/dopamind/blob/master/lib/screens/onboarding_screen.dart): `lib/screens/onboarding_screen.dart`
- [Home](https://github.com/juancode747/dopamind/blob/master/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Task management](https://github.com/juancode747/dopamind/blob/master/lib/screens/tasks_screen.dart): `lib/screens/tasks_screen.dart`

### Focus and wellbeing

- [Focus session](https://github.com/juancode747/dopamind/blob/master/lib/screens/focus_screen.dart): `lib/screens/focus_screen.dart`
- [Mindfulness](https://github.com/juancode747/dopamind/blob/master/lib/screens/mindfulness_screen.dart): `lib/screens/mindfulness_screen.dart`
- [Journal](https://github.com/juancode747/dopamind/blob/master/lib/screens/journal_screen.dart): `lib/screens/journal_screen.dart`
- [Achievements](https://github.com/juancode747/dopamind/blob/master/lib/screens/achievements_screen.dart): `lib/screens/achievements_screen.dart`

### Domain data

- [Task model](https://github.com/juancode747/dopamind/blob/master/lib/models/task.dart): `lib/models/task.dart`
- [Predefined tasks](https://github.com/juancode747/dopamind/blob/master/lib/models/predefined_tasks.dart): `lib/models/predefined_tasks.dart`
- [Journal entry model](https://github.com/juancode747/dopamind/blob/master/lib/models/journal_entry.dart): `lib/models/journal_entry.dart`
- [Achievement model](https://github.com/juancode747/dopamind/blob/master/lib/models/achievement.dart): `lib/models/achievement.dart`

### App services

- [App state](https://github.com/juancode747/dopamind/blob/master/lib/services/app_provider.dart): `lib/services/app_provider.dart`
- [Timer service](https://github.com/juancode747/dopamind/blob/master/lib/services/timer_service.dart): `lib/services/timer_service.dart`
- [Local database](https://github.com/juancode747/dopamind/blob/master/lib/services/database_service.dart): `lib/services/database_service.dart`
- [Camera service](https://github.com/juancode747/dopamind/blob/master/lib/services/camera_service.dart): `lib/services/camera_service.dart`

### Other components

- **User**
- **Device camera**

## Connections

- User → Flutter app entry: opens
- Flutter app entry → Onboarding: may present
- Flutter app entry → Home: may present
- Home → Task management: may navigate
- Home → Focus session: may navigate
- Home → Mindfulness: may navigate
- Home → Journal: may navigate
- Home → Achievements: may navigate
- Task management → App state: may use
- Focus session → Timer service: may use
- Journal → App state: may use
- Achievements → App state: may use
- App state → Local database: may persist
- App state → Task model: may manage
- App state → Predefined tasks: may load
- App state → Journal entry model: may manage
- App state → Achievement model: may manage
- Camera service → Device camera: may access
