Skip to content

Laboratory work 3 - Librarian API

Рейнгеверц В.А. - K33401

ER Diagram

Urls

Swagger API Docs

Description

Задание 2

Создать программную систему, предназначенную для работников библиотеки. Такая система должна обеспечивать хранение сведений об имеющихся в библиотеке книгах, о читателях библиотеки и читальных залах.

Для каждой книги в БД должны храниться следующие сведения: название книги, автор (ы), издательство, год издания, раздел, число экземпляров этой книги в каждом зале библиотеки, а также шифр книги и дата закрепления книги за читателем. Книги могут перерегистрироваться в другом зале.

Сведения о читателях библиотеки должны включать номер читательского билета, ФИО читателя, номер паспорта, дату рождения, адрес, номер телефона, образование, наличие ученой степени.

Читатели закрепляются за определенным залом, могут переписаться в другой зал и могут записываться и выписываться из библиотеки.

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

Библиотека может получать новые книги и списывать старые. Шифр книги может измениться в результате переклассификации, а номер читательского билета в результате перерегистрации.

Библиотекарю могут потребоваться следующие сведения о текущем состоянии библиотеки:

  • Какие книги закреплены за заданным читателем?
  • Кто из читателей взял книгу более месяца тому назад?
  • За кем из читателей закреплены книги, количество экземпляров которых в библиотеке не превышает 2?
  • Сколько в библиотеке читателей младше 20 лет?
  • Сколько читателей в процентном отношении имеют начальное образование, среднее, высшее, ученую степень?

Библиотекарь может выполнять следующие операции:

  • Записать в библиотеку нового читателя.
  • Исключить из списка читателей людей, записавшихся в библиотеку более года назад и не прошедших - перерегистрацию.
  • Списать старую или потерянную книгу.
  • Принять книгу в фонд библиотеки.

Необходимо предусмотреть возможность выдачи отчета о работе библиотеки в течение месяца. Отчет должен включать в себя следующую информацию:

  • Количество книг и читателей на каждый день в каждом из залов и в библиотеке в целом
  • Количество читателей, записавшихся в библиотеку в каждый зал и в библиотеку за отчетный месяц.

Requirements

  • django-phonenumber-field[phonenumberslite]
  • djoser
  • djangorestframework_simplejwt
  • drf_yasg
docs
  • mkdocs
  • mkdocs-material
  • mkdocs-jupyter