Skip to content

Sauron971/LibraryManagementAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibraryManagementAPI

REST API для управления библиотечной системой.

О проекте

Проект представляет собой backend-приложение для управления библиотечным каталогом.

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

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

Основной функционал

Аутентификация и авторизация

Реализована система пользователей с использованием JWT-токенов.

Поддерживаются роли:

  • Администратор

    • управление книгами;
    • управление авторами;
    • просмотр информации о читателях;
    • управление библиотечными ресурсами.
  • Читатель

    • просмотр доступных книг;
    • работа со своей информацией;
    • взаимодействие с системой выдачи книг.

Управление книгами

Реализованы CRUD-операции для книг.

Информация о книге включает:

  • идентификатор;
  • название;
  • описание;
  • дату публикации;
  • автора(ов);
  • жанры;
  • количество доступных экземпляров.

Управление авторами

Реализованы операции создания, просмотра, изменения и удаления авторов.

Данные автора:

  • имя;
  • биография;
  • дата рождения.

Работа с выдачей книг

Реализована система выдачи и возврата книг.

Возможности:

  • выдача книги читателю;
  • ограничение количества одновременно выданных книг (до 5);
  • фиксация даты выдачи;
  • фиксация предполагаемой даты возврата;
  • обработка возврата книги;
  • обновление количества доступных экземпляров.

Дополнительный функционал

В проекте реализованы:

  • пагинация списков;
  • фильтрация данных;
  • валидация входящих данных;
  • обработка ошибок с HTTP статусами;
  • логирование основных событий;
  • миграции базы данных;
  • тестирование API.

Технологии

Backend:

  • Python 3.8+
  • FastAPI

База данных:

  • PostgreSQL
  • SQLAlchemy ORM

Безопасность:

  • JWT Authentication

Миграции:

  • Alembic

Тестирование:

  • Pytest

Дополнительно:

  • Docker

Архитектура проекта

Приложение построено по принципу разделения ответственности:

  • API слой — обработка HTTP-запросов;
  • сервисный слой — бизнес-логика приложения;
  • модели базы данных — описание сущностей;
  • репозитории — взаимодействие с базой данных.

Цель проекта

Проект создан для изучения разработки REST API на FastAPI и включает основные элементы современного backend-разработчика:

  • проектирование API;
  • работа с базами данных;
  • авторизация;
  • миграции;
  • тестирование;
  • обработка бизнес-логики.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors