Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 3.51 KB

task.md

File metadata and controls

42 lines (33 loc) · 3.51 KB

Задача

Создать бэкенд и фронтенд для управления списком книг. Развернуть веб-сервер и запустить созданное приложение. Код выложить на github.com

Интерфейс

Cостоит из двух частей:

  1. Таблица, в которой отображаются все существующие книги и информация о них. Поддерживает, добавление, удаление и изменении информации о книгах.
  2. Форма, в которой можно выбрать, какую информацию о книгах отображать в таблице.

Бэкенд

Бэкенд приложения должен иметь 2 REST ресурса:

  1. profile - для управления видимостью параметров книг. Возвращается предустановленный набор столбцов, добавлять и удалять записи нельзя. Разрешено менять видимость столбцов (параметр is_visible)
  2. book - для управления книгами. Разрешено добавлять, изменять и удалять книги.

Требования к реализации

  • Выводить таблицу со всеми существующими книгами (из ресурса book)
  • Бэкенд должен быть выполнен на Django. Для реализации REST API можно использовать Django Tastypie или Django REST framework. Данные хранить в БД sqlite или postgres
  • Отображать только видимые столбцы (столбцы с is_visible = true полученные из ресурса profile)
  • Управление видимостью столбцов (через ресурс profile). Можно сделать на отдельной странице.
  • Добавление, редактирование и удаление книг (через ресурс book)
  • При сохранении невалидных данных выводить сообщение об ошибке
  • Опционально - скрытые параметры выводить в свернутых столбцах, которые можно развернуть.

Ресурс профиля

Аттрибуты ресурса: ● column_name - название столбца, запрещено редактировать ● is_visible - bool, флаг видимости столбца

Доступные действия над ресурсом

Получение списка видимых столбцов, изменение видимости столбца

Ресурс книги

Аттрибуты ресурса: ● name - str, обязательное, максимальная длина 20 ● title - str, не обязательное, максимальная длина 30 ● author - str, обязательное, максимальная длина 30 ● description - str, не обязательное, максимальная длина 512 ● price - int, обязательное, максимальная длина 5

Доступные действия над ресурсом

Получение списка книг, добавление книги, изменение книги, удаление книги