# miftahr149/habit-tracker architecture

> Architecture diagram of the GitHub repository miftahr149/habit-tracker, 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/miftahr149/habit-tracker
- Repository: https://github.com/miftahr149/habit-tracker

## Overview

Habit Tracker is a Tkinter application for tracking habits. Its visible product areas cover browsing habits, creating habits with properties, and viewing or editing daily habits. The documented launch path is main.py, which instantiates the application exported by build. Storage utilities provide JSON persistence and in-memory image, variable, and function storage. The README is brief and most UI source was not sampled, so relationships among those UI areas and their use of storage are not asserted.

Main entry points: [`main.py`](https://github.com/miftahr149/habit-tracker/blob/main/main.py) (Program entry), [`utility/json_storage.py`](https://github.com/miftahr149/habit-tracker/blob/main/utility/json_storage.py) (JSON file access), [`build/__init__.py`](https://github.com/miftahr149/habit-tracker/blob/main/build/__init__.py) (Tkinter app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Application launch"]
  node_main["Program entry<br/>[main.py]"]
  node_app["Tkinter app<br/>[__init__.py]"]
end

subgraph group_habits["Habit workflows"]
  node_menu["Habit list<br/>[habit_list.py]"]
  node_menu_options["Menu options<br/>[option.py]"]
  node_create["Create habit"]
  node_properties["Habit properties"]
  node_habit_page["Habit page"]
  node_daily_habit["Daily habit<br/>[daily_habit.py]"]
  node_edit_daily["Edit daily habit"]
end

subgraph group_support["Storage utilities"]
  node_json_storage["JSON storage<br/>[json_storage.py]"]
  node_open_json["JSON file access<br/>[json_storage.py]"]
  node_image_storage["Image cache<br/>[image_storage.py]"]
  node_variable_storage["Variable storage"]
  node_function_storage["Function storage<br/>[stack.py]"]
end

node_user(("User"))
node_json_files[("Local JSON files")]

node_user -->|"launches"| node_main
node_main -->|"instantiates"| node_app
node_json_storage -->|"creates or loads"| node_open_json
node_open_json -->|"reads and writes"| node_json_files

click node_main "https://github.com/miftahr149/habit-tracker/blob/main/main.py"
click node_app "https://github.com/miftahr149/habit-tracker/blob/main/build/__init__.py"
click node_menu "https://github.com/miftahr149/habit-tracker/blob/main/build/main_menu/habit_list.py"
click node_menu_options "https://github.com/miftahr149/habit-tracker/blob/main/build/main_menu/option.py"
click node_create "https://github.com/miftahr149/habit-tracker/tree/main/build/create_habit"
click node_properties "https://github.com/miftahr149/habit-tracker/tree/main/build/create_habit/body"
click node_habit_page "https://github.com/miftahr149/habit-tracker/tree/main/build/habit_page"
click node_daily_habit "https://github.com/miftahr149/habit-tracker/blob/main/build/habit_page/body/daily_habit.py"
click node_edit_daily "https://github.com/miftahr149/habit-tracker/blob/main/build/habit_page/body/edit_daily_habit.py"
click node_json_storage "https://github.com/miftahr149/habit-tracker/blob/main/utility/json_storage.py"
click node_open_json "https://github.com/miftahr149/habit-tracker/blob/main/utility/json_storage.py"
click node_image_storage "https://github.com/miftahr149/habit-tracker/blob/main/utility/image_storage.py"
click node_variable_storage "https://github.com/miftahr149/habit-tracker/blob/main/utility/variable_storage.py"
click node_function_storage "https://github.com/miftahr149/habit-tracker/blob/main/utility/stack.py"

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_app,node_user toneBlue
class node_menu,node_menu_options,node_create,node_properties,node_habit_page,node_daily_habit,node_edit_daily,node_json_files toneAmber
class node_json_storage,node_open_json,node_image_storage,node_variable_storage,node_function_storage toneMint
```

## Components

### Application launch

- [Program entry](https://github.com/miftahr149/habit-tracker/blob/main/main.py): `main.py`
- [Tkinter app](https://github.com/miftahr149/habit-tracker/blob/main/build/__init__.py): `build/__init__.py`

### Habit workflows

- [Habit list](https://github.com/miftahr149/habit-tracker/blob/main/build/main_menu/habit_list.py): `build/main_menu/habit_list.py`
- [Menu options](https://github.com/miftahr149/habit-tracker/blob/main/build/main_menu/option.py): `build/main_menu/option.py`
- [Create habit](https://github.com/miftahr149/habit-tracker/tree/main/build/create_habit): `build/create_habit`
- [Habit properties](https://github.com/miftahr149/habit-tracker/tree/main/build/create_habit/body): `build/create_habit/body`
- [Habit page](https://github.com/miftahr149/habit-tracker/tree/main/build/habit_page): `build/habit_page`
- [Daily habit](https://github.com/miftahr149/habit-tracker/blob/main/build/habit_page/body/daily_habit.py): `build/habit_page/body/daily_habit.py`
- [Edit daily habit](https://github.com/miftahr149/habit-tracker/blob/main/build/habit_page/body/edit_daily_habit.py): `build/habit_page/body/edit_daily_habit.py`

### Storage utilities

- [JSON storage](https://github.com/miftahr149/habit-tracker/blob/main/utility/json_storage.py): `utility/json_storage.py`
- [JSON file access](https://github.com/miftahr149/habit-tracker/blob/main/utility/json_storage.py): `utility/json_storage.py`
- [Image cache](https://github.com/miftahr149/habit-tracker/blob/main/utility/image_storage.py): `utility/image_storage.py`
- [Variable storage](https://github.com/miftahr149/habit-tracker/blob/main/utility/variable_storage.py): `utility/variable_storage.py`
- [Function storage](https://github.com/miftahr149/habit-tracker/blob/main/utility/stack.py): `utility/stack.py`

### Other components

- **User**
- **Local JSON files**

## Connections

- User → Program entry: launches
- Program entry → Tkinter app: instantiates
- JSON storage → JSON file access: creates or loads
- JSON file access → Local JSON files: reads and writes
