Проект: Yandex ambassador backend
Бэкенд для CRM системы Яндекс амбассадоры
Цель проекта
Разработка бэкенда для системы управления амбассадорами Яндекса.
Роль в проекте
- Основная роль - Тимлид команды разработки
- Зона ответственности:
- Разработка модели данных
- Описание ендпоинтов
- Ревью кода
- Разработка кода ендпоинтов (~30% от общего количества ендпоинтов)
Команда проекта:
- Роман @rsaleksandrov;
- Михаил @greenpandorik;
- Никита @Rederickmind;
- Дмитрий @DimaC1985.
Что реализовано
- Авторизация комьюнити-менеджеров
- Работа с амбассадорами
- Создание амбассадора посредством телеграм-бота
- Обновление данных амбассадора черех телеграм-бот и через 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 сервер