Разработка Telegram-бота с WebApp для подачи и обработки заявок
Создать Telegram‑бота (на основе библиотеки aiogram) и сопутствующий WebApp (на AngularJS), который позволит пользователям подавать заявки с дополнительными параметрами, осуществлять регистрацию и получать ответы от администратора. Система должна хранить данные в локальных JSON‑файлах, а также обновлять данные в Google Sheets (2 таблицы) с применением форматирования ячеек.
---
1. Общая информация о проекте
1.1 Функциональность бота
- Регистрация пользователей:
- Ввод ФИО и номера телефона (возможность поделиться контактом)
- Предварительный просмотр данных, редактирование и подтверждение
- Сохранение данных в файле `users.json` со статусами: pending, approved, blocked
- Модуль подачи заявок:
- Пользователь может подать заявку через WebApp
- Сохранение данных заявки в файле `applications_by_user.json`
- Запись данных в Google Sheet (таблица1) с обновлением номера заявки, даты, ФИО, ФГ, ЕДРПОУ, группы, культуры, количества, локации, дополнительных параметров, формы оплаты, валюты, цены, номера телефона, user_id
- Обновление данных в таблице2 (отображение цены с возможностью удаления ячейки с сдвигом строк и сбросом форматирования)
- Административный модуль:
- Вход через команду /admin для пользователей с правами администратора
- Меню для просмотра заявок (pending, approved, deleted)
- Возможность одобрения (approve) или блокировки (block) пользователей
- Редактирование данных одобренных пользователей (ФИО, номер телефона)
- Просмотр детальной информации по заявкам, их подтверждение, отклонение, удаление (как soft, так и полное удаление из файла и Google Sheets)
- Функция выгрузки базы данных пользователей в Google Sheets с форматированием (выравнивание, жирный шрифт, автоматическое установление ширины столбцов)
- Фоновый процесс (polling):
- Периодическая проверка Google Sheets на изменение значений менеджерской цены
- Отправка сообщений пользователям при обновлении предложения, а также изменение статусов заявки (active, waiting, Agreed, confirmed, deleted, rejected)
- Интеграция с Google Sheets:
- Авторизация через Service Account с использованием `oauth2client` и библиотеки `gspread`
- Функции для чтения, обновления, удаления строк и форматирования ячеек (с применением `gspread-formatting`)
1.2 Функциональность WebApp
- Интерфейс формы:
- Разбиение на несколько шагов:
1. Основные данные: Ввод названия ФГ (необязательно), кода ЕДРПОУ (8 или 10 цифр, необязательно), локации (область, район, город) – интеграция с AngularJS для работы с данными локации (через dropdown‑списки, которые загружаются из локального JSON‑файла или API)
2. Детали заявки: Выбор группы, культуры, дополнительные параметры (в зависимости от выбранной культуры – разные поля для пшеницы, ячменя, кукурузы, подсолнечника, рапса, сои и т.д.), ввод количества
3. Цена: Ввод желаемой цены (необязательно), выбор валюты и формы оплаты (динамическое обновление формы оплаты в зависимости от валюты)
- Prefill параметров:
- Чтение параметра `data` из URL для предварительного заполнения формы
- Установка данных в поля формы
- Взаимодействие с Telegram WebApp API:
- Использование библиотеки Telegram WebApp JS (с функциями sendData, close, ready)
- Отправка JSON‑данных заявки на сервер бота через fetch POST запрос
---
2. Технические требования
2.1 Стек технологий
- Бекенд (Telegram‑бот):
- Язык: Python 3.7+
- Фреймворк: aiogram
- Библиотеки: asyncio, logging, json, aiohttp, gspread, oauth2client, gspread-formatting, zoneinfo
- Хранение данных: локальные JSON‑файлы (users.json, applications_by_user.json, config.py)
- Интеграция с Google Sheets через API
- WebApp:
- Язык: HTML, CSS, JavaScript
- Фреймворк: AngularJS (1.x)
- Интеграция с Telegram WebApp API
2.2 Архитектура
- Telegram‑бот:
- Работа по схеме FSM (Finite State Machine) для управления диалогами
- Асинхронная обработка сообщений и фоновых задач (poll_manager_proposals, HTTP‑сервер)
- Распределение прав пользователей: pending, approved, blocked
- Административное меню для модерации пользователей и заявок
- WebApp:
- Разбиение на страницы (шаги) с возможностью переходов «Назад/Далее»
- Динамическая загрузка данных для dropdown‑списков
- Валидация введенных данных (форматы, минимальные требования)
- Отправка данных через Telegram WebApp API и fetch запрос на HTTP‑сервер
2.3 Безопасность
- Защита данных пользователей при хранении в JSON‑файлах
- Проверка доступа к административным командам (ADMINS, полученных из переменных окружения)
- Валидация введенных данных (номер телефона, коды ЕДРПОУ, числовые форматы)
2.4 Хостинг и развертывание
- Бот запускается как отдельный процесс (например, через systemd или Docker)
- WebApp может быть размещен на отдельном сервере (или на том же сервере, что и бот)
- HTTP‑сервер (aiohttp) для приема POST‑запросов от WebApp
---
3. Функциональные блоки и требования
3.1 Функционал Telegram‑бота
- Инициализация и конфигурация:
- Чтение переменных окружения: TELEGRAM_TOKEN, ADMINS, GOOGLE_SPREADSHEET_ID, GOOGLE_SPREADSHEET_ID2, API_PORT, DATA_DIR и т.д.
- Загрузка credentials для Google API из переменной окружения (GSPREAD_CREDENTIALS_JSON)
- Работа с файлами:
- Создание файлов users.json, applications_by_user.json, config.py, если они не существуют
- Функции для чтения и записи данных (load_users, save_users, load_applications, save_applications)
- Регистрация и модерация пользователей:
- Обработка /start – проверка статуса пользователя (approved, pending, blocked)
- Сбор данных для регистрации (ФИО, номер телефона) с предварительным просмотром и редактированием
- Административное одобрение или блокировка через специальный интерфейс
- Подача и обработка заявок:
- Прием данных из WebApp (через текстовое сообщение с JSON или content‑type WEB_APP_DATA)
- Функции для записи заявки в файл и Google Sheets (update_google_sheet, add_application)
- Возможность просмотра заявок, их редактирования, удаления (soft и полное)
- Административный интерфейс:
- Меню для модерации, просмотра одобренных/удаленных заявок
- Детальный просмотр заявки и возможность изменения статусов
- Функции для редактирования данных одобренных пользователей
- Фоновый процесс:
- Периодическая проверка Google Sheets для обновления значений менеджерской цены
- Отправка уведомлений пользователям при изменении предложения
- Управление остановкой/возобновлением поллинга (POLLING_PAUSED)
- HTTP‑сервер:
- Прием POST‑запросов из WebApp для preview данных (endpoint: /api/webapp_data)
3.2 Функционал WebApp
- Интерфейс формы с несколькими шагами:
- Страница 1: Основные данные (ФГ, ЕДРПОУ, локация через AngularJS dropdown‑списки)
- Страница 2: Детали заявки (группа, культура, дополнительные параметры в зависимости от культуры, количество)
- Страница 3: Цена, валюта, форма оплаты
- Предварительное заполнение:
- Чтение данных из URL‑параметра (data) и установка значений в соответствующие поля
- Валидация данных:
- Проверка формата ЕДРПОУ (8 или 10 цифр)
- Проверка числовых форматов для дополнительных параметров (формат XX.X)
- Взаимодействие с Telegram WebApp API:
- Инициализация WebApp, отправка заполненных данных через sendData
- Отправка POST‑запроса на сервер (endpoint /api/webapp_data) для проверки полученных данных
- Закрытие WebApp после успешной отправки
---
4. Интеграция с Google Sheets
- Использование Google API с использованием Service Account
- Получение доступа к двум таблицам (GOOGLE_SPREADSHEET_ID и GOOGLE_SPREADSHEET_ID2)
- Функции:
- update_google_sheet: запись данных заявки, вычисление нового номера, запись даты, ФИО, данных заявки
- export_database: выгрузка базы одобренных пользователей в новый лист с применением форматирования
- delete_price_cell_in_table2: удаление ячейки с ценой с сдвигом строк и очищением форматирования
Прошу в предложениях писать реальную минимальную цену для этого бота, без занижений, чтобы сразу понимать на что рассчитывать
-
Здравствуйте!
Я проектный менеджер компании Дзенкод, в нашей команде 70+ разработчиков.
Специализируемся на WEB-разработке и создании ботов с админ панелью на Python.
Опыт работы в разработке более 10 лет.
Разработаем для вас бота согласно вашему ТЗ.
Мы используем две стратегии организации работы над проектами – Аутсорс и Аутстафф.
Наш рейд: от 18 EUR/час.
Можем работать с безопасной сделкой на бирже.
…
Мы можем обсудить подробности вашего проекта в чате?
С уважением, менеджер dZENcode.
-
1711 8 0 Добрый день. Готов выполнить.
У меня много успешных кейсов, о которых смогу подробнее рассказать в личных.
Помогу с ТЗ. Реализую весь необходимый функционал. Интегрирую любой сервис. Сделаю удобный интерфейс и админ панель. Реализую логику для напоминаний. Оптимизирую.
Буду ждать вас в личных
-
8793 60 0 1 Добрый день. Готов выполнить.
Имею большой опыт разработки телеграм-ботов и WebApp.
Пишу на Python, занимаю 2-е место на платформе.
Разработаю бота с сопутствующим WebApp. Пользователи смогут подавать заявки с дополнительными параметрами, осуществлять регистрацию и получать ответы от администратора.
Реализую весь необходимый функционал. Подключу нужные интеграции API.
Настрою сохранение данных в .json файлах и автоматическое обновление данных в Google Sheets.
Выполню деплой. Проведу тестирование, при необходимости предоставлю документацию.
… Мое портфолио:Freelancehunt
Пишите, обсудим детали и я приступлю к работе.
-
363 9 0 Добрый день, настрою интеграцию и работу бота с сервисом GoogleSheets, работал с гугл и телеграм апи, напишите в личные, согласуем детали и начнем сотрудничество
-
10038 117 0 Привет!
Разрабатываю ботов для телеграма на NodeJS. Готов взяться. Пишите, обсудим.
-
1872 9 0 Здравствуйте!
Меня заинтересовал ваш проект по разработке Telegram-бота на aiogram с интеграцией WebApp на AngularJS. У меня есть соответствующий опыт в создании подобных решений, и я готов выполнить задачу в полном объеме с учетом всех ваших требований.
Как планирую реализовать проект
- Разработка Telegram-бота:
- Настройка регистрации с валидацией данных.
- Реализация подачи заявок и их отправка в Google Sheets.
- Создание административного модуля с управлением пользователями и заявками.
- Фоновая проверка изменений и автоматическое оповещение пользователей.
… WebApp (AngularJS):
- Разработка многошаговой формы с предзаполнением данных.
- Интеграция с локальными JSON-файлами и API.
- Связь с Telegram WebApp API для отправки данных боту.
Интеграция с Google Sheets:
- Авторизация через Service Account.
- Автоматическое обновление данных и форматирование таблиц.
Готов обсудить детали и приступить к работе в кратчайшие сроки. Жду вашего ответа!
-
129 Добрый день, у меня есть большой опыт создания подобных ботов, если вас устраивает цена и время, могу приступить к работе.
-
95478 1271 1 10 Здравствуйте. Есть большой опыт в разработке телеграм-ботов. Angular обязательно использовать на фронтенде или можно React?
-
1810 31 0 Здравствуйте. Готов разработать
Напишите в лс для обсуждения деталей
Актуальные фриланс-проекты в категории Python
Разработка Backend ядра (Python), Telegram FSM-движка и интеграция StripeМы ищем опытного Backend-разработчика (Middle/Senior) для создания независимого Headless-ядра EdTech-продукта. Система работает по модели ежемесячной строгой подписки. Логика ядра должна быть полностью изолирована от контента. Вся разработка ведется строго в тестовом контуре… Python, Базы данных и SQL ∙ 6 часов 8 минут назад ∙ 12 ставок |
Нужен телеграм бот. Язык программирования Python, бот должен иметь админ панель для обработки заявок.
1100 UAH
Это детальное описание проекта После нажатия кнопки /start Бот отправляет текст с правилами и условиями использования (под текстом кнопка ознакомлен) После этого идет небольшое заполнение анкеты: Ваш возраст? ... Откуда узнали о нас? ... Был ли опыт до этого? ... Сколько… Python, Разработка ботов ∙ 10 часов 29 минут назад ∙ 37 ставок |
Разработка веб-сервиса с платным доступом к онлайн-чатуДобрый день, необходимо разработать веб-сервис, который включает: * персональные ссылки для пользователей; * страницу с описанием услуги; * оплату через PayPal; * онлайн-чат в реальном времени; * отображение видео на странице пользователя; * учет оплаченного времени и… Python, Веб-программирование ∙ 11 часов 42 минуты назад ∙ 45 ставок |
Создание приложенияЖелаю создать мобильное приложение для общения, в приложении должны быть аудио, видео звонок, создание групповых чатов, возможность синхронизировать с контактами телефона, настройками аккаунта: привязка по email, 2fa, номеру телефона, возможность настраивать уведомления… Java, Python ∙ 1 день 9 часов назад ∙ 33 ставки |
Настройка двусторонней интеграции WhatsApp с Odoo CRMЗдравствуйте! Ищем специалиста для реализации технического задания по настройке двусторонней интеграции мессенджера WhatsApp с CRM-системой Odoo. ⚠️ Важное техническое уточнение: Официальный WhatsApp Business API (WABA) не рассматривается. Необходимо внедрить стабильное «серое»… Python, Веб-программирование ∙ 1 день 19 часов назад ∙ 23 ставки |