# 23dp2acuba/dveliks_acubacins_dp2-2 architecture

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

- Interactive diagram: https://gitdiagram.com/23dp2acuba/dveliks_acubacins_dp2-2
- Repository: https://github.com/23dp2acuba/dveliks_acubacins_dp2-2

## Overview

SMART Habit Tracker is a JavaFX desktop application for creating habits, recording daily completions, and reviewing descriptions and progress. The main workflow launches the tracker, loads habits from CSV into a table, and lets users add, complete, delete, or inspect habits; completion updates streak and total-completion state. A separate frontend directory contains a browser-based informational/demo site with navigation and dynamically loaded instruction cards. The README calls the app CLI-only, but the sampled runtime source is JavaFX; frontend behavior is only partially sampled.

Main entry points: [`DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/HabitTrackerUI.java`](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/HabitTrackerUI.java) (Habit tracker UI), [`DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/HabitService.java`](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/HabitService.java) (Habit operations), [`DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/Main.java`](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/Main.java) (Application launcher), [`DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/AddHabitDialog.java`](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/AddHabitDialog.java) (Add habit dialog)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop interface"]
  node_main["Application launcher<br/>[Main.java]"]
  node_tracker["Habit tracker UI"]
  node_add_dialog["Add habit dialog"]
  node_view_dialog["Habit detail dialog"]
end

subgraph group_domain["Habit domain"]
  node_habit["Habit state<br/>[Habit.java]"]
end

subgraph group_storage["CSV persistence"]
  node_service["Habit operations<br/>[HabitService.java]"]
  node_csv[("Habit CSV<br/>[data.csv]")]
end

subgraph group_web["Web guide"]
  node_web_page["Tracker guide site<br/>[index.html]"]
  node_web_script["Guide interactions<br/>[script.js]"]
end

node_user(("User"))
node_browser_user(("Website visitor"))

node_user -->|"launches"| node_main
node_main -->|"launches UI"| node_tracker
node_user -->|"uses"| node_tracker
node_tracker -->|"loads habits"| node_service
node_service -->|"reads"| node_csv
node_tracker -->|"opens"| node_add_dialog
node_add_dialog -->|"adds habit"| node_service
node_tracker -->|"opens"| node_view_dialog
node_tracker -->|"completes or deletes"| node_service
node_service -->|"updates state"| node_habit
node_service -->|"writes"| node_csv
node_tracker -->|"displays progress"| node_habit
node_browser_user -->|"views"| node_web_page
node_web_page -->|"uses interactions"| node_web_script

click node_main "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/Main.java"
click node_tracker "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/HabitTrackerUI.java"
click node_add_dialog "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/AddHabitDialog.java"
click node_view_dialog "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/ViewHabitDialog.java"
click node_habit "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/model/Habit.java"
click node_service "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/HabitService.java"
click node_csv "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/data.csv"
click node_web_page "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/FRONT_SmartHabitTracker/index.html"
click node_web_script "https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/FRONT_SmartHabitTracker/src/js/script.js"

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_main,node_tracker,node_add_dialog,node_view_dialog,node_user toneBlue
class node_habit toneAmber
class node_service,node_csv toneMint
class node_web_page,node_web_script toneRose
class node_browser_user toneIndigo
```

## Components

### Desktop interface

- [Application launcher](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/Main.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/Main.java`
- [Habit tracker UI](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/HabitTrackerUI.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/HabitTrackerUI.java`
- [Add habit dialog](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/AddHabitDialog.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/AddHabitDialog.java`
- [Habit detail dialog](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/ViewHabitDialog.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/ui/ViewHabitDialog.java`

### Habit domain

- [Habit state](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/model/Habit.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/model/Habit.java`

### CSV persistence

- [Habit operations](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/HabitService.java): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/HabitService.java`
- [Habit CSV](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/data.csv): `DVeliks_ACubacins_DP2-2/habit/src/main/java/com/smarthabittracker/services/data.csv`

### Web guide

- [Tracker guide site](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/FRONT_SmartHabitTracker/index.html): `FRONT_SmartHabitTracker/index.html`
- [Guide interactions](https://github.com/23dp2acuba/dveliks_acubacins_dp2-2/blob/main/FRONT_SmartHabitTracker/src/js/script.js): `FRONT_SmartHabitTracker/src/js/script.js`

### Other components

- **User**
- **Website visitor**

## Connections

- User → Application launcher: launches
- Application launcher → Habit tracker UI: launches UI
- User → Habit tracker UI: uses
- Habit tracker UI → Habit operations: loads habits
- Habit operations → Habit CSV: reads
- Habit tracker UI → Add habit dialog: opens
- Add habit dialog → Habit operations: adds habit
- Habit tracker UI → Habit detail dialog: opens
- Habit tracker UI → Habit operations: completes or deletes
- Habit operations → Habit state: updates state
- Habit operations → Habit CSV: writes
- Habit tracker UI → Habit state: displays progress
- Website visitor → Tracker guide site: views
- Tracker guide site → Guide interactions: uses interactions
