Skip to content

Бот для детейлинг мастерской AVAPRODETAILING (команда Валерия)

Notifications You must be signed in to change notification settings

Studio-Yandex-Practicum/avaprodetailing_bot_1

Repository files navigation

Бот для детейлинг мастерской AVAPRODETAILING.

Описание проекта

Бот работает в связке с сервисом на FastAPI.

Основная функция сервиса - привлечение клиентов в сервис предприятия, путем развертывавания системы лояльности на платформе популярного мессенджера - Telegram.

Пользователь регистрируется в системе и получает 100 приветственных баллов. Может добавлять и удалять свой автотранспорт.

Администрирование так же осуществляется через мессенджер. Администратор может производить поиск, регистрацию, редактирование свойств клиента. Начислять бонусы лояльности за оплату услуг. Используется прием онлайн оплаты счетов.

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

Инструкция по сборке и запуску

Клонирование репозитория

Скопируйте репозиторий в свой аккаунт GitHub, нажав кнопку Fork. Fork Настройка:

Перейдите в раздел Settings -> Secrets and Variables -> Actions в вашем репозитории.

Добавьте следующие секреты:

  • DOCKER_USERNAME и DOCKER_PASSWORD - ваши учетные данные с Docker Hub.

  • HOST - IP адрес вашего сервера, где будет развернуто приложение.

  • USER - имя пользователя на сервере.

  • SSH_KEY - приватный SSH ключ для подключения к серверу.

  • PASSPHRASE - пароль для вашего SSH ключа.

Корректировка конфигурации:

Отредактируйте файл infra/docker-compose.yaml, указав ваш аккаунт в Docker Hub в качестве префикса для image.

Подготовка сервера

Установка Docker

Ниже рассматривается установка Docker на Ubuntu версии 20.04 и выше.

  • Если у вас не установлен curl, то выполните следующие команды:
sudo apt update
sudo apt install curl
  • Далее выполните последовательно оставшиеся команды:
curl -fSL https://get.docker.com -o get-docker.sh 
sudo sh ./get-docker.sh
sudo apt install docker-compose-plugin 
sudo systemctl status docker

После последней команды у вас в терминале должекн быть примерно такой вывод: Docker running

Создайте файл .env в корневой директории проекта, используя файл env.example в качестве шаблона.

BOT_TOKEN = <bot_id>
BOT_URL=<telegram_bot_url_link>
SHOP_ID=<shop_id_yookassa>
SHOP_TOKEN=<api_token_yookassa>

# connection string for sqlite
SQLITE_DATABASE_URL = sqlite+aiosqlite:///./<name>
# string for test/prod service mode
TEST_MODE = False

PGADMIN_DEFAULT_EMAIL=admin@example.com
PGADMIN_DEFAULT_PASSWORD=admin

# strings for postgresql connection
POSTGRES_PASSWORD=password
POSTGRES_USER=username
POSTGRES_DB=database
POSTGRES_HOST=db

SITE_URL=<имя домена>

WEBHOOK_SECRET=webhook_secret
WEB_SERVER_PORT=8080
WEB_SERVER_HOST=127.0.0.1

Скопируйте следующие файлы на ваш сервер в директорию, где будет храниться ваш проект:

  • infra/docker-compose.yaml
  • infra/nginx.conf (в директорию nginx)
  • .env

Это можно сделать через Панель управления сервером, если таковая имеется или через терминал командой:

scp /home/test.txt root@123.123.123.123:/directory

Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».

Если у вас ОС Windws, то используйте ПО Putty и команду pscp

Запуск проекта:

После переноса файлов на сервер проект будет автоматически запущен при отправке (push) изменений в вашем репозитории на GitHub. или вы можете запустить его командой в ssh сессим подключения в терминале в директории проекта:

sudo docker compose -f docker-compose.yml up -d

Остановить можно вручную

sudo docker compose -f docker-compose.yml down

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

Для доступа к таблицам бд на 8088 порту через веб-интерфейс можно получить длоступ к веб-интерфейсу для просмотра и редактирования БД. Так же при знании языка SQL можно подготовить запросы для дополнительных отчетов, которые не учтены в проекте. доступ по почте и паролю из .env файла

PGADMIN_DEFAULT_EMAIL=admin@example.com
PGADMIN_DEFAULT_PASSWORD=admin

Документация используемых библиотек

Aiogram Документация

Fast Api Документация

Pydantic Документация

Pydantic-settings Документация

qrcode Документация

Telegram Mini Apps Документация

Docker Документация

Alembic Документация

SQLALchemy Документация

Poetry Документация

Команда

  1. Балашов Валерий GitHub
  2. Корняков Никита GitHub
  3. Ламберт Елена GitHub
  4. Гугуцидзе Валерий GitHub

About

Бот для детейлинг мастерской AVAPRODETAILING (команда Валерия)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published