← Назад к списку
Логотип Python Python
11.02.2026

Тестовое задание Backend python

Компания: ООО МКК Луна

Тестовое задание "Создание REST API приложения"

Описание

Необходимо реализовать REST API приложения для справочника Организаций, Зданий, Деятельности.

Организация

Представляет собой карточку организации в справочнике и должна содержать в себе следующую информацию:

  • Название: например ООО "Рога и Копыта"
  • Номер телефона: организация может иметь несколько номеров телефонов (2-222-222, 3-333-333, 8-923-666-13-13)
  • Здание: организация должна находиться в одном конкретном здании (например, Блюхера, 32/1)
  • Деятельность: организация может заниматься несколькими видами деятельностей (например, "Молочная продукция", "Мясная продукция")

Здание

Содержит в себе как минимум информацию о конкретном здании:

  • Адрес: например г. Москва, ул. Ленина 1, офис 3
  • Географические координаты: местоположение здания должно быть в виде широты и долготы

Деятельность

Позволяет классифицировать род деятельности организаций в каталоге. Имеет название и может в древовидном виде вкладываться друг в друга.

Пример возможного дерева деятельности:

  • Еда
    • Мясная продукция
    • Молочная продукция
  • Автомобили
    • Грузовые
    • Легковые
      • Запчасти
      • Аксессуары

Стек

fastapi + pydantic + sqlalchemy + alembic

Функционал приложения

Взаимодействие с пользователем происходит посредством HTTP запросов к API серверу с использованием статического API ключа.

Все ответы должны быть в формате JSON.

Необходимо реализовать следующие методы:

  • список всех организаций, находящихся в конкретном здании
  • список всех организаций, которые относятся к указанному виду деятельности
  • список организаций, которые находятся в заданном радиусе/прямоугольной области относительно указанной точки на карте
  • список зданий
  • вывод информации об организации по её идентификатору
  • искать организации по виду деятельности:
    • например, поиск по виду деятельности "Еда" (первый уровень дерева), и чтобы нашлись все организации, которые относятся к видам деятельности, лежащим внутри
    • т.е. в результатах поиска должны отобразиться организации с видом деятельности: Еда, Мясная продукция, Молочная продукция
  • поиск организации по названию

Ограничить уровень вложенности деятельностей 3 уровнями.

Задание

  1. Спроектировать БД.
  2. Создать необходимые миграции.
  3. Заполнить БД тестовыми данными.
  4. Реализовать API согласно разделу "Функционал приложения".
  5. Завернуть приложение в Docker контейнер, чтобы его можно было развернуть на любой машине (если необходимо, добавить инструкцию по разворачиванию).
  6. Добавить в проект документацию Swagger UI или Redoc с описанием всех методов приложения.