Skip to content

Web-Library full-stack project written in Java for backend and Angular for frontend. Both frontend and backend are in this project.

License

Notifications You must be signed in to change notification settings

SevenLightnapper/library

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Электронная библиотека

Описание

"Электронная библиотека" — это RESTful веб-сервис, предназначенный для управления коллекцией книг. Этот проект позволяет пользователям выполнять стандартные операции CRUD (создание, чтение, обновление и удаление) для книг в электронном каталоге. Помимо основных функций управления данными, в проекте реализованы возможности поиска книг по различным параметрам, таким как название, автор, год издания, ISBN, жанр и количество страниц.

Проект создан с использованием Spring Boot, что обеспечивает высокую производительность, удобство развертывания и простоту использования. Система хранения данных базируется на PostgreSQL, обеспечивая надежное и эффективное управление большими объемами информации.

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

Технологии

Backend

  • Java 17
  • Spring Boot (version 3.2.2)
  • PostgreSQL (driver 42.6.0)
  • JPA / Hibernate
  • Liquibase
  • Lombok
  • JWT (JSON Web Token)

Frontend

  • Angular CLI 17.1.3
  • Angular Material
  • Node.js 20.11.0
  • TypeScript 5.3.2
  • HTML5
  • CSS3

Об авторе

Установка и настройка

Скопируйте проект с github'а: git clone https://github.com/SevenLightnapper/library.git

Зайдите в проект локально: cd path/to/your-project

Соберите проект:

  • maven-wrapper сборка: ./mvnw clean install
  • maven сборка: mvn clean install

Запуск проекта

Создайте базу данных, например library, в pgAdmin (PostgreSQL). И подключитесь к базе данных в своей среде разработки.

  • В файле application.yml можно изменить название базы данных в строке:

    url: jdbc:postgresql://localhost:5432/your_database

  • Также можно изменить имя пользователя (владельца базы данных) и его пароль:

    username: your_username

    password: your_password

В консоли переходите в корневой каталог проекта и запускаете сборку:

  • maven-wrapper сборка: ./mvnw spring-boot:run
  • maven сборка: mvn spring-boot:run

Использование

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

Все нижеуказанные методы реализованы в классе BookController.

  1. Получение списка всех книг: GET /books
  2. Получение книги по ID: GET /books/{id}
    Замените {id} на идентификатор книги.
  3. Добавление новой книги: POST /books
    Тело запроса должно содержать данные книги в формате JSON.
  4. Обновление книги по ID: PUT /books/{id}
    Замените {id} на идентификатор книги. Тело запроса должно содержать обновленные данные книги в формате JSON.
  5. Удаление книги по ID: DELETE /books/{id}
    Замените {id} на идентификатор книги.
  6. Поиск книг, название или имя автора которых содержит заданную строку: GET /books/search/{title}
    Замените {title} на название книги (часть названия) или имя автора (часть имени).
  7. Поиск книг по нескольким параметрам: GET /books/search
    Параметры запроса могут содержать: название книги, имя автора, ISBN, название жанра, год издания, минимальное и максимальное количество страниц.
  8. Поиск книг по ID автора: GET /books/author/{authorId}
    Замените {authorId} на идетификатор автора.
  9. Поиск книг по ID жанра: GET /api/books/genreId
    Замените {genreId} на идетификатор жанра.

TODO:

  • Добавить описание методов API для авторов.
  • Добавить описание методов API для жанров.
  • Добавить описание методов API для пользователей.
  • Добавить раздел фронтенда. Или создать еще один README, но в модуле фронтенда.
  • Добавить описание методов аутентификации.
  • Добавить описание взаимодействия/настроек приложения для связи между бэкендом и фронендом.
  • Добавить примеры запросов HTTP или CURL для каждого эндпоинта API.
  • Возможно расширить раздел "Об авторе".
  • Обновить описание проекта.