Skip to content

fedorabakumets/telegram-bot-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,145 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Bot Builder

Typing SVG

Создавайте Telegram ботов без программирования!

MIT License Node.js Version TypeScript React PostgreSQL

GitHub stars GitHub forks GitHub issues Visitors

Визуальный конструктор с drag-and-drop интерфейсом, где вы просто перетаскиваете блоки на холст, а готовый бот появляется сам.

💡 Идеально подходит для малого бизнеса, фрилансеров и тех, кто хочет быстро запустить бота, не изучая программирование.

📞 Связь с нами

GitHub Issues GitHub Discussions Telegram Chat Telegram Channel

🏗️ Архитектура системы

Architecture Pattern API

🎨 Frontend

React + TypeScript

Визуальный редактор


• Drag-and-drop интерфейс
• Панель настроек блоков
• Управление проектами

🖥️ Backend

Express.js + Node.js

API сервер


• REST API для данных
• Генерация Python кода
• Загрузка медиафайлов

🗄️ База данных

PostgreSQL + Drizzle

Хранение данных


• Проекты и схемы ботов
• Пользователи и настройки
• Медиафайлы

☁️ Деплой

Railway + Python

Запуск ботов


• Автогенерация кода
• Готовые Python боты
• Облачный хостинг

🔄 Поток данных

Step 1 Arrow Step 2 Arrow Step 3 Arrow Step 4
Step 5 Arrow Step 6 Arrow Step 7
📋 Подробное описание потока (нажми для раскрытия)
  1. 👤 Пользователь создает схему бота в визуальном редакторе
  2. 🎨 Frontend отправляет изменения через WebSocket для реального времени
  3. 📡 API Server валидирует данные и сохраняет в PostgreSQL
  4. 🤖 Generator преобразует схему в Python код с aiogram
  5. ☁️ Deployment автоматически деплоит на Railway
  6. 📱 Telegram получает webhook и начинает обрабатывать сообщения
  7. 📊 Analytics собирает статистику использования в реальном времени

📁 Структура проекта

Показать структуру проекта
📦 telegram-bot-builder/
┣ 📂 client/                     # 🎨 React Frontend
┃ ┣ 📂 components/               # UI компоненты
┃ ┃ ┣ 📂 editor/                 # Визуальный редактор
┃ ┃ ┃ ┣ 📂 bot/                  # Компоненты бота
┃ ┃ ┃ ┣ 📂 canvas/               # Холст редактора
┃ ┃ ┃ ┣ 📂 code/                 # Редактор кода
┃ ┃ ┃ ┣ 📂 database/             # Управление БД
┃ ┃ ┃ ┣ 📂 google-sheets/        # Интеграция с Google Sheets
┃ ┃ ┃ ┣ 📂 groups/               # Управление группами
┃ ┃ ┃ ┣ 📂 properties/           # Панель свойств
┃ ┃ ┃ ┣ 📂 template/             # Шаблоны
┃ ┃ ┃ ┗ 📄 emoji-picker.tsx      # Выбор эмодзи
┃ ┃ ┣ 📂 layout/                 # Компоненты макета
┃ ┃ ┣ 📂 media/                  # Медиа компоненты
┃ ┃ ┣ 📂 ui/                     # Базовые UI элементы
┃ ┃ ┗ 📄 theme-provider.tsx      # Провайдер темы
┃ ┣ 📂 contexts/                 # React контексты
┃ ┣ 📂 hooks/                    # React хуки
┃ ┣ 📂 lib/                      # Библиотеки и утилиты
┃ ┃ ┣ 📂 generate/               # Генерация кода
┃ ┃ ┣ 📂 database/               # Работа с БД
┃ ┃ ┣ 📂 MessageHandlers/        # Обработчики сообщений
┃ ┃ ┣ 📂 CommandHandler/         # Обработчики команд
┃ ┃ ┣ 📂 Keyboard/               # Генерация клавиатур
┃ ┃ ┣ 📂 MediaHandler/           # Обработка медиа
┃ ┃ ┣ 📂 UserHandler/            # Обработка пользователей
┃ ┃ ┣ 📂 Conditional/            # Условная логика
┃ ┃ ┣ 📂 scaffolding/            # Каркас генерации
┃ ┃ ┗ 📄 bot-generator.ts        # Генератор ботов
┃ ┣ 📂 pages/                    # Страницы приложения
┃ ┣ 📂 types/                    # TypeScript типы
┃ ┣ 📂 utils/                    # Утилиты
┃ ┣ 📄 App.tsx                   # Главный компонент
┃ ┗ 📄 main.tsx                  # Точка входа
┣ 📂 server/                     # 🖥️ Express Backend
┃ ┣ 📂 auth/                     # Аутентификация
┃ ┣ 📂 bots/                     # Управление ботами
┃ ┃ ┣ 📄 startBot.ts             # Запуск бота
┃ ┃ ┣ 📄 stopBot.ts              # Остановка бота
┃ ┃ ┗ 📄 restartBotIfRunning.ts  # Перезапуск бота
┃ ┣ 📂 database/                 # Работа с БД
┃ ┃ ┣ 📄 db.ts                   # Подключение к БД
┃ ┃ ┣ 📄 db-routes.ts            # Маршруты БД
┃ ┃ ┣ 📄 db-utils.ts             # Утилиты БД
┃ ┃ ┗ 📄 init-db.ts              # Инициализация БД
┃ ┣ 📂 files/                    # Работа с файлами
┃ ┣ 📂 google-sheets/            # Интеграция с Google Sheets
┃ ┣ 📂 routes/                   # API маршруты
┃ ┃ ┣ 📄 routes.ts               # Основные маршруты
┃ ┃ ┣ 📄 setupProjectRoutes.ts   # Маршруты проектов
┃ ┃ ┣ 📄 setupBotManagementRoutes.ts  # Управление ботами
┃ ┃ ┗ 📄 setupGithubPushRoute.ts # GitHub синхронизация
┃ ┣ 📂 storages/                 # Хранилища
┃ ┣ 📂 telegram/                 # Telegram API
┃ ┃ ┣ 📄 telegram-client.ts      # Клиент Telegram
┃ ┃ ┣ 📄 telegram-media.ts       # Медиа Telegram
┃ ┃ ┗ 📄 auth-middleware.ts      # Аутентификация Telegram
┃ ┣ 📂 terminal/                 # Терминал
┃ ┣ 📂 utils/                    # Утилиты сервера
┃ ┗ 📄 index.ts                  # Точка входа сервера
┣ 📂 shared/                     # 🔗 Общие модули
┃ ┣ 📄 schema.ts                 # Drizzle ORM схемы
┃ ┗ 📄 scaffolding-wrapper.ts    # Обёртка генерации
┣ 📂 config/                     # ⚙️ Конфигурация
┃ ┗ 📂 google-auth/              # Google OAuth
┣ 📂 bots/                       # 🤖 Сгенерированные боты
┃ ┗ 📄 *.py                      # Python боты
┣ 📂 migrations/                 # 🗄️ Миграции БД
┣ 📂 uploads/                    # 📁 Загруженные файлы
┣ 📂 assets/                     # 🖼️ Ресурсы
┃ ┗ 📂 images/                   # Изображения
┣ 📂 docs/                       # 📚 Документация
┃ ┣ 📂 deployment/               # Деплой
┃ ┣ 📂 development/              # Разработка
┃ ┣ 📂 features/                 # Функции
┃ ┣ 📂 analysis/                 # Анализ
┃ ┗ 📄 COMPONENTS.md             # Компоненты
┣ 📂 scripts/                    # 📜 Скрипты
┣ 📂 dist/                       # 📦 Сбилденные файлы
┣ 📄 package.json                # 📦 Зависимости Node.js
┣ 📄 tsconfig.json               # ⚙️ Настройки TypeScript
┣ 📄 vite.config.ts              # ⚡ Конфигурация Vite
┣ 📄 drizzle.config.ts           # 🗄️ Настройки Drizzle ORM
┗ 📄 .env.example                # 🔐 Пример переменных окружения

📡 API Endpoints

API JSON Auth
🔗 Основные API маршруты (нажми для раскрытия)
🎯 Категория 📡 Endpoint 📝 Описание
📋 Проекты GET /api/projects Список проектов пользователя
POST /api/projects Создать новый проект
PUT /api/projects/{id} Обновить проект
DELETE /api/projects/{id} Удалить проект
🧩 Узлы GET /api/projects/{id}/nodes Получить схему бота
POST /api/projects/{id}/nodes Добавить узел
PUT /api/projects/{id}/nodes/{nodeId} Обновить узел
DELETE /api/projects/{id}/nodes/{nodeId} Удалить узел
🤖 Боты POST /api/bots/{id}/generate Сгенерировать Python код
POST /api/bots/{id}/deploy Задеплоить бота
GET /api/bots/{id}/status Статус бота
POST /api/bots/{id}/stop Остановить бота
📁 Медиа POST /api/media/upload Загрузить файл
GET /api/media/{id} Скачать файл
DELETE /api/media/{id} Удалить файл
📊 Статистика GET /api/bots/{id}/stats Статистика использования
GET /api/bots/{id}/users Пользователи бота
GET /api/bots/{id}/messages История сообщений

🎯 Основные возможности

  • 🎨 Создавайте ботов перетаскиванием - никакого кода, просто перемещайте блоки мышкой
  • 💬 Отправляйте сообщения - с форматированием, кнопками и медиафайлами
  • 🎨 Красивые интерфейсы - встроенные и обычные клавиатуры
  • 📁 Работа с медиа - фото, видео, аудио, документы
  • 📝 Сбор данных - формы для сбора информации от пользователей
  • 🧠 Логика и условия - "если произошло то-то, то сделай это"
  • 👥 База пользователей - автоматически собирает информацию о пользователях
  • 📊 Статистика - смотрите, кто написал боту, какие команды использует
  • 🎭 Светлая и темная темы - удобно работать днем и ночью
  • 📱 Работает на мобильных телефонах - создавайте ботов с планшета или смартфона, интерфейс адаптирован для всех устройств

☁️ Деплой в облако

Railway (рекомендуется)

  1. Зарегистрируйтесь на Railway.app
  2. Создайте новый проект
  3. Подключите репозиторий с кодом
  4. Добавьте переменные окружения (см. docs/deployment/RAILWAY_DEPLOY.md)
  5. Создайте PostgreSQL базу данных
  6. Запустите миграции базы данных

Подробные инструкции по деплою на Railway смотрите в файле docs/deployment/RAILWAY_DEPLOY.md.


📜 Пошаговая инструкция

Требования

  • Node.js ≥ 18.0.0
  • PostgreSQL ≥ 15
  • Python ≥ 3.10 (для сгенерированных ботов)
  • Git
Шаг 1: Обновление системы и установка зависимостей
🐧 Linux (Ubuntu/Debian) 🏁 Windows 🍎 macOS

Способ 1: Через терминал (рекомендуется):

Ubuntu/Debian:

sudo apt update && sudo apt install -y git

Fedora/CentOS:

sudo dnf install -y git

Arch Linux:

sudo pacman -S git

Способ 2: С сайта:

  • Перейдите на git-scm.com/install/linux
  • Выберите ваш дистрибутив
  • Следуйте инструкции по установке

Проверка установки:

git --version

Способ 1: Через winget (рекомендуется):

winget install --id Git.Git -e --source winget

Способ 2: Через установщик:

  • Скачайте с git-scm.com/install/windows
  • Запустите .exe файл
  • Оставьте настройки по умолчанию (нажимайте "Next")

Проверка установки: Откройте PowerShell от имени администратора (Win + X → "Терминал (администратор)"):

git --version

Если версия не отображается, перезапустите PowerShell

Способ 1: Через Homebrew (рекомендуется):

# Установка Homebrew (если не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Установка Git
brew install git

Способ 2: С сайта:

  • Перейдите на git-scm.com/install/mac
  • Скачайте установщик для macOS (.dmg)
  • Откройте .dmg файл и перетащите Git в Applications

Проверка установки:

git --version

Homebrew — менеджер пакетов для macOS, упрощает установку программ


Шаг 2: Установка Node.js LTS
🐧 Linux 🏁 Windows 🍎 macOS

Способ 1: Через терминал (рекомендуется):

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
node -v && npm -v

Способ 2: С сайта:

  • Перейдите на nodejs.org
  • Скачайте .deb или .rpm пакет
  • Установите: sudo dpkg -i nodejs_*.deb

Способ 1: Через winget:

winget install OpenJS.NodeJS.LTS
node -v && npm -v

Способ 2: С сайта:

  • Перейдите на nodejs.org
  • Скачайте установщик (.msi)
  • Запустите и следуйте инструкциям
  • Проверьте установку:
node -v
npm -v

Способ 1: Через Homebrew:

brew install node@lts
node -v && npm -v

Способ 2: С сайта:

  • Перейдите на nodejs.org
  • Скачайте установщик (.pkg)
  • Запустите и следуйте инструкциям

Шаг 3: Установка PostgreSQL
🐧 Linux 🏁 Windows 🍎 macOS

Способ 1: Через терминал:

sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql

Способ 2: Официальный репозиторий:

Способ 1: Через winget:

winget install PostgreSQL.PostgreSQL

Способ 2: С сайта:

  • Перейдите на postgresql.org/download/windows
  • Скачайте установщик
  • Запустите и запомните пароль postgres

Способ 1: Через Homebrew:

brew install postgresql@15
brew services start postgresql@15

Способ 2: С сайта:

  • Перейдите на postgresql.org/download/macosx
  • Скачайте установщик
  • Запустите и следуйте инструкциям

Шаг 4: Установка Python 3
🐧 Linux 🏁 Windows 🍎 macOS

Способ 1: Через терминал:

sudo apt install -y python3 python3-venv python3-pip
python3 --version

Способ 2: Официальный сайт:

  • Посетите python.org/downloads
  • Выберите версию для Linux
  • Следуйте инструкции по компиляции

Способ 1: Через winget:

winget install Python.Python.3.12

Способ 2: С сайта:

  • Перейдите на python.org/downloads
  • Скачайте установщик
  • При установке отметьте "Add Python to PATH"
  • Проверьте установку:
python --version

Способ 1: Через Homebrew:

brew install python
python3 --version

Способ 2: С сайта:

  • Перейдите на python.org/downloads
  • Скачайте установщик для macOS (.pkg)
  • Запустите и следуйте инструкциям

Шаг 5: Настройка базы данных
🐧 Linux 🏁 Windows 🍎 macOS
sudo -u postgres psql
CREATE USER tbb WITH PASSWORD 'builder2025!' LOGIN;
CREATE DATABASE telegram_bot_builder OWNER tbb;
GRANT ALL PRIVILEGES ON DATABASE telegram_bot_builder TO tbb;
GRANT ALL ON SCHEMA public TO tbb;
\q
psql -U postgres
CREATE USER tbb WITH PASSWORD 'builder2025!' LOGIN;
CREATE DATABASE telegram_bot_builder OWNER tbb;
GRANT ALL PRIVILEGES ON DATABASE telegram_bot_builder TO tbb;
GRANT ALL ON SCHEMA public TO tbb;
\q
psql postgres
CREATE USER tbb WITH PASSWORD 'builder2025!' LOGIN;
CREATE DATABASE telegram_bot_builder OWNER tbb;
GRANT ALL PRIVILEGES ON DATABASE telegram_bot_builder TO tbb;
GRANT ALL ON SCHEMA public TO tbb;
\q

Шаг 6: Клонирование проекта
🐧 Linux 🏁 Windows 🍎 macOS
cd /opt
sudo git clone https://github.com/fedorabakumets/telegram-bot-builder.git
sudo chown -R "$USER":"$USER" telegram-bot-builder
cd telegram-bot-builder
mkdir C:\projects
cd C:\projects
git clone https://github.com/fedorabakumets/telegram-bot-builder.git
cd telegram-bot-builder
mkdir -p ~/projects
cd ~/projects
git clone https://github.com/fedorabakumets/telegram-bot-builder.git
cd telegram-bot-builder

Шаг 7: Настройка окружения

Пример .env для всех систем:

NODE_ENV=development
PORT=5000
DATABASE_URL=postgresql://tbb:builder2025!@localhost:5432/telegram_bot_builder
🐧 Linux 🏁 Windows 🍎 macOS
cp .env.example .env
nano .env
copy .env.example .env
notepad .env
cp .env.example .env
nano .env

Шаг 8: Установка зависимостей и запуск

1. Установка зависимостей:

npm install

2. Запуск приложения:

Режим Команда Описание
🧪 Разработка npm run dev Запуск с автоперезагрузкой при изменениях
🚀 Продакшен npm run buildnpm run start Сборка и запуск готовой версии

Готово! Приложение доступно по адресу: http://localhost:5000


🐳 Альтернатива: Docker (любая ОС)

Требования: Docker и Docker Compose

git clone https://github.com/fedorabakumets/telegram-bot-builder.git
cd telegram-bot-builder
docker compose up -d
docker compose logs -f

Полезные команды:

docker compose down        # Остановить
docker compose build --no-cache  # Пересобрать
docker compose logs -f     # Логи

Готово! Приложение доступно по адресу: http://localhost:5000

💡 Нужно обновить проект? См. 🔄 Как обновить проект с GitHub


🎓 Как создать своего первого бота?

Пошаговое руководство (нажми для раскрытия)

Шаг 1: Получите токен для бота

  1. Откройте Telegram и найдите @BotFather
  2. Напишите /newbot и следуйте инструкциям
  3. Вы получите токен вроде: 123456789:ABCdef...

Шаг 2: Откройте редактор

  • При первом запуске у вас уже есть проект по умолчанию с узлом "Старт"
  • Если нужен новый проект, откройте вкладку "Проекты" (слева) и нажмите кнопку "+ Новый"

Шаг 3: Добавьте токен бота

  1. В правой части нажмите кнопку "Бот"
  2. Вставьте токен, который вы получили от BotFather
  3. Токен сохранится автоматически

Шаг 4: Постройте сценарий бота

  1. Перетащите блок "Сообщение" на холст рядом с узлом "Старт"
  2. Напишите текст, который бот должен отправить
  3. В настройках блока укажите, что будет дальше:
    • Кнопки - для выбора вариантов ответа
    • Автопереход - перейти к другому блоку автоматически
    • Ожидание ввода - дождаться сообщения от пользователя
  4. Добавьте еще блоки и настройте переходы между ними

Шаг 5: Запустите бота

  1. Откройте вкладку "Бот" (справа внизу)
  2. Нажмите кнопку "Запустить"
  3. Откройте своего бота в Telegram
  4. Тестируйте и улучшайте!

🧩 Типы блоков

Элементы для построения (нажми для раскрытия)

📨 Сообщения и контент

Блок Что он делает
💬 Текстовое сообщение Отправляет текст пользователю (можно добавить медиафайлы)
🎭 Стикер Отправляет анимированный стикер
🎤 Голосовое сообщение Отправляет голосовое сообщение
📍 Геолокация Отправляет карту с координатами
📇 Контакт Поделиться контактом

📦 Медиафайлы в сообщениях

В свойствах каждого текстового сообщения вы можете загрузить и прикрепить:

  • 📸 Фотографии - изображения в формате JPG, PNG
  • 🎬 Видео - видеоролики
  • 🎵 Аудио файлы - музыка и голосовые записи
  • 📄 Документы - файлы PDF, Word, Excel и другие
  • 🎤 Аудиосообщения - голосовые сообщения от пользователя

Или используйте отдельный блок:

  • 🎤 Голосовое сообщение - специальный блок для отправки чистых аудио сообщений

Как использовать:

  1. Выберите блок "Текстовое сообщение"
  2. В панели свойств (справа) найдите раздел с медиафайлами
  3. Загрузите файл со своего компьютера
  4. Бот будет отправлять его вместе с текстом!

⚙️ Команды (можно добавлять свои!)

Встроенные команды: /start, /help, /settings, /menu

Важно: Вы можете добавить любые свои команды! Например:

  • /price - показать цены
  • /order - оформить заказ
  • /support - получить поддержку
  • /about - информация о компании

👥 Управление пользователями

  • Заблокировать пользователя - запретить участию в группе
  • Разблокировать - снять блокировку с участника
  • Заглушить пользователя - ограничить право голоса участника
  • Снять ограничения - восстановить права участника
  • Исключить пользователя - удалить участника из группы

📝 Управление контентом

  • Закрепить сообщение - закрепить сообщение в группе
  • Открыть сообщение - опубликовать сообщение в группе
  • Удалить сообщение - удалить сообщение из группы

🔄 Логика переходов

Настраивается в свойствах каждого блока:

  • Кнопки - пользователь выбирает один из вариантов, и бот переходит на нужное сообщение
  • Ожидание ввода - бот ждет ответ от пользователя, затем переходит на следующее сообщение
  • Автопереход - переход к следующему блоку автоматически без ожидания
  • Условные переходы - "если произошло то-то, то на другое сообщение..." (указывается в свойствах)

📚 Пример: Простой бот для пиццерии

🍕 Пошаговый пример создания бота (нажми для раскрытия)
Pizza Bot Time Difficulty

🎯 Что мы создадим:

Полнофункциональный бот для приема заказов пиццы с меню, выбором и подтверждением

🎨 Визуальная схема бота

🚀 СТАРТ

Команда /start

⬇️

💬 ПРИВЕТСТВИЕ

"Добро пожаловать! Выберите пиццу 🍕"

⬇️

🍕 ВЫБОР ПИЦЦЫ

🍕 Маргарита 🍕 Пепперони 🥬 Вегетарианская
⬇️

📝 АДРЕС ДОСТАВКИ

"Введите ваш адрес доставки"

⬇️

✅ ПОДТВЕРЖДЕНИЕ

Проверка заказа

⬇️

🚗 ГОТОВО!

"Спасибо за заказ! Ожидайте доставку"

🛠️ Пошаговое создание

Step 1 Step 2 Step 3 Step 4
📋 Подробная инструкция (нажми для раскрытия)

🎯 Шаг 1: Создание проекта

  1. Откройте Telegram Bot Builder
  2. Создайте новый проект "Пиццерия"
  3. Получите токен от @BotFather

🧩 Шаг 2: Добавление блоков

  1. Стартовое сообщение → "Добро пожаловать! Выберите пиццу 🍕"
  2. Кнопки выбора → ["🍕 Маргарита", "🍕 Пепперони", "🥬 Вегетарианская"]
  3. Сообщение с ожиданием → "Введите ваш адрес доставки"
  4. Финальное сообщение → "Спасибо за заказ! Ожидайте доставку 🚗"

⚙️ Шаг 3: Настройка переходов

  • СтартПриветствие (автопереход)
  • ПриветствиеВыбор пиццы (кнопки)
  • Выбор пиццыАдрес (любая кнопка)
  • АдресПодтверждение (ожидание ввода)

🚀 Шаг 4: Запуск и тестирование

  1. Нажмите "Сгенерировать код"
  2. Скачайте готовый Python файл
  3. Запустите бота и протестируйте

💻 Сгенерированный код

Python aiogram Size
🐍 Посмотреть автоматически созданный Python код (нажми чтобы раскрыть)
# 🤖 Автоматически сгенерированный бот для пиццерии
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

# 🔑 Токен бота (замените на свой)
bot = Bot(token="YOUR_BOT_TOKEN")
dp = Dispatcher()

def get_pizza_keyboard():
    """🍕 Клавиатура с выбором пиццы"""
    keyboard = ReplyKeyboardMarkup(
        keyboard=[
            [KeyboardButton(text="🍕 Маргарита")],
            [KeyboardButton(text="🍕 Пепперони")],
            [KeyboardButton(text="🥬 Вегетарианская")]
        ],
        resize_keyboard=True,
        one_time_keyboard=True
    )
    return keyboard

@dp.message(Command("start"))
async def start_handler(message: types.Message):
    """🚀 Обработчик команды /start"""
    await message.answer(
        "🍕 Добро пожаловать в пиццерию!\n"
        "Выберите пиццу из меню:",
        reply_markup=get_pizza_keyboard()
    )

@dp.message(lambda message: "🍕" in message.text or "🥬" in message.text)
async def pizza_selected(message: types.Message):
    """🍕 Обработчик выбора пиццы"""
    pizza_type = message.text
    await message.answer(
        f"✅ Отличный выбор: {pizza_type}!\n"
        f"📍 Введите ваш адрес доставки:",
        reply_markup=types.ReplyKeyboardRemove()
    )

@dp.message()
async def address_handler(message: types.Message):
    """📍 Обработчик адреса доставки"""
    address = message.text
    await message.answer(
        f"🎉 Спасибо за заказ!\n"
        f"📍 Адрес: {address}\n"
        f"🚗 Ожидайте доставку в течение 30-40 минут!\n"
        f"📞 Мы свяжемся с вами для подтверждения."
    )

# 🚀 Запуск бота
async def main():
    print("🤖 Бот пиццерии запущен!")
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())

🎯 Результат

⚡ Быстро

10 минут от идеи
до готового бота

🎯 Просто

Без единой строки
программирования

🚀 Готово

Бот готов принимать
заказы прямо сейчас!

Success

📚 Документация

Documentation Languages Status

Вся документация проекта организована в папке docs/ и разделена по категориям для удобного поиска

🛠️ Разработчикам


📋 Настройка проекта
Пошаговое руководство по установке

🔧 Устранение неполадок
Решение частых проблем

🤝 Для контрибьюторов
Как участвовать в разработке

📄 Спецификация
Техническое описание

🚀 Деплой


🚂 Railway
Развертывание на Railway (рекомендуется)

🐳 Docker
Контейнеризация приложения

☁️ VPS
Развертывание на собственном сервере

⚙️ CI/CD
Автоматическое развертывание

📊 Анализ


🏗️ Структура проекта
Детальный анализ архитектуры

🔧 Инфраструктура
Технические решения

📈 Производительность
Оптимизация и мониторинг

🧪 Тестирование
Стратегии тестирования

🔒 Безопасность


🛡️ Обновление проекта
Как обновить проект с GitHub

🔐 Аутентификация
Защита пользовательских данных

🚨 Мониторинг
Отслеживание угроз

📋 Аудит
Проверка безопасности

📖 Быстрый доступ к документации

🗂️ Полная структура документации (нажми для раскрытия)
📂 docs/
├── 📁 development/              # 🛠️ Документация для разработчиков
│   ├── 📄 SETUP.md             # Настройка окружения разработки
│   ├── 📄 TROUBLESHOOTING_RU.md # Устранение неполадок
│   ├── 📄 CONTRIBUTING.md       # Руководство для контрибьюторов
│   ├── 📄 REQUIREMENTS_SPECIFICATION.md # Техническая спецификация
│   └── 📄 HOW_TO_UPDATE.md     # Как обновить проект
│
├── 📁 deployment/               # 🚀 Руководства по развертыванию
│   ├── 📄 RAILWAY_DEPLOY.md    # Развертывание на Railway
│   ├── 📄 RAILWAY_CLI_GUIDE.md # Руководство по Railway CLI
│   └── 📄 RAILWAY_TROUBLESHOOTING.md # Устранение проблем
│
├── 📁 analysis/                 # 📊 Анализ проекта
│   ├── 📄 PROJECT_STRUCTURE_ANALYSIS.md # Анализ структуры
│   ├── 📄 PROJECT_STRUCTURE_DIAGRAM.md # Диаграмма структуры
│   └── 📄 INFRASTRUCTURE_ANALYSIS.md    # Анализ инфраструктуры
│
├── 📄 COMPONENTS.md            # 🧩 Компоненты проекта
└── 📄 README.md                # 📚 Индекс документации

📋 Системные требования

Технические требования (нажми для раскрытия)
💻 Компонент ⚡ Минимум 🚀 Рекомендуемо 🎯 Оптимально
Node.js 18.0 20.0+ 22.0+ LTS
PostgreSQL 13 15+ 16+ Latest
Python 3.11 3.12+ 3.13+ Latest
RAM 1 GB 2+ GB 4+ GB
Диск 500 MB 1+ GB 2+ GB SSD

🖥️ Поддерживаемые ОС

Windows macOS Linux


🚀 Развертывание готового бота

После создания бота, приложение генерирует Python файл. Вы можете:

  1. Скачать готовый код
  2. Запустить локально на своем компьютере:
    • На Windows, Mac или Linux
    • Просто установите Python и запустите файл
    • Идеально для тестирования перед публикацией
  3. Развернуть на хостинге для постоянной работы:
    • Railway - современная платформа для деплоя
    • VPS (DigitalOcean, Linode, AWS) - полный контроль
    • Cloud Run - от Google для больших нагрузок
  4. Модифицировать если нужна специальная логика

Подробные инструкции по деплою на Railway смотрите в файле docs/deployment/RAILWAY_DEPLOY.md.


📄 Лицензия

MIT License - используйте свободно для личных и коммерческих целей.


🤝 Помощь и поддержка

🆘 Быстрая помощь

🐛 Нашли баг?

Create Issue

💡 Есть идея?

Discuss

📖 Нужна помощь?

Docs

🤝 Хотите помочь?

Contributing

About

🤖 Визуальный конструктор Telegram ботов с drag-and-drop интерфейсом. Создавайте ботов без программирования, получайте готовый Python код для aiogram. React + TypeScript frontend, Express.js backend, PostgreSQL. Поддержка медиа, клавиатур, условной логики и аналитики пользователей.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors