# deticek/studybee architecture

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

- Interactive diagram: https://gitdiagram.com/deticek/studybee
- Repository: https://github.com/deticek/studybee

## Overview

StudyBee is an Android Pomodoro focus and productivity app. Its documented user-facing capabilities are timed work sessions, session history, statistics and streaks, plus sound and appearance settings. The tree identifies likely UI, timer, session, storage, notification, and audio components, but source excerpts do not show how they call one another. The map therefore groups those components by apparent responsibility without asserting runtime wiring; statistics and streak implementation is not identifiable from the available evidence.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App interface"]
  node_main["Main activity<br/>[MainActivity.java]"]
  node_home["Home screen<br/>[Home.java]"]
  node_info["Info screen<br/>[Info.java]"]
  node_settings["Settings screen<br/>[Nastavitve.java]"]
  node_sessions["Session adapter"]
end

subgraph group_focus["Focus sessions"]
  node_timer["Pomodoro timer<br/>[Timer.java]"]
  node_focusmgr["Focus manager<br/>[FocusManager.java]"]
  node_session["Session model<br/>[Session.java]"]
end

subgraph group_support["State and settings"]
  node_database[("Local database")]
  node_notifications["Notifications<br/>[Notifications.java]"]
  node_sound["Sound settings<br/>[Sound.java]"]
  node_soundplayer["Sound playback<br/>[SoundPlayer.java]"]
end

node_user(("User"))

click node_main "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/MainActivity.java"
click node_home "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Home.java"
click node_info "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Info.java"
click node_settings "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Nastavitve.java"
click node_timer "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Timer.java"
click node_focusmgr "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/FocusManager.java"
click node_session "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Session.java"
click node_sessions "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/SessionAdapter.java"
click node_database "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/DatabaseHelper.java"
click node_notifications "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Notifications.java"
click node_sound "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Sound.java"
click node_soundplayer "https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/SoundPlayer.java"

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_home,node_info,node_settings,node_sessions,node_user toneBlue
class node_timer,node_focusmgr,node_session toneAmber
class node_database,node_notifications,node_sound,node_soundplayer toneMint
```

## Components

### App interface

- [Main activity](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/MainActivity.java): `app/src/main/java/com/example/studybee/MainActivity.java`
- [Home screen](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Home.java): `app/src/main/java/com/example/studybee/Home.java`
- [Info screen](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Info.java): `app/src/main/java/com/example/studybee/Info.java`
- [Settings screen](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Nastavitve.java): `app/src/main/java/com/example/studybee/Nastavitve.java`
- [Session adapter](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/SessionAdapter.java): `app/src/main/java/com/example/studybee/SessionAdapter.java`

### Focus sessions

- [Pomodoro timer](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Timer.java): `app/src/main/java/com/example/studybee/Timer.java`
- [Focus manager](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/FocusManager.java): `app/src/main/java/com/example/studybee/FocusManager.java`
- [Session model](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Session.java): `app/src/main/java/com/example/studybee/Session.java`

### State and settings

- [Local database](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/DatabaseHelper.java): `app/src/main/java/com/example/studybee/DatabaseHelper.java`
- [Notifications](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Notifications.java): `app/src/main/java/com/example/studybee/Notifications.java`
- [Sound settings](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/Sound.java): `app/src/main/java/com/example/studybee/Sound.java`
- [Sound playback](https://github.com/deticek/studybee/blob/main/app/src/main/java/com/example/studybee/SoundPlayer.java): `app/src/main/java/com/example/studybee/SoundPlayer.java`

### Other components

- **User**
