Чат-бот для предоставления информации, помощи в обслуживании клиентов, проведения маркетинговых кампаний.
SCID — это цифровое агентство полного цикла, основанное в 2008 году. Оно занимается созданием IT-решений, которые помогают компаниям оптимизировать бизнес-процессы и улучшить эффективность. Среди ключевых услуг агентства — разработка сайтов, мобильных приложений, CRM-систем и систем бизнес-аналитики (BI).
Основные направления деятельности SCID включают:
- Разработку программного обеспечения, включая системы для управления бизнесом;
- Создание сайтов и мобильных приложений для различных отраслей, включая медицину, образование и ритейл;
- Интеграцию с корпоративными системами и разработку сложных CRM-систем;
- Внедрение бизнес-аналитики (BI) для компаний с помощью современных цифровых инструментов.
- 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: Форматировщик кода, который помогает поддерживать код в чистом и читаемом состоянии, следуя единым стандартам оформления.
Этот стек технологий был выбран для обеспечения надежности, производительности и удобства разработки, что позволяет сосредоточиться на реализации бизнес-логики приложения.
В проекте используются переменные окружения для конфигурации подключения к различным сервисам, таким как Telegram, база данных, и почтовый сервер. Вам необходимо создать файл .env
на основе примера .env.example
и заполнить его актуальными данными.
- Скопируйте файл
.env.example
в.env
:
cp .env.example .env
- Откройте файл
.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
: Пароль для доступа к электронной почте, с которой будут отправляться сообщения.
- Пример заполненного файла
.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 предоставляет команды для упрощения управления зависимостями, миграциями базы данных и запуском приложения. Вот описание каждой команды:
Команда устанавливает зависимости, указанные в pyproject.toml
, с помощью Poetry
.
Использование:
make install
Команда добавляет новый пакет в проект с помощью Poetry
. Нужно передать переменную PACKAGE
, указывающую имя пакета.
Использование:
make install-package PACKAGE=<имя_пакета>
Команда обновляет все зависимости до последних версий с помощью Poetry
.
Использование:
make update
Команда запускает основное приложение, используя переменные PYTHON
(интерпретатор) и APP
(главный файл приложения).
Использование:
make run
Команда удаляет все файлы .pyc, которые создаются при компиляции Python. Это помогает очистить проект от временных файлов.
Использование:
make clean
Команда форматирует весь код проекта по стандарту black.
Использование:
make format
Команда применяет все доступные миграции к базе данных с помощью Alembic.
Использование:
make migrate
Команда откатывает последнюю примененную миграцию базы данных с помощью Alembic.
Использование:
make downgrade
Команда создает новую миграцию на основе изменений в моделях базы данных. Необходимо указать описание изменений в переменной msg.
Использование:
make makemigration msg="описание изменений"
Команда выполняет следующие действия для работы с Docker Compose:
- Проставляет текущее состояние миграций: alembic stamp head.
- Генерирует новую миграцию: alembic revision --autogenerate.
- Применяет миграции: alembic upgrade head.
- Запускает основное приложение.
Использование:
make docker_compose_command