# darkveteran28/drona architecture

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

- Interactive diagram: https://gitdiagram.com/darkveteran28/drona
- Repository: https://github.com/darkveteran28/drona

## Overview

Drona is a macOS productivity-tracking app with learning and portfolio integrations and configurable widgets. Its intended workflow is to track app activity, classify it, summarize productivity, and present results in the dashboard; it also offers focus enforcement, learning analytics, and GitHub/LeetCode views. The sampled RuleEngine confirms classification, summary persistence, and widget updates, while the tree and README support the other feature areas. Several subsystem connections are omitted because their invoking code was not sampled.

Main entry points: [`Drona/Services/Intelligence/RuleEngine.swift`](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/RuleEngine.swift) (Activity rules), [`Drona/Views/ContentView.swift`](https://github.com/darkveteran28/drona/blob/main/Drona/Views/ContentView.swift) (Main interface), [`Drona/Services/Tracking/ActivityTracker.swift`](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Tracking/ActivityTracker.swift) (Activity tracking), [`Drona/DronaApp.swift`](https://github.com/darkveteran28/drona/blob/main/Drona/DronaApp.swift) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App experience"]
  node_app["App entry<br/>[DronaApp.swift]"]
  node_content["Main interface<br/>[ContentView.swift]"]
  node_dashboard["Productivity dashboard"]
  node_settingsview["Settings<br/>[SettingsView.swift]"]
  node_learningview["Learning views<br/>[LearningView.swift]"]
  node_settings["Settings manager"]
end

subgraph group_tracking["Tracking and focus"]
  node_tracker["Activity tracking"]
  node_enforcement["Focus enforcement<br/>[FocusMonitor.swift]"]
  node_violations["Violation logging"]
end

subgraph group_intelligence["Analytics and learning"]
  node_rules["Activity rules<br/>[RuleEngine.swift]"]
  node_classifier["Productivity classifier"]
  node_analytics["Productivity analytics"]
  node_behavior["Behavior analysis"]
  node_insights["Insights"]
  node_learning["Learning analytics"]
  node_achievement["Achievement detection"]
end

subgraph group_integrations["External integrations"]
  node_portfolio["GitHub portfolio"]
  node_githubservice["GitHub portfolio service"]
  node_leetservice["LeetCode service"]
end

subgraph group_widgets["Widgets and persistence"]
  node_history["Daily history"]
  node_shared["Widget summary sharing"]
  node_widgetrefresh["Widget refresh"]
  node_widgets["Widget extension"]
  node_storage[("Usage file storage")]
end

node_user(("User"))
node_github{{"GitHub API"}}
node_leetcode{{"LeetCode"}}

node_user -->|"launches"| node_app
node_app -->|"presents"| node_content
node_user -->|"uses"| node_content
node_user -->|"configures"| node_settingsview
node_content -->|"shows"| node_dashboard
node_content -->|"shows"| node_learningview
node_rules -->|"classifies"| node_classifier
node_rules -->|"saves summary"| node_history
node_rules -->|"saves summary"| node_shared
node_rules -->|"requests refresh"| node_widgetrefresh
node_githubservice -->|"fetches data"| node_github
node_leetservice -.->|"fetches data"| node_leetcode
node_shared -->|"provides summary"| node_widgets
node_widgetrefresh -->|"reloads timelines"| node_widgets
node_tracker -.->|"persists usage"| node_storage
node_settingsview -.->|"updates settings"| node_settings
node_portfolio -.->|"fetches portfolio"| node_githubservice
node_dashboard -.->|"displays analytics"| node_analytics
node_analytics -.->|"analyzes patterns"| node_behavior
node_behavior -.->|"generates insights"| node_insights
node_learningview -.->|"shows learning"| node_learning
node_learning -.->|"detects milestones"| node_achievement
node_tracker -.->|"monitors focus"| node_enforcement
node_enforcement -.->|"logs violations"| node_violations

click node_app "https://github.com/darkveteran28/drona/blob/main/Drona/DronaApp.swift"
click node_content "https://github.com/darkveteran28/drona/blob/main/Drona/Views/ContentView.swift"
click node_dashboard "https://github.com/darkveteran28/drona/blob/main/Drona/Views/Dashboard/DashboardView.swift"
click node_settingsview "https://github.com/darkveteran28/drona/blob/main/Drona/Views/Settings/SettingsView.swift"
click node_tracker "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Tracking/ActivityTracker.swift"
click node_enforcement "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Enforcement/FocusMonitor.swift"
click node_violations "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Enforcement/ViolationLogger.swift"
click node_rules "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/RuleEngine.swift"
click node_classifier "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/ProductivityClassifier.swift"
click node_history "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Storage/HistoryManager.swift"
click node_analytics "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/AnalyticsEngine.swift"
click node_behavior "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/BehaviorAnalyzer.swift"
click node_insights "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/InsightGenerator.swift"
click node_learning "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/LearningAnalyticsEngine.swift"
click node_achievement "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/AchievementEngine.swift"
click node_learningview "https://github.com/darkveteran28/drona/blob/main/Drona/Views/Learning/LearningView.swift"
click node_portfolio "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/PortfolioManager.swift"
click node_githubservice "https://github.com/darkveteran28/drona/blob/main/Drona/Integrations/GitHubPortfolioService.swift"
click node_leetservice "https://github.com/darkveteran28/drona/blob/main/Drona/Integrations/LeetCodeService.swift"
click node_shared "https://github.com/darkveteran28/drona/blob/main/Drona/Shared/SharedDataProvider.swift"
click node_widgetrefresh "https://github.com/darkveteran28/drona/blob/main/Drona/Shared/WidgetRefreshManager.swift"
click node_widgets "https://github.com/darkveteran28/drona/blob/main/DronaWidgetExtension/DronaWidgetExtension.swift"
click node_storage "https://github.com/darkveteran28/drona/blob/main/Drona/Services/Storage/StorageManager.swift"
click node_settings "https://github.com/darkveteran28/drona/blob/main/Drona/Services/SettingsManager.swift"

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_content,node_dashboard,node_settingsview,node_learningview,node_settings,node_user toneBlue
class node_tracker,node_enforcement,node_violations toneAmber
class node_rules,node_classifier,node_analytics,node_behavior,node_insights,node_learning,node_achievement,node_github toneMint
class node_portfolio,node_githubservice,node_leetservice toneRose
class node_history,node_shared,node_widgetrefresh,node_widgets,node_storage,node_leetcode toneIndigo
```

## Components

### App experience

- [App entry](https://github.com/darkveteran28/drona/blob/main/Drona/DronaApp.swift): `Drona/DronaApp.swift`
- [Main interface](https://github.com/darkveteran28/drona/blob/main/Drona/Views/ContentView.swift): `Drona/Views/ContentView.swift`
- [Productivity dashboard](https://github.com/darkveteran28/drona/blob/main/Drona/Views/Dashboard/DashboardView.swift): `Drona/Views/Dashboard/DashboardView.swift`
- [Settings](https://github.com/darkveteran28/drona/blob/main/Drona/Views/Settings/SettingsView.swift): `Drona/Views/Settings/SettingsView.swift`
- [Learning views](https://github.com/darkveteran28/drona/blob/main/Drona/Views/Learning/LearningView.swift): `Drona/Views/Learning/LearningView.swift`
- [Settings manager](https://github.com/darkveteran28/drona/blob/main/Drona/Services/SettingsManager.swift): `Drona/Services/SettingsManager.swift`

### Tracking and focus

- [Activity tracking](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Tracking/ActivityTracker.swift): `Drona/Services/Tracking/ActivityTracker.swift`
- [Focus enforcement](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Enforcement/FocusMonitor.swift): `Drona/Services/Enforcement/FocusMonitor.swift`
- [Violation logging](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Enforcement/ViolationLogger.swift): `Drona/Services/Enforcement/ViolationLogger.swift`

### Analytics and learning

- [Activity rules](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/RuleEngine.swift): `Drona/Services/Intelligence/RuleEngine.swift`
- [Productivity classifier](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/ProductivityClassifier.swift): `Drona/Services/Intelligence/ProductivityClassifier.swift`
- [Productivity analytics](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/AnalyticsEngine.swift): `Drona/Services/Intelligence/AnalyticsEngine.swift`
- [Behavior analysis](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/BehaviorAnalyzer.swift): `Drona/Services/Intelligence/BehaviorAnalyzer.swift`
- [Insights](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/InsightGenerator.swift): `Drona/Services/Intelligence/InsightGenerator.swift`
- [Learning analytics](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/LearningAnalyticsEngine.swift): `Drona/Services/Intelligence/LearningAnalyticsEngine.swift`
- [Achievement detection](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/AchievementEngine.swift): `Drona/Services/Intelligence/AchievementEngine.swift`

### External integrations

- [GitHub portfolio](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Intelligence/PortfolioManager.swift): `Drona/Services/Intelligence/PortfolioManager.swift`
- [GitHub portfolio service](https://github.com/darkveteran28/drona/blob/main/Drona/Integrations/GitHubPortfolioService.swift): `Drona/Integrations/GitHubPortfolioService.swift`
- [LeetCode service](https://github.com/darkveteran28/drona/blob/main/Drona/Integrations/LeetCodeService.swift): `Drona/Integrations/LeetCodeService.swift`

### Widgets and persistence

- [Daily history](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Storage/HistoryManager.swift): `Drona/Services/Storage/HistoryManager.swift`
- [Widget summary sharing](https://github.com/darkveteran28/drona/blob/main/Drona/Shared/SharedDataProvider.swift): `Drona/Shared/SharedDataProvider.swift`
- [Widget refresh](https://github.com/darkveteran28/drona/blob/main/Drona/Shared/WidgetRefreshManager.swift): `Drona/Shared/WidgetRefreshManager.swift`
- [Widget extension](https://github.com/darkveteran28/drona/blob/main/DronaWidgetExtension/DronaWidgetExtension.swift): `DronaWidgetExtension/DronaWidgetExtension.swift`
- [Usage file storage](https://github.com/darkveteran28/drona/blob/main/Drona/Services/Storage/StorageManager.swift): `Drona/Services/Storage/StorageManager.swift`

### Other components

- **User**
- **GitHub API**
- **LeetCode**

## Connections

- User → App entry: launches
- App entry → Main interface: presents
- User → Main interface: uses
- User → Settings: configures
- Main interface → Productivity dashboard: shows
- Main interface → Learning views: shows
- Activity rules → Productivity classifier: classifies
- Activity rules → Daily history: saves summary
- Activity rules → Widget summary sharing: saves summary
- Activity rules → Widget refresh: requests refresh
- GitHub portfolio service → GitHub API: fetches data
- LeetCode service → LeetCode: fetches data
- Widget summary sharing → Widget extension: provides summary
- Widget refresh → Widget extension: reloads timelines
- Activity tracking → Usage file storage: persists usage
- Settings → Settings manager: updates settings
- GitHub portfolio → GitHub portfolio service: fetches portfolio
- Productivity dashboard → Productivity analytics: displays analytics
- Productivity analytics → Behavior analysis: analyzes patterns
- Behavior analysis → Insights: generates insights
- Learning views → Learning analytics: shows learning
- Learning analytics → Achievement detection: detects milestones
- Activity tracking → Focus enforcement: monitors focus
- Focus enforcement → Violation logging: logs violations
