GithubHelp home page GithubHelp logo

sevenlightnapper / library Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.1 MB

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

License: Apache License 2.0

Java 39.20% HTML 10.24% TypeScript 39.05% CSS 11.51%
angular angular-cli angular-material css full-stack hibernate html java jwt-authentication lombok maven postgresql spring-boot-starter spring-boot-starter-data-jpa spring-boot-starter-web springboot typescript

library's Introduction

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

Описание

"Электронная библиотека" — это 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.
  • Возможно расширить раздел "Об авторе".
  • Обновить описание проекта.

library's People

Contributors

sevenlightnapper avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.