Новые времена:
Spring Boot 2.x + HATEOAS + JWT/OAuth2 + ...
Проект в разработке, следите за обновлениями

?

Boot

Новые времена:
Spring Boot 2.x + HATEOAS + JWT/OAuth2 + ...

?

Разработка приложения "СИСТЕМА ГОЛОСОВАНИЕ ЗА РЕСТОРАНЫ".
Spring Boot 2.x, HATEOAS, Lombok, H2, JWT, OAuth2, Swagger, Thymeleaf 3, Spring WebSocket, Reactor 3, Spring WebFlux

Стек проекта
  • JDK 11/13, Spring Boot 2.2.x, Spring 5.2.x
  • JUnit 5 + Extensions.
  • Spring Data REST / HATEOAS/ Paging
  • Авторизация: Basic, JWT, OAuth2
  • База данных H2
  • Project Lombok
  • Mockito, AssertJ, модульное и интеграционное тестирование
  • Maven c миграцией на Gradle
  • Документирование API: Swagger
  • Шаблонизатор Thymeleaf 3
  • Server push: Spring WebSocket
  • Reactor 3, Spring WebFlux

ВНИМАНИЕ: далее возможны изменения

Предлагайте свои идеи. По микросервисам (Spring Cloud, Kafka, Nginx, ...) планирую отдельный курс, как доработка этого проекта.
  • Вступление

    • Что такое Spring-Boot. Первое приложение / Spring Initializr
    • Spring Boot maven plugin. Конвертация в WAR. Детали реализации
    • Настройка проекта
    • Проект Lombok
  • Работа с DB (H2, Spring Data JPA)

    • Spring Data JPA. ApplicationRunner
    • H2. Популирование и конфигурирование
    • Рефакторинг model. Spring Data JPA @Query
  • Spring Data REST + HATEOAS

    • Spring Data REST
    • Конфигурирование Jackson
  • Домашнее задание

    • Реализация Spring Data REST API администрирования
  • Spring Security

    • Подключение Security. Аутентификация по умолчанию
    • Конфигурирование в коде приложения. Password Encoding
    • Аутентификация пользователя из БД. AuthUser
    • Role and GrantedAuthority
    • Basic authorization. Кастомизация Json
  • Домашнее задание

    • Смена пароля в AccountController
    • Выполнить API голосования и промотра меню ресторанов
  • Разбор HW1
  • Конфигурирование: @Value, @ConfigurationProperties
  • Code completion for custom properties: configuration-processor
  • Авторизация JWT
  • Атворизация OAuth2. Реализация для GitHub
  • Домашнее задание
    • Реализовать API показа меню
    • Optional: реализавать авторизацию чз любого другого провайдера OAuth2 (Yandex, Mail.ru, VK, Google, ..)
  • Spring Data REST Projections and Excerpts
  • Actuator Endpoints
  • Actuator: информации о приложении
  • Тестирование
    • Mockito
    • AssertJ
    • Unit tests
    • Integration tests
  • Домашнее задание
    • Реализовать тесты
    • Optional: реализовать актуатор
  • Разбор HW3
  • Документирование API: Swagger2
  • Свой spring-boot-starter
  • Домашнее задание
  • Разбор HW4
  • Thymeleaf 3. Реализация UI для входа в систему голосования
  • Spring Events. Хранение результатов голосования
  • Динамическое отображение на UI результатов голосования. Spring WebSocket
  • Домашнее задание
    • Реализация UI для отображения ресторанов
    • Optional: реализация UI голосования
  • Разбор HW5
  • Прикрепление администраторов к ресторанам
  • Проверка прав. Hibernate Event Listeners
  • Отогбражение результатов (Server push, Spring WebSocket)