Files
sweater/README.md

3.0 KiB
Raw Blame History

Sweater — клон популярной социальной сети

Учебный проект, реализующий основные функции социальной сети: регистрация, авторизация, публикация сообщений, подписки, профиль пользователя и др. Разработан с использованием Spring Boot, Spring Security, MySQL, Thymeleaf/Freemarker, Flyway, Testcontainers и других технологий.


Функциональность

  • Сообщения

    • Добавление, просмотр, фильтрация
    • Редактирование
    • Пагинация с сокращённым списком ссылок
  • Пользователи

    • Регистрация с активацией по email
    • Аутентификация (Spring Security)
    • Авторизация по ролям (USER, ADMIN)
    • Подписка/отписка от пользователей
    • Просмотр списка подписчиков/подписок
    • Редактирование профиля
    • Хранение сессий в БД (rememberMe)
  • Безопасность

    • Spring Security + CustomUserDetailsService
    • Шифрование паролей
    • Валидация данных
    • reCAPTCHA при регистрации
    • Защита маршрутов по ролям (@EnableMethodSecurity)
  • Файлы и внешний вид

    • Загрузка изображений и других файлов
    • Доступ к статическим ресурсам
    • Bootstrap для стилизации форм и страниц
    • Freemarker вместо Mustache
  • Инфраструктура и миграции

    • MySQL вместо PostgreSQL
    • Flyway — миграции базы данных
    • Перевод генерации ID на IDENTITY
  • Тестирование

    • Интеграционные тесты c Testcontainers
    • Модульные тесты пользовательского сервиса

Стек технологий

  • Backend: Spring Boot, Spring MVC, Spring Data JPA, Spring Security
  • Frontend: Freemarker, Bootstrap
  • Database: MySQL
  • Migration: Flyway
  • Тесты: JUnit 5, Testcontainers
  • Прочее: reCAPTCHA, email-activation, file upload

Источники и вдохновение

  • Проект реализован основываясь на видеокурсе Андрея Letscode, за что ему большое спасибо!

Как запустить

  1. Установите и настройте MySQL
  2. Укажите параметры подключения в application.properties
  3. Запустите проект:
./mvnw spring-boot:run
  1. Откройте в браузере: http://localhost:8080