Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ddosmukhambetov/djangoaiogram_telegramstorebot
Telegram is a bot store written in Python with Django + Aiogram frameworks. There is a Django Admin Panel with the ability to create, edit, delete categories, subcategories, products. The bot itself has admin and client commands. There is an authentication system and many more different commands.
https://github.com/ddosmukhambetov/djangoaiogram_telegramstorebot
aiogram aiogram-bot bot django python telegram telegram-bot
Last synced: 3 days ago
JSON representation
Telegram is a bot store written in Python with Django + Aiogram frameworks. There is a Django Admin Panel with the ability to create, edit, delete categories, subcategories, products. The bot itself has admin and client commands. There is an authentication system and many more different commands.
- Host: GitHub
- URL: https://github.com/ddosmukhambetov/djangoaiogram_telegramstorebot
- Owner: ddosmukhambetov
- Created: 2023-04-12T17:48:47.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-12-29T14:45:56.000Z (11 months ago)
- Last Synced: 2023-12-29T15:38:31.350Z (11 months ago)
- Topics: aiogram, aiogram-bot, bot, django, python, telegram, telegram-bot
- Language: Python
- Homepage:
- Size: 66.4 KB
- Stars: 6
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DjangoAiogram_TelegramStoreBot
___________
___________
## О проекте:Telegram-бот-магазин написан на языке программирования Python. Используя фреймворки, такие как Django и Aiogram. Есть админ-панель Django с возможностью создавать/редактировать/удалять категории, подкатегории, товары, пользователей. Сам бот имеет систему регистрации, функцию входа в учетную запись и сброса пароля. Пароли пользователей хэшируются и не поддаются никаким изменениям. Администратор не сможет изменить имя пользователя и пароль пользователя. Только пользователь сможет сбросить свой пароль и сменить его на новый. После входа в систему пользователь получит доступ к таким командам, как справка, описание, каталог. Когда вы нажмете команду каталог, перед ним появится встроенная клавиатура с категорией товаров, после выбора категории появится встроенная клавиатура с подкатегориями, и после этого он увидит товары. Существуют также команды для администратора, такие как рассылка пользавателям телеграмм бота. Также были созданы обработчики незнакомых, непонятных команд и сообщений для бота. Используется база данных Postgresql
___________
## Инструкция
### 1. Установка библиотек
- Скопируйте репозиторий:
`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/`### 3. Сделайте миграции
- Перейдите сюда `cd django_aiogram/`
- Напишите эти команды:
`python manage.py makemigrations`
`python manage.py migrate`
`python manage.py createsuperuser`### 4. Запуск бота
- Чтобы запустить Django напишитите** `python manage.py runserver`
- Чтобы запустить телеграмм бота напишите** `python manage.py bot`
___________
## Функционал телеграмм бота
- В боте есть такие команды как
`Регистрация, Вход, Забыли пароль, Помощь, Описание, Каталог и Меню Администратора и т.д.`
Снизу показан пример работы бота ⬇️
### 1. Команды авторизации (Регистрация, Вход, Забыли пароль)Здесь реализована система регистрации, входа в профиль. Есть функция забыли пароль. При созданий пароля, пароль хешируется. Пользователь может создать только один профиль. Потому что его ID пользователя уже будет присвоена к профилю при регистрации. Команда 'Регистрация' сперва запрашивает логин, пототм, идет проверка, есть ли уже такой логин у других пользователей, если есть, то он попросит ввести новый(уникальный логин), а если логин который он ввел доступен для использования, то уже идет создание пароля. Пароль должен содержать как минимут одну цифру, и быть только из латинских букв. Если, пользователь создал некорректный пароль то ему скажут каким должен быть пароль. После чего как он создал пароль, пароль хешируется, и пользователь сохраняется в базе данных и отображается в Django админ панели. У администратора нет никаких возможностей редактировать данные пользователя
### 2. Команда каталог(Категории, Подкатегории, Товары)
Команда каталог, которая отвечает за показ категории, подкатегории и товаров. Команда каталог доступна только лишь тогда, когда пользователь вошел в профиль(выполнил вход). На изоброжении показана как работает эта команда. Могут быть случаи когда в категории или в подкатегории нет товаров, то тогда бот скажет что в этой категории/подкатегории нет товаров. Здесь категории, подкатегории и товары сортируются по мере их добавления. А сами эти объекты можно добавлять, редактировать и удалять в админ панели Django
### 3. Дефолтные команды (Помощь, Описание, Админ -> Рассылка)
Здесь сделаны дефолтные команды, такие как 'Помощь', которая предостовляет помощь по боту. Есть команда 'Описание', это описание телеграмм магазина/бота. Так же есть и интересная команда называемая 'Админ'. Чтобы пользователь мог использовать эту команду ему нужно быть в списке телеграмм администраторов. После нажатия на эту кнопку, вас перекинет на меню администратора. В котором сейчас 1 команда 'Рассылка: ' и кнопки такие как домой, и помощь. Кнопка помощь отвечает за инструкцию администратора, его команды и т.д. Кнопка домой просто возвращает его на главное меню. Благодаря команде 'Рассылка: ' администратор можем отправить сообщение всем зарегистрированым пользователям данного телеграмм бота
___________
## Django панель Администратора:
- С помощью Django сделаны модели, админ панель, связи между моделями и многое другое.
### 1. Простая домашняя страница**Самая простая, которая только есть, домашняя страница (html + bootstrap).** С простым и кратким описанием проекта
___________
### 2. Панель Администратора:___________
### 3. Продкуты (Товары) в Админке:
Продукт (Товар), принимает фотографию, название, описание, цену, опубликован ли он, а также, категорию и подкатегорию. Подкатегория связана с категорией. В Django админ панели отображаются все созданные товары
___________
### 4. Категории в Админке:
Категория, принимает название и описание. В Django админ панели отображаются все созданные категории
___________
### 5. Подкатегории в Админке:
Подкатегория, принимает название подкатегории, описание подкатегории и также Категорию. В Django админ панели отображаются все созданные подкатегории
___________
### 6. Пользователи телеграмм бота в Админке:
Пользователь, принимает ID пользователя, логин, пароль, и зарегистрирован ли он. Пользователь создается в телеграмм боте. И данные как ID пользователя и зарегистрирован ли он получаются автоматически. В Django админ панели отображаются пользователи которые зарегистрированы в телеграмм боте. Администратор не имеет возможности редактировать данные пользователей. Пароли пользователей хешируются
___________