Skip to content

Telegram бот интернет магазина с реферальной системой регистрации. Проект запускается в Docker-compose, подключены платежи Qiwi.

LoGoFiOS/Wizard_lavka_telegram_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

@WizardLavka_bot – Telegram бот для продажи Чудесного и Невероятного.

Вход не для всех, вы же понимаете...

Особенности

Стек технологий: Aiogram, PostgresSQL, Redis, Docker Compose, Qiwi Api, Requests.

  1. Использование БД PostgreSQL, Redis. Первая хранит таблицы с данными о пользователях и счетах системы Qiwi, вторая нужна для хранения информации о "состоянии" пользователя – FSM.
  2. Проект запускается в Docker Compose.
  3. Работа с Qiwi Api для выставления счетов и проверки их оплаты. Реализация через Requests.
  4. Управление каталогом через чат. Добавить товар /add.
  5. Поиск товаров осуществляется в inline mode, т.е. через сообщение вида @WizardLavka_bot QUERY
  6. Реализована корзина, в которой можно изменять количество товаров.
  7. Реферальная система – каждый пользователь имеет уникальный реферальный код и ссылку. Чтобы стать покупателем необходимо либо пройти по реферальной ссылке, либо ввести код вручную. Владелец реферального кода получает монеты, которые списываются при оформлении заказа.

Запуск

В корне скачанного репозитория создать файл .env и заполнить его согласно примеру – .env_example.

Обращу лишь внимание на переменную DB_DUMP=. В ней нужно указать абсолютный путь, где будут храниться данные БД Postgre, Redis. Например, если указать /home/logofios/projects/dump/wizard_lavka_bot, то в этом каталоге будут созданы: /wizard_lavka_telegram_bot_redis, /wizard_lavka_telegram_bot_pgdata

В файле /bot/config.py внести id администраторов. Узнать id проще всего у @MyTidBot.

admins = [
    23466746,
    # Latand
    362089194
]

После этого можно запускать проект:

sudo docker-compose build
sudo docker-compose up

В самый первый запуск, скорее всего, потребуется выполнить docker-compose up дважды, т.е.:

sudo docker-compose build
sudo docker-compose up
ctrl+c
sudo docker-compose up

Это связано с тем, что БД ещё не успеют проинициализироваться к тому моменту, когда к ним начнёт подключаться бот. ¯\(ツ)

TODO

  1. Заменить requests на aiohttp.
  2. Добавить админам возможность удалять товары (кнопка предусмотрена, но нет обработки её нажатия).
  3. Ограничить количество приглашаемых покупателей для каждого пользователя. Сейчас – можно приглашать сколько угодно.
  4. Изменить InlineQueryAnswer – убрать реферальную ссылку. Кнопка должна СРАЗУ выдавать товар. Если пользователь УЖЕ начал общение с ботом. Иначе – ничего не происходит.
  5. Переработать момент с инициализацией переменной Telegraph(?).
  6. Инициализацию БД перенести из bot.py в repository.py.
  7. Заменить polling на вебхуки. (Смысла нет, пока отмена)

About

Telegram бот интернет магазина с реферальной системой регистрации. Проект запускается в Docker-compose, подключены платежи Qiwi.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published