GithubHelp home page GithubHelp logo

leonovilya / telegram-bot-for-merchandisers Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 23 KB

Telegram bot for merchandisers with some function

Python 99.97% Procfile 0.03%
aiogram aiohttp aiosqlite gspread openweathermap-api python sqlite3

telegram-bot-for-merchandisers's Introduction

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

Функции:

  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 - база данных

telegram-bot-for-merchandisers's People

Contributors

leonovilya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.