Справочник представляет собой API приложение(DRF) для поиска номеров телефонов и информации об организациях. Визуальное представление не требуется, только API.
Основные требования и возможности:
- Информация, хранимая об организации: адрес, название, описание и список сотрудников.
- У каждого сотрудника есть ФИО, должность и номера телефонов.
- Номера телефонов могут быть различных типов: Рабочий, Личный, Факс. Но хотя бы один номер телефона у сотрудника должен быть обязательным.
- Рабочие телефоны могу быть одинаковыми для нескольких сотрудников, но личные — нет.
- Создать организацию с одинаковым названием нельзя.
- Номера телефонов должны храниться в международном формате E.123: +7 916 1234567.
- Аутентификация в приложении должны быть реализована через email и пароль.
- Пользователь сайта и сотрудник фирмы — это две разные сущности и между собой не связаны.
При запросе к API на получение списка организаций, данные выводятся в следующей структуре.
Результаты:
- ООО Ромашка
- Иванов Сергей Петрович (Инженер)
- Факс: +74951234567
- Басурман Иван Павлович (Бухгалтер)
- Рабочий: +79161234567
- Факс: +74951234567
- Иванов Сергей Петрович (Инженер)
- ООО Василек
- Цветкова Яна Ивановна (Программист)
- Личный: +79161234567
- Факс: +74951234567
- Цветкова Яна Ивановна (Программист)
- ООО Гремучая ива
- И так далее
Обратите внимание, что для доступа к странице конкретной фирмы или сотрудника, необходимо так же выводить их id.
Для вывода списка организаций, элементов поиска и сотрудников организации, всегда используем пагинатор. Стандартное количество элементов на всех страница — 10 штук, но пользователь может менять количество элементов с помощью параметров запроса.
При запросе конкретной организации выводится список всех сотрудников с их должностями и номерами телефонов, формат аналогичен формату выше.
- Создавать организации
- Посмотреть список организаций, в которых он может изменять данные сотрудников.
- Добавлять и удалять сотрудников, редактировать их ФИО, должности и номера телефонов.
- Предоставить по email доступ любому пользователю к редактированию организации.
- Просмотреть список пользователей, которым доступно редактирование созданных им организаций.
- Отозвать права на редактирование.
- Изменять информацию об организации: адрес, название и описание.
- Необходимо добавить все модели в админку джанго, чтобы суперпользователь мог редактировать оттуда любую информацию.
- Создайте пустой репозиторий и работайте в нем, когда будете готовы — запуште изменения и пришлите ссылку на репозиторий.
- Выделите наиболее важные задачи в этом проекте и делайте в зависимости от приоритета. Лучше сделать половину задач и будет цельное рабочее приложение, чем много мелких, но основная задача выполняться не будет.
- Разрабатывать приложение необходимо на Django REST Framework.
- Вы свободны в выборе библиотек необходимых для выполнения задания.
- Надо описать README.md файл с инструкцией по запуску.
- Ключевые моменты: архитектура приложения и качество кода.
- Приветствуются любые дополнения к данному ТЗ: весь дополнительный функционал необходимо описать в
README.md
. - Допускаются небольшие отступления от ТЗ.
- Добавьте поиск в приложение: поиск должен осуществляется по названию организации, ФИО сотрудника и номеру телефона. В результатах поиска выводится название организации и первые 5 сотрудников, подходящих под условия поиска. Или просто название организации, если в ней нет сотрудников, подходящих под условия поиска. Если какого-то телефона нет, он не показывается. Примеры ответов ниже показывают ожидаемую иерархию данных.
Поиск представляет собой API вида /search?q=Метал
Результаты:
- ООО Заборы из металла
- ОГО Металлические нервы
- ОАО Металлург
- ООО Облака
- Металлист Виктор Сергеевич (Программист)
- Личный: +79161234567
- Факс: +74951234567
- Металлист Виктор Сергеевич (Программист)
- И так далее