KOTIKI - это революционная социальная сеть, предоставляющая пользователям широкие возможности, в которой каждый может почувствовать себя котиком. На платформе пользователи могут:
- Создать и изменить аккаунт
- Создать пост с текстом и/или фото
- Просматривать посты других пользвателей
- Начать чат с другим пользователем
- Оставить реакцию на пост или пожаловаться на него
- Подписаться на другого пользователя
2023-05-24-17-07-11.mp4
Для просмотра документации API откройте файл api-docs.yaml из корня проекта
- Java 17
- PostgreSQL — объектно-реляционная система управления базами данных
- Docker — контейнеризатор приложений
- Spring Boot — набор инструментов и библиотек для создания приложений корпоративного уровня
- Spring WebFlux — реактивный веб-фреймворк
- Spring Security — фреймворк, предоставляющий механизмы построения систем аутентификации и авторизации
- Spring Data — библиотека, которая добавляет дополнительный уровень абстракции поверх ORM реализации JPA
- R2DBC — спецификация, направленная на стандартизацию доступа к базам данных SQL с использованием реактивных шаблонов
- Lombok — библиотека для сокращения кода в классах
- Flyway — инструмент миграции баз данных
- Hibernate Reactive — реактивное API для Hibernate ORM
Для механизма аутентификации используются JWT, который работает следующим образом:
- Пользователь отправляет учетные данные на сервер.
- Сервер аутентифицирует пользователя и создает JWT-токен (refresh и access). Access токен содержит информацию о пользователе и данные о том, к каким ресурсам у пользователя есть доступ. Refresh токен используется для обновления access токена.
- Сервер устанавливает access и refresh токен в Cookie клиенту, присваивая им флаг httpOnly, чтобы ограничить чтение и запись данных посредством JavaScript.
- Сервер проверяет JWT-токен и предоставляет доступ к ресурсам, если токен действителен, в противном случае валидирует refresh токен пользователя, после чего обновляет access токен или запрещает клиенту доступ к ресурсам.
- Клонирование репозитория
git clone https://github.com/Make-senior-cry/KOTIKi-backend.git
cd KOTIKi-backend
- Запуск Docker Compose
docker-compose up