Обновил описание проекта
This commit is contained in:
79
README.md
79
README.md
@@ -0,0 +1,79 @@
|
|||||||
|
# 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. Запустите проект:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./mvnw spring-boot:run
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Откройте в браузере: `http://localhost:8080`
|
||||||
|
|||||||
Reference in New Issue
Block a user