# eyalmichaeli/searchmaccabidoc architecture

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

- Interactive diagram: https://gitdiagram.com/eyalmichaeli/searchmaccabidoc
- Repository: https://github.com/eyalmichaeli/searchmaccabidoc

## Overview

SearchMaccabiDoc is a scheduled browser-automation script for checking a Maccabi doctor’s appointment availability and notifying the user. The workflow reads credentials, doctor details and a booked-date threshold from configuration, navigates the Maccabi site, copies a displayed date, then sends a Telegram message; exceptions are also reported. The single script owns these stages, so the graph keeps them as responsibilities within one runtime component rather than implying separate services. The README mentions Slack as an alternative, but the sampled implementation shows Telegram only; broader integrations are not verified.

Main entry points: [`main.py`](https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/main.py) (Reminder runner), [`config.json`](https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/config.json) (Search settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Appointment reminder runtime"]
  node_config["Search settings<br/>[config.json]"]
  node_automation["Reminder runner<br/>[main.py]"]
  node_scheduler["24-hour scheduler<br/>[main.py]"]
end

node_user(("User"))
node_maccabi["Maccabi website"]
node_clipboard["Clipboard"]
node_telegram["Telegram"]

node_user -->|"enters details"| node_config
node_automation -->|"reads settings"| node_config
node_automation -->|"drives browser"| node_maccabi
node_automation -->|"reads date"| node_clipboard
node_automation -->|"sends alerts"| node_telegram
node_scheduler -->|"runs every 24h"| node_automation
node_automation -->|"reports errors"| node_telegram

click node_config "https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/config.json"
click node_automation "https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/main.py"
click node_scheduler "https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/main.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_config,node_automation,node_scheduler,node_user toneBlue
class node_maccabi,node_clipboard,node_telegram toneIndigo
```

## Components

### Appointment reminder runtime

- [Search settings](https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/config.json): `config.json`
- [Reminder runner](https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/main.py): `main.py`
- [24-hour scheduler](https://github.com/eyalmichaeli/searchmaccabidoc/blob/main/main.py): `main.py`

### Other components

- **User**
- **Maccabi website**
- **Clipboard**
- **Telegram**

## Connections

- User → Search settings: enters details (evidence: `README.md`)
- Reminder runner → Search settings: reads settings (evidence: `main.py`)
- Reminder runner → Maccabi website: drives browser (evidence: `main.py`)
- Reminder runner → Clipboard: reads date (evidence: `main.py`)
- Reminder runner → Telegram: sends alerts (evidence: `main.py`)
- 24-hour scheduler → Reminder runner: runs every 24h (evidence: `main.py`)
- Reminder runner → Telegram: reports errors (evidence: `main.py`)
