# bombervan11/schedules-pytelebot architecture

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

- Interactive diagram: https://gitdiagram.com/bombervan11/schedules-pytelebot
- Repository: https://github.com/bombervan11/schedules-pytelebot

## Overview

This is a small Telegram schedule bot. Users start a conversation, choose a weekday or another schedule option, then receive timetable information, subject details, or meeting links. The sampled Bot.py code handles these interactions directly; config.py supplies its token, while start.py is an optional console launcher. The tree includes Schedule.xlsx, but the sampled source does not show it being read, so no connection to runtime data is asserted.

Main entry points: [`Bot.py`](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py) (Bot handlers), [`start.py`](https://github.com/bombervan11/schedules-pytelebot/blob/main/start.py) (Console launcher), [`config.py`](https://github.com/bombervan11/schedules-pytelebot/blob/main/config.py) (Bot token), [`AnimatedSticker.tgs`](https://github.com/bombervan11/schedules-pytelebot/blob/main/AnimatedSticker.tgs) (Welcome sticker)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime setup"]
  node_launcher["Console launcher<br/>[start.py]"]
  node_config["Bot token<br/>[config.py]"]
end

subgraph group_interaction["Bot interactions"]
  node_bot["Bot handlers<br/>[Bot.py]"]
end

subgraph group_content["Schedule content"]
  node_weekdays["Weekday schedules<br/>[Bot.py]"]
  node_bell_times["Bell timetable<br/>[Bot.py]"]
  node_subject_info["Subject details<br/>[Bot.py]"]
  node_meeting_links["Meeting options<br/>[Bot.py]"]
  node_sticker["Welcome sticker"]
  node_schedule_file["Schedule workbook<br/>[Schedule.xlsx]"]
end

node_user(("Telegram user"))
node_telegram["Telegram Bot API"]

node_user -->|"sends updates"| node_telegram
node_telegram -->|"dispatches updates"| node_bot
node_bot -->|"sends replies"| node_telegram
node_bot -->|"reads token"| node_config
node_launcher -->|"starts process"| node_bot
node_bot -->|"selects schedule"| node_weekdays
node_bot -->|"sends times"| node_bell_times
node_bot -->|"answers callbacks"| node_subject_info
node_bot -->|"sends options"| node_meeting_links
node_bot -->|"reads sticker"| node_sticker

click node_launcher "https://github.com/bombervan11/schedules-pytelebot/blob/main/start.py"
click node_config "https://github.com/bombervan11/schedules-pytelebot/blob/main/config.py"
click node_bot "https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py"
click node_weekdays "https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py"
click node_bell_times "https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py"
click node_subject_info "https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py"
click node_meeting_links "https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py"
click node_sticker "https://github.com/bombervan11/schedules-pytelebot/blob/main/AnimatedSticker.tgs"
click node_schedule_file "https://github.com/bombervan11/schedules-pytelebot/blob/main/Schedule.xlsx"

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_launcher,node_config,node_user toneBlue
class node_bot toneAmber
class node_weekdays,node_bell_times,node_subject_info,node_meeting_links,node_sticker,node_schedule_file,node_telegram toneMint
```

## Components

### Runtime setup

- [Console launcher](https://github.com/bombervan11/schedules-pytelebot/blob/main/start.py): `start.py`
- [Bot token](https://github.com/bombervan11/schedules-pytelebot/blob/main/config.py): `config.py`

### Bot interactions

- [Bot handlers](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py): `Bot.py`

### Schedule content

- [Weekday schedules](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py): `Bot.py`
- [Bell timetable](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py): `Bot.py`
- [Subject details](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py): `Bot.py`
- [Meeting options](https://github.com/bombervan11/schedules-pytelebot/blob/main/Bot.py): `Bot.py`
- [Welcome sticker](https://github.com/bombervan11/schedules-pytelebot/blob/main/AnimatedSticker.tgs): `AnimatedSticker.tgs`
- [Schedule workbook](https://github.com/bombervan11/schedules-pytelebot/blob/main/Schedule.xlsx): `Schedule.xlsx`

### Other components

- **Telegram user**
- **Telegram Bot API**

## Connections

- Telegram user → Telegram Bot API: sends updates
- Telegram Bot API → Bot handlers: dispatches updates
- Bot handlers → Telegram Bot API: sends replies
- Bot handlers → Bot token: reads token
- Console launcher → Bot handlers: starts process
- Bot handlers → Weekday schedules: selects schedule
- Bot handlers → Bell timetable: sends times
- Bot handlers → Subject details: answers callbacks
- Bot handlers → Meeting options: sends options
- Bot handlers → Welcome sticker: reads sticker
