Магазин в чате telegram с админкой django. Основан на django-mptt
- дереве, которое помогает представлять категории и товары в определенной иерархии. Логика работы описана с использованием telegram bot api с библиотекой aiogram, которая позволяет разрабатывать асинхронных ботов.
Если во время платежа, вдруг, не останется товара на складе, то деньги не спишутся и вылетит такое сообщение
- Необходимо, чтобы был установлен Docker.
- Создать
.env
файл в корневой папке с атрибутами:- BOT_TOKEN
- PROVIDER_TOKEN - токен выданный платежным провайдером
- ADMINS - id админа в телеграме
- DJANGO_SECRET - секретный ключ для Django
- DJANGO_SUPERUSER_PASSWORD - пароль для админа в админке
- DJANGO_USERNAME - ник админа в админке
- DB_URL - postgreSQL URI, очевидно, что все аргументы в uri должны совпадать со значениями ниже. В поле
host
написатьdb
, так как Docker предоставляет локальную сеть по имени сервиса. - POSTGRES_DB - название для базы данных в СУБД
- POSTGRES_USER - имя пользователя в СУБД
- POSTGRES_PASSWORD - пароль для пользователя в СУБД
- Выполнить в консоли
docker compose up -d
- Для остановки/старта использовать
docker compose stop
/docker compose start
. Если необходимо удалить контейнеры и образ, тоdocker compose down --rmi "local"
- Если в код были внесены изменения необходимо запускать с командой
docker compose up -d --build
, чтобы не брался кэш с прошлого билда - В админку можно зайти с браузера по адресу
http://localhost:8001/admin
Django - веб-фреймворк для поддержки orm и создания админки
Aiogram - асинхронный фреймворк для работы с Telegram bot api
Uvicorn - ASGI сервер для работы Django в асинхронном режиме
Docker - развертывание приложения в автономных контейнерах
Poetry - продвинутый пакетный менеджер для Python