Telegram-бот-магазин написан на языке программирования Python. Используя фреймворки, такие как Django и Aiogram. Есть админ-панель Django с возможностью создавать/редактировать/удалять категории, подкатегории, товары, пользователей. Сам бот имеет систему регистрации, функцию входа в учетную запись и сброса пароля. Пароли пользователей хэшируются и не поддаются никаким изменениям. Администратор не сможет изменить имя пользователя и пароль пользователя. Только пользователь сможет сбросить свой пароль и сменить его на новый. После входа в систему пользователь получит доступ к таким командам, как справка, описание, каталог. Когда вы нажмете команду каталог, перед ним появится встроенная клавиатура с категорией товаров, после выбора категории появится встроенная клавиатура с подкатегориями, и после этого он увидит товары. Существуют также команды для администратора, такие как рассылка пользавателям телеграмм бота. Также были созданы обработчики незнакомых, непонятных команд и сообщений для бота. Используется база данных Postgresql
-
Скопируйте репозиторий:
git clone https://github.com/dosmukhambetov/DjangoAiogram_TelegramStoreBot/ && cd django_aiogram
-
Установить библиотеки:
pip install -r requirements.txt
2. Поменять базу данных, TOKEN_API телеграмм бота, ID администратора телеграмм бота, SECRET_KEY Django
- Переименуйте файл
.env.example
на.env
- Измените TOKEN_ID, SECRET_KEY, ADMIN_ID, PG_NAME, PG_USER, PG_PASSWORD, PG_HOST, PG_PORT внутри
django_aiogram/bot_file/.env/
- Перейдите сюда
cd django_aiogram/
- Напишите эти команды:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
- Чтобы запустить Django напишитите**
python manage.py runserver
- Чтобы запустить телеграмм бота напишите**
python manage.py bot
- В боте есть такие команды как
Регистрация, Вход, Забыли пароль, Помощь, Описание, Каталог и Меню Администратора и т.д.
Снизу показан пример работы бота ⬇️
Здесь реализована система регистрации, входа в профиль. Есть функция забыли пароль. При созданий пароля, пароль хешируется. Пользователь может создать только один профиль. Потому что его ID пользователя уже будет присвоена к профилю при регистрации. Команда 'Регистрация' сперва запрашивает логин, пототм, идет проверка, есть ли уже такой логин у других пользователей, если есть, то он попросит ввести новый(уникальный логин), а если логин который он ввел доступен для использования, то уже идет создание пароля. Пароль должен содержать как минимут одну цифру, и быть только из латинских букв. Если, пользователь создал некорректный пароль то ему скажут каким должен быть пароль. После чего как он создал пароль, пароль хешируется, и пользователь сохраняется в базе данных и отображается в Django админ панели. У администратора нет никаких возможностей редактировать данные пользователя
Команда каталог, которая отвечает за показ категории, подкатегории и товаров. Команда каталог доступна только лишь тогда, когда пользователь вошел в профиль(выполнил вход). На изоброжении показана как работает эта команда. Могут быть случаи когда в категории или в подкатегории нет товаров, то тогда бот скажет что в этой категории/подкатегории нет товаров. Здесь категории, подкатегории и товары сортируются по мере их добавления. А сами эти объекты можно добавлять, редактировать и удалять в админ панели Django
Здесь сделаны дефолтные команды, такие как 'Помощь', которая предостовляет помощь по боту. Есть команда 'Описание', это описание телеграмм магазина/бота. Так же есть и интересная команда называемая 'Админ'. Чтобы пользователь мог использовать эту команду ему нужно быть в списке телеграмм администраторов. После нажатия на эту кнопку, вас перекинет на меню администратора. В котором сейчас 1 команда 'Рассылка: ' и кнопки такие как домой, и помощь. Кнопка помощь отвечает за инструкцию администратора, его команды и т.д. Кнопка домой просто возвращает его на главное меню. Благодаря команде 'Рассылка: ' администратор можем отправить сообщение всем зарегистрированым пользователям данного телеграмм бота
- С помощью Django сделаны модели, админ панель, связи между моделями и многое другое.
Самая простая, которая только есть, домашняя страница (html + bootstrap). С простым и кратким описанием проекта
Продукт (Товар), принимает фотографию, название, описание, цену, опубликован ли он, а также, категорию и подкатегорию. Подкатегория связана с категорией. В Django админ панели отображаются все созданные товары
Категория, принимает название и описание. В Django админ панели отображаются все созданные категории
Подкатегория, принимает название подкатегории, описание подкатегории и также Категорию. В Django админ панели отображаются все созданные подкатегории
Пользователь, принимает ID пользователя, логин, пароль, и зарегистрирован ли он. Пользователь создается в телеграмм боте. И данные как ID пользователя и зарегистрирован ли он получаются автоматически. В Django админ панели отображаются пользователи которые зарегистрированы в телеграмм боте. Администратор не имеет возможности редактировать данные пользователей. Пароли пользователей хешируются