Skip to content

TrueTony/SpringLibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SpringLibrary

MVC приложение реализующее функционал библиотеки.

Инструменты

  • Java (11)
  • Spring
  • Hibernate
  • Thymeleaf
  • Postgresql
  • Tomcat

Реализация

Реализация проекта через паттерны MVC и DAO.
В БД создаются таблицы Person и Book в отношении один ко многим.
В проекте создаются два аналогичные сущности и DAO для них, вся работа с БД происходит через сервисы.
Все команды выполняются средствами Hibernate и Spring Data JPA. DAO оставлен для более сложных запросов.

Функционал

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

  • Страницы со списком всех людей и книг (люди и книги кликабельные - при клике осуществляется переход на их страницу).

  • На странице человека показаны значения его полей и список книг, которые он взял. Если человек не взял ни одной книги, то выводится соответствующий текст.

  • На странице книги показаны значения полей этой книги и имя человека, который взял эту книгу. Если эта книга не была никем взята, то выводится соответствующий текст

  • Функционал "освобождения книги" на странице книги. После нажатия на кнопку книга снова становится свободной и пропадает из списка книг человека. Так же если книга свободна, есть выпадающий список со всеми людьми и кнопка "Назначить книгу". После нажатия на эту кнопку, книга привязывается к выбранному человеку и появляется в его списке книг.

  • Все поля валидируются с помощью @Valid и Spring Validator, если это требуется.

  • Пагинация книг. Метод index() в BooksController принимать в адресной строке два ключа: page и books_per_page. Первый ключ сообщает, какую страницу мы запрашиваем, а второй ключ сообщает, сколько книг должно быть на одной странице. Нумерация страниц стартует с 0. Если в адресной строке не передаются эти ключи, то возвращаются все книги.
    Пример http://localhost:8080/books?page=1&books_per_page=2

  • Сортировка книг по году. Метод index() в BooksController уметь принимать в адресной строке ключ sort_by_year. Если он имеет значение true, то выдача будет отсортирована по году. Если в адресной строке не передается этот ключ, то книги возвращаются в обычном порядке.
    Пример http://localhost:8080/books?sort_by_year=true

  • Пагинация и сортировка могут работать одновременно.

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

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

About

Реализация библиотеки на Spring с применением Spring Core, Web, Hibernate, Thymeleaf

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published