Skip to content

Studio-Yandex-Practicum/scid_bot_3

Repository files navigation

Чат-бот для предоставления информации, помощи в обслуживании клиентов, проведения маркетинговых кампаний.

SCID — это цифровое агентство полного цикла, основанное в 2008 году. Оно занимается созданием IT-решений, которые помогают компаниям оптимизировать бизнес-процессы и улучшить эффективность. Среди ключевых услуг агентства — разработка сайтов, мобильных приложений, CRM-систем и систем бизнес-аналитики (BI).

Основные направления деятельности SCID включают:

  1. Разработку программного обеспечения, включая системы для управления бизнесом;
  2. Создание сайтов и мобильных приложений для различных отраслей, включая медицину, образование и ритейл;
  3. Интеграцию с корпоративными системами и разработку сложных CRM-систем;
  4. Внедрение бизнес-аналитики (BI) для компаний с помощью современных цифровых инструментов.
  5. SCID также работает с крупнейшими представителями бизнеса и государственных структур, успешно реализовав более 250 проектов для разных отраслей, что делает их экспертом в создании индивидуальных IT-решений для компаний всех размеров.

Благодаря многолетнему опыту и глубокому пониманию специфики цифровых технологий, агентство создает проекты, ориентированные на решение конкретных задач клиентов, будь то оптимизация логистики, внедрение систем управления ресурсами или улучшение пользовательского опыта.

Для более детальной информации можно посетить официальный сайт компании: SCID.


Стек технологий

В данном проекте используется современный стек технологий, который обеспечивает эффективную разработку, масштабируемость и удобство в использовании. Ниже представлены основные библиотеки и инструменты, использованные в проекте:

  • Python: Основной язык программирования проекта, известный своей простотой и читаемостью, что способствует быстрой разработке.

  • Aiogram: Асинхронная библиотека для создания Telegram-ботов, обеспечивающая простоту интеграции и работы с API Telegram.

  • Pydantic: Библиотека для валидации данных и работы с настройками на основе аннотаций типов Python, что улучшает надежность кода.

  • Python-dotenv: Позволяет загружать переменные окружения из файла .env, упрощая управление конфигурацией приложения.

  • Alembic: Инструмент для управления миграциями базы данных, совместимый с SQLAlchemy, что облегчает версионирование схемы базы данных.

  • SQLAlchemy: ORM (Object Relational Mapping) библиотека для работы с реляционными базами данных, предоставляющая высокоуровневый интерфейс для взаимодействия с базами данных.

  • Pydantic-settings: Расширение Pydantic для управления настройками приложений с поддержкой файлов конфигурации и переменных окружения.

  • Asyncpg: Асинхронный драйвер для PostgreSQL, который обеспечивает высокую производительность и эффективное взаимодействие с базой данных.

  • Aiosmtplib: Асинхронная библиотека для отправки электронной почты через SMTP, позволяющая интегрировать почтовые функции в приложение.

  • Make: Инструмент для автоматизации задач, упрощающий процессы установки зависимостей и запуска различных команд.

  • Black: Форматировщик кода, который помогает поддерживать код в чистом и читаемом состоянии, следуя единым стандартам оформления.

Этот стек технологий был выбран для обеспечения надежности, производительности и удобства разработки, что позволяет сосредоточиться на реализации бизнес-логики приложения.


.env

В проекте используются переменные окружения для конфигурации подключения к различным сервисам, таким как Telegram, база данных, и почтовый сервер. Вам необходимо создать файл .env на основе примера .env.example и заполнить его актуальными данными.

Шаги для настройки

  1. Скопируйте файл .env.example в .env:
cp .env.example .env

Заполните файл .env своими данными

  1. Откройте файл .env в любом текстовом редакторе и замените значения в угловых скобках на актуальные данные.

Описание переменных окружения

  • TELEGRAM_TOKEN: Токен вашего Telegram-бота. Получите его у BotFather.

  • TELEGRAM_CHAT_IDS: Список ID чатов Telegram, которые получат статус администратора. Эти ID можно получить после настройки бота.

  • DATABASE_URL: Полный URL для подключения к базе данных PostgreSQL. Пример:

    postgresql://<DB_OWNER>:<PASSWORD>@<DB_HOST>:<DB_PORT>/<DB_NAME>
    
    POSTGRES_USER: Имя пользователя, который является владельцем базы данных.
    
  • POSTGRES_PASSWORD: Пароль для подключения к базе данных.

  • POSTGRES_DB: Название базы данных, к которой происходит подключение.

  • DB_HOST: Хост базы данных (например, localhost или IP-адрес сервера).

  • DB_PORT: Порт для подключения к базе данных (обычно 5432 для PostgreSQL).

  • EMAIL: Адрес электронной почты, который будет использоваться для отправки сообщений менеджеру.

  • EMAIL_PASSWORD: Пароль для доступа к электронной почте, с которой будут отправляться сообщения.

  1. Пример заполненного файла .env:
  TELEGRAM_TOKEN=123456789:ABCdefGhijklMNOpqrstuvwxyz
  TELEGRAM_CHAT_IDS=123456789,987654321
  
  DATABASE_URL=postgresql://dbuser:password@localhost:5432/mydatabase
  POSTGRES_USER=dbuser
  POSTGRES_PASSWORD=password
  POSTGRES_DB=mydatabase
  DB_HOST=localhost
  DB_PORT=5432
  
  [email protected]
  EMAIL_PASSWORD=your-email-password

Как использовать Makefile

Makefile предоставляет команды для упрощения управления зависимостями, миграциями базы данных и запуском приложения. Вот описание каждой команды:

1. Установка зависимостей

Команда устанавливает зависимости, указанные в pyproject.toml, с помощью Poetry.

Использование:

make install

2. Установка нового пакета

Команда добавляет новый пакет в проект с помощью Poetry. Нужно передать переменную PACKAGE, указывающую имя пакета.

Использование:

make install-package PACKAGE=<имя_пакета>

3. Обновление зависимостей

Команда обновляет все зависимости до последних версий с помощью Poetry.

Использование:

make update

4. Запуск приложения

Команда запускает основное приложение, используя переменные PYTHON (интерпретатор) и APP (главный файл приложения).

Использование:

make run

5. Очистка .pyc файлов

Команда удаляет все файлы .pyc, которые создаются при компиляции Python. Это помогает очистить проект от временных файлов.

Использование:

make clean

6. Форматирование кода

Команда форматирует весь код проекта по стандарту black.

Использование:

make format

7. Применение миграций

Команда применяет все доступные миграции к базе данных с помощью Alembic.

Использование:

make migrate

8. Откат миграций

Команда откатывает последнюю примененную миграцию базы данных с помощью Alembic.

Использование:

make downgrade

9. Создание миграции

Команда создает новую миграцию на основе изменений в моделях базы данных. Необходимо указать описание изменений в переменной msg.

Использование:

make makemigration msg="описание изменений"

10. Docker Compose команда

Команда выполняет следующие действия для работы с Docker Compose:

  • Проставляет текущее состояние миграций: alembic stamp head.
  • Генерирует новую миграцию: alembic revision --autogenerate.
  • Применяет миграции: alembic upgrade head.
  • Запускает основное приложение.

Использование:

make docker_compose_command

About

Бот команды Ксении

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages