Портфолио, проекты и кейсы Creative

Бэкенд для СМИ

Backend



Облачные сервисы, интеграция и MongoDB


Срок реализации – 60 дней.


Задачи


  1. Настройка поля – понятного и удобного для авторов статей.
  2. Предоставление статей пользователю в унифицированном виде.
  3. Подключение метаданных к статьям, а также колонки с релевантными материалами.
  4. Генерация уникальных страниц разделов и запросов по настраиваемым шаблонам.

Стэк


Python, Django


Решение 


Пользователями проекта являются авторы статей и посетители сайта. Поэтому структура сайта должна быть одинаково удобной и для первых, и для вторых – с интуитивной навигацией без сложных фильтров и личных кабинетов.

В качестве инструмента для создания статей мы использовали готовый продукт, который предварительно настроили под наш проект. Это позволило дать людям, которые будут писать материалы для издания, простое и хорошо оптимизированное поле для работы и коммуникации.

Далее, для написания основного связующего Rest Api бэкенда, мы использовали Django с надстройкой Rest Framework, подключенными базами данных MongoDB и Redis, а также с воркером отложенных задач celery. Это помогло стандартизировать запросы к базе данных, сделать ее структуру более четкой, а выполнение запросов – более слаженным.

Архитектурное решение первоначально вызвало внутри команды много дискуссий. Нам важно было понять, как лучше всего доставить новостные статьи до пользователя. Выбирали из двух вариантов – использовать готовый модуль расширения поля для авторов или написать свой бэкенд, который будет соединять имеющийся инструмент с фронтендом, т.е. с тем, что увидит пользователь.

В итоге, после многочисленных тестов мы решили вынести бэкенд в отдельную “сущность” (а-ля облачный сервис), которая будет принимать, обрабатывать и хранить статьи от авторов.

Первую продакшн версию сайта мы сделали примерно за 2 месяца, а потом продолжили работу – добавили по просьбе клиента новый функционал и оптимизировали работу всех структурных элементов.



Проект продемонстрировал, что для обработки структурных данных – таких, как новостные статьи – очень эффективно использование документо-ориентированной базы данных MongoDB. А также, что хорошо оптимизированные облачные сервисы могут стать решением многочисленных проблем. В нашем проекте мы использовали их для преодоления трудностей интеграции с готовым продуктом (инструментом для авторов) и сохранения одинаковых состояний для всех поступающих данных.

Дмитрий, backend developer