Skip to content

LeonovIlya/Telegram-bot-for-merchandisers

Repository files navigation

Телеграм бот помощник мерчендайзера при работе.

Функции:

  1. Отправка пользователю pdf файла с планограммой по запросу.
  2. Отправка пользователю данных ДМП при поиске по адресу или номеру торговой точки.
  3. Аутентификация в боте по паролю. Хэширование пароля.
  4. Несколько уровней доступа к функциям бота (мерчендайзер/супервайзер/админ).
  5. Управление мерчендайзерами супервайзером. У каждого супервайзера свой список его мерчендайзеров.
  6. Управление всеми пользователями админом.
  7. Управление файлами с планограммами через бота(в разработке).
  8. Отправка пользователю текущей погоды по его геопозиции.

Для работы бота необходима база данных, в которой есть 2 таблицы - таблица с данными пользователей и таблица с данными магазинов.

Отправка пользователю pdf файла с планограммой по запросу.

Пользователь запрашивает определённую планограмму, бот отправляет файл. В базе порядка 100 различных планограмм, выбор зависит от номера кластера (0 или 2), названия торговой сети (если ТС - Магнит, то нужно ещё выбрать его формат), формата полочного пространства. Запрос к базе формируется так: пользователь поочередно нажимает на инлайн-кнопки под вопросом, у каждой кнопки свой callback, который записывается в FSM. В ответ из бд получаем путь к нужному файлу. Если файл есть - отправляем, если нет - выдаем ошибку.

Отправка пользователю данных ДМП при поиске по адресу или номеру торговой точки.

ДМП - информация о дополнительном рекламном оборудовании. Информация хранится в Google Sheets. Для каждой сети - свой sheet. Для взаимодействия с api гугла, необходимо получить json файл. Два варианта поиска - по адресу или по номеру магазина. В силу нестандартизированности записи адресов в гуглшите и для упрощения поиска по адресу достаточно ввести название города или улицы.

Аутентификация в боте по паролю. Хэширование пароля.

Для аутентификации в боте используется только пароль. Хэшированный пароль хранится в таблице с данными пользователей. Для дальнейшей авторизации в случае успешной аутентификации - записывается tg_id пользователя в ту же таблицу.

Несколько уровней доступа к функциям бота (мерчендайзер/супервайзер/админ).

Три уровня доступа: Мерчендайзер - планограммы, дмп, погода. Супервайзер - планограммы, дмп, погода, управление своими мерчендайзерами. Админ - планограммы, дмп, погода, управление всеми пользователями.

Управление мерчендайзерами супервайзером. У каждого супервайзера свой список его мерчендайзеров.

Супервайзер может управлять своими мерчендайзерами: добавить нового, удалить или отредактировать существующего, посмотреть списком всех. В редактирование доступны изменение ФИО и пароля. Редактировать и удалять можно только своих супервайзеров.

Управление всеми пользователями админом (в разработке).

То же самое, как и у супервайзера, только без ограничений. В редактирование добавлена возможность изменять уровень доступа и привязанного супервайзера.

Управление файлами с планограммами через бота(в разработке).

pass

Отправка пользователю текущей погоды по его геопозиции.

Запрашиваем геолоку у пользователя, получаем координаты, через api openweathermap получаем json, парсим и возвращаем пользователю

.gitignore:

/config.py - Конфиг файл, где хранятся BOT_TOKEN, WEATHER_API_TOKEN, GOOGLE_SHEET_ID

/bot_log.log - Логи работы бота

/dmp/google_auth.json - JSON для работы с API GOOGLE

/planogram/files/ - папка с планограммами

/files.db - база данных

Releases

No releases published

Packages

No packages published

Languages