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