Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

Awesome Lists containing this project

README

        

# DjangoAiogram_TelegramStoreBot
___________


Project Banner


Python Version
Aiogram Version
Django Version

___________
## О проекте:

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. Команды авторизации (Регистрация, Вход, Забыли пароль)

authentification

Здесь реализована система регистрации, входа в профиль. Есть функция забыли пароль. При созданий пароля, пароль хешируется. Пользователь может создать только один профиль. Потому что его ID пользователя уже будет присвоена к профилю при регистрации. Команда 'Регистрация' сперва запрашивает логин, пототм, идет проверка, есть ли уже такой логин у других пользователей, если есть, то он попросит ввести новый(уникальный логин), а если логин который он ввел доступен для использования, то уже идет создание пароля. Пароль должен содержать как минимут одну цифру, и быть только из латинских букв. Если, пользователь создал некорректный пароль то ему скажут каким должен быть пароль. После чего как он создал пароль, пароль хешируется, и пользователь сохраняется в базе данных и отображается в Django админ панели. У администратора нет никаких возможностей редактировать данные пользователя

### 2. Команда каталог(Категории, Подкатегории, Товары)

view products

Команда каталог, которая отвечает за показ категории, подкатегории и товаров. Команда каталог доступна только лишь тогда, когда пользователь вошел в профиль(выполнил вход). На изоброжении показана как работает эта команда. Могут быть случаи когда в категории или в подкатегории нет товаров, то тогда бот скажет что в этой категории/подкатегории нет товаров. Здесь категории, подкатегории и товары сортируются по мере их добавления. А сами эти объекты можно добавлять, редактировать и удалять в админ панели Django

### 3. Дефолтные команды (Помощь, Описание, Админ -> Рассылка)

default commands

Здесь сделаны дефолтные команды, такие как 'Помощь', которая предостовляет помощь по боту. Есть команда 'Описание', это описание телеграмм магазина/бота. Так же есть и интересная команда называемая 'Админ'. Чтобы пользователь мог использовать эту команду ему нужно быть в списке телеграмм администраторов. После нажатия на эту кнопку, вас перекинет на меню администратора. В котором сейчас 1 команда 'Рассылка: ' и кнопки такие как домой, и помощь. Кнопка помощь отвечает за инструкцию администратора, его команды и т.д. Кнопка домой просто возвращает его на главное меню. Благодаря команде 'Рассылка: ' администратор можем отправить сообщение всем зарегистрированым пользователям данного телеграмм бота
___________
## Django панель Администратора:
- С помощью Django сделаны модели, админ панель, связи между моделями и многое другое.
### 1. Простая домашняя страница

simple main page

**Самая простая, которая только есть, домашняя страница (html + bootstrap).** С простым и кратким описанием проекта

___________
### 2. Панель Администратора:

admin panel

___________
### 3. Продкуты (Товары) в Админке:

creating_product


products_list

Продукт (Товар), принимает фотографию, название, описание, цену, опубликован ли он, а также, категорию и подкатегорию. Подкатегория связана с категорией. В Django админ панели отображаются все созданные товары

___________
### 4. Категории в Админке:

creating_category


categories_list

Категория, принимает название и описание. В Django админ панели отображаются все созданные категории

___________
### 5. Подкатегории в Админке:

creating_subcategory


subcategories_list

Подкатегория, принимает название подкатегории, описание подкатегории и также Категорию. В Django админ панели отображаются все созданные подкатегории

___________
### 6. Пользователи телеграмм бота в Админке:

user


users_list

Пользователь, принимает ID пользователя, логин, пароль, и зарегистрирован ли он. Пользователь создается в телеграмм боте. И данные как ID пользователя и зарегистрирован ли он получаются автоматически. В Django админ панели отображаются пользователи которые зарегистрированы в телеграмм боте. Администратор не имеет возможности редактировать данные пользователей. Пароли пользователей хешируются

___________