Проект: Yandex ambassador backend

Начат 2024-02-26
Статус: завершён
Бэкенд для CRM системы Яндекс амбассадоры

Цель проекта

Разработка бэкенда для системы управления амбассадорами Яндекса.

Роль в проекте

  • Основная роль - Тимлид команды разработки
  • Зона ответственности:
    • Разработка модели данных
    • Описание ендпоинтов
    • Ревью кода
  • Разработка кода ендпоинтов (~30% от общего количества ендпоинтов)

Команда проекта:

Что реализовано

  • Авторизация комьюнити-менеджеров
  • Работа с амбассадорами
    • Создание амбассадора посредством телеграм-бота
    • Обновление данных амбассадора черех телеграм-бот и через CRM
    • Получение списка амбассадоров
    • Получение данных конкретного амбассадора
    • Получение переписки амбассадора, его мерчей, отчетов о выполнении заданий
  • Статистика
    • распределение амбассадоров по статусам
    • распределение амбассадоров по программам обучения
  • Вспомогательные функции - получение служебных данных для работы системы
  • Автодукоментация API

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

  • Python
    • python 3.10 - высокоуровневый язык программирования общего назначения
  • Разработка (requirements.txt)
    • django 4.2.7 - фреймворк для веб-приложений на языке Python
    • djangorestframework - инструмент для разработки веб-API в приложениях на основе Django
    • drf-yasg - автодокументирование API Django Rest Framework
    • psycopg2-binary 2.9.9 - фреймворк взаимодействия с СУБД PostgreSQL
    • gunicorn 21.2.0 - фреймворк взаимодействия между Django и веб-сервером
    • python-dotenv 1.0.1 - фреймворк установки переменных окружения из файла
  • Стилизация (requirements_style.txt)
    • black - форматирование программного кода
    • isort - сортировка импортов библиотек/модулей в алфавитном порядке и по группам (системные, фреймворки, приложение)
    • flake8 - проверка кода на соответствие правилам оформления кода (PEP8)
    • pep8-naming - проверка именование объектов стандартам PEP8
    • flake8-broken-line - ищет обратную косою черту, которая используется для разрыва строки
    • flake8-return - проверка корректности использования оператора return
    • flake8-isort - проверяет корректность расположения импортов
  • Дополнительно (для развертывания/деплоя)
    • docker - «упаковка» приложения со всем его окружением и зависимостями в контейнер, который может быть развёрнут на любой Linux-системе
    • docker compose - позволяет запускать несколько контейнеров, объединяя их между собой
    • PostgreSQL (docker image) - система управления базами данных PostgreSQL
    • Nginx (docker image) - Web сервер