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, за что ему большое спасибо!
Как запустить
- Установите и настройте MySQL
- Укажите параметры подключения в
application.properties - Запустите проект:
./mvnw spring-boot:run
- Откройте в браузере:
http://localhost:8080
Description
Languages
Java
70.7%
Fluent
19.8%
FreeMarker
5.9%
CSS
3.6%