https://github.com/kotelnikovav/explore-with-me-microservices
Project for self-development
https://github.com/kotelnikovav/explore-with-me-microservices
docker grpc hibernate-orm java kafka maven postgresql rest spring-boot spring-cloud
Last synced: 3 months ago
JSON representation
Project for self-development
- Host: GitHub
- URL: https://github.com/kotelnikovav/explore-with-me-microservices
- Owner: KotelnikovAV
- Created: 2024-12-30T06:43:35.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-03T15:17:25.000Z (4 months ago)
- Last Synced: 2025-03-03T16:27:05.043Z (4 months ago)
- Topics: docker, grpc, hibernate-orm, java, kafka, maven, postgresql, rest, spring-boot, spring-cloud
- Language: Java
- Homepage:
- Size: 334 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Приложение Explore with me.
## 1. Описание проекта.
### 1.1 Идея приложения.
Explore with me это платформа для поиска и обмена информацией о мероприятиях. Пользователи могут публиковать, редактировать
и удалять события, а также находить единомышленников для участия в них через удобный интерфейс.
Свободное время — ценный ресурс. Ежедневно мы планируем, как его потратить — куда и с кем сходить.
Сложнее всего в таком планировании поиск информации и переговоры. Нужно учесть много деталей: какие намечаются
мероприятия, свободны ли в этот момент друзья, как всех пригласить и где собраться.
Основная цель - разбиение монолита на микросервисы, введение в рекомендательные системы.
### 1.2 Основная функциональность приложения.
Приложение состоит из публичного, приватного и административного API. Также приложение содержит в себе рекомендательный сервис.Основная функциональность публичного API:
- просмотр списка всех опубликованных мероприятий в краткой форме;
- просмотр конкретного мероприятия в расширенной форме.Основная функциональность приватного API для авторизованного пользователя:
- публикация и редактирование мероприятий;
- возможность подавать заявку на участие в мероприятии, а также ее редактирование до момента получения подтверждения;
- возможность подтверждать или отклонять входящие заявки на созданное им мероприятие;
- возможность ставить лайки посещенным мероприятиям, на основании которых формируется внешний рейтинг мероприятий
и пользователей, опубликовавших их;
- возможность получения списка рекомендуемых мероприятий на основании взаимодействий его и на него похожих пользователей
с другими мероприятиями.Основная функциональность административного API:
- модерация опубликованных событий (подтверждение или отклонение публикации мероприятий).Основная функциональность рекомендательного сервиса:
- сбор и агрегация действий авторизованных пользователей;
- получение списка рекомендуемых мероприятий для конкретного пользователя;
- предсказание действия, которое совершит конкретный пользователь над конкретным мероприятием.### 1.3 Стек используемых технологий.
Основные технологии и инструменты, используемые в данном проекте:
- Java (Amazon Corretto 21.0.6);
- Maven;
- Spring Boot;
- Spring Cloud;
- PostgreSQL;
- Hibernate ORM;
- Docker;
- Kafka;
- REST;
- gRPC.## 2. Инструкция по развертыванию проекта.
Для запуска приложения необходимо:
- склонировать проект: https://github.com/KotelnikovAV/explore-with-me-microservices.git;
- открыть проект с помощью IntelliJ IDEA и выполнить команду mvn package;
- запустить исполнение файла docker-compose.yml.После успешного исполнения файла docker-compose.yml приложение будет доступно на порту 8080.
## 3. Техническая документация проекта.
Спецификация API в формате openapi: [main-service-spec.json](https://github.com/user-attachments/files/19055434/main-service-spec.json)