Skip to content

MVP CRM-системы для Амбассадоров Яндекс Практикума

Notifications You must be signed in to change notification settings

BittWizards/backend

Repository files navigation

MVP CRM-системы для Амбассадоров Яндекс Практикума.

Посмотреть проект можно по ссылке

Оглавление

  1. О проекте
  2. Архив с кодом репозитория и скриншотами
  3. Документация
  4. Стек технологий
  5. Функционал
  6. Установка зависимостей
  7. Запуск
  8. Наполнение БД
  9. Telegram бот
  10. Тесты и покрытие
  11. Авторы проекта

О проекте

MVP CRM-системы для Амбассадоров Яндекс Практикума.

Архив с кодом репозитория и скриншотами

Диск

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

Документация сгенерирована автоматически при помощи drf-spectacular.

Swagger

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

Python Django DRF Celery Redis PostgreSQL Gunicorn drf-spectacular django-channels

Swagger Docker DockerCompose Nginx Certbot GitHub GitHub Actions

Функционал

  1. Реализован базовый функционал CRM приложения.
  2. Настроена интеграция с Yandex Forms.
  3. Добавлена возможность наполнения бд через xlsx файл.
  4. Настроен websocket для push уведомлений.
  5. Подключен прототип telegram бота.
  6. Реализована рассылка через email и telegram.
  7. Для рассылки подкючен celery, также есть возможность отложенной отправки.

Помимо всего прочего для удобства ведения дальнейшей разработки мы использовали аннотацию типов и докстринги. Для поддержания работоспособности кода покрыли его тестами, использовав библиотеку pytest. Для удобства развертывания настроили docker compose и прикрутили CI/CD.

Установка зависимостей для полного разворачивания проекта

  1. Склонируйте репозиторий на локальную машину и перейдите в него:
git clone https://github.com/BittWizards/backend.git
cd backend
  1. Создайте .env файл:
touch .env
  1. Заполните по примеру своими значениями: скопируйте этот файл

  2. Установить docker

В терминале linux это можно сделать так:

  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

Примечание. Для запуска на сервере достаточно настроить файл .env и запустить файл docker-compose.production.yml


Запуск

  1. Запустите контейнеры с проектом следующей командой (используйте флаг -d для запуска в фоновом режиме):
docker compose up

На сервере:

docker compose -f docker-compose.production.yml up

В терминале Linux могут потребоваться права суперпользователя:

sudo docker compose -f docker-compose.production.yml up
  1. Для доступа в админ-зону:

Логин: admin@admin.com

Пароль: admin

Наполнение БД

Для импорта начальных данных воспользуйтесь командой:

docker compose exec backend python manage.py xml_import

После запуска проект можно будет посмотреть по ссылке.

Посмотреть документацию: Swagger

Telegram bot

Реализован небольшой функционал чат бота. Добавлено веб приложение для бота.

Для прослушивания уведомлений от telegram api используется webhook.

Чтобы установить вебхук для вашего домена воспользуетесь следующей командой:

docker compose exec backend python manage.py telegram_webhook -s

Тесты и покрытие

Покрытие составляет 84 процента.

Процент покрытия

Запустите тесты в терминале из текущей папки:

docker compose exec backend run -m pytest

Авторы проекта

Оглавление