An open API service indexing awesome lists of open source software.

https://github.com/lap-lik/explore-with-me

микросервисное приложение для размещения и поиска мероприятий
https://github.com/lap-lik/explore-with-me

docker hibernate-jpa java-11 postgresql-database postman-test query-dsl rest-api spring-boot

Last synced: about 1 month ago
JSON representation

микросервисное приложение для размещения и поиска мероприятий

Awesome Lists containing this project

README

          

# Explore-with-me
## Описание проекта

Explore-with-me — это платформа для анонсов и заявок на мероприятия. Вы можете публиковать информацию о событиях, подавать заявки на участие в уже созданных мероприятиях и оставлять комментарии к заинтересовавшим событиям.

## Основные возможности:
- **Публичный API:**
- Доступность: все пользователи, без необходимости регистрации.
- Просмотр всех событий, включая сортировку по категориям.
- Просмотр деталей отдельных событий.
- Просмотр закрепленных подборок событий.
- **Закрытый API:**
- Доступность: только авторизованные пользователи.
- Добавление новых мероприятий в приложение.
- Редактирование созданных мероприятий.
- Просмотр событий после их добавления.
- Подача заявок на участие в интересующих мероприятиях.
- Подтверждение заявок от других пользователей для собственных мероприятий.
- Управление комментариями: создание, изменение, удаление.
- **Административный API:**
- Доступность: только администраторы сервиса.
- Управление категориями событий: добавление, изменение и удаление.
- Управление подборками мероприятий: добавление, удаление и закрепление на главной странице.
- Модерация событий, размещённых пользователями: публикация или отклонение.
- Модерация комментариев, размещённых пользователями: установка статуса удалено, заблокировано.
- Управление пользователями: добавление, активация, просмотр и удаление.

## Функционал:
- **Микросервисная архитектура:**
- Два независимых микросервиса, позволяет оптимизировать масштабируемость, надежность и удобство обновления компонентов.
- Stats-service осуществляет сбор и анализ статистики перехода по публичным эндпоинтам.
- Main-service осуществляет основную бизнес-логику приложения - афиша.

- **Хранение данных:** каждый микросервис хранит свои данные в отдельной DB, для уменьшения взаимозависимость и отказоустойчивость приложения.
- **Техническое задание на основе Swagger:**
- [Stats-service](https://github.com/lap-lik/explore-with-me/blob/main/ewm-stats-service-spec.json)
- [Main-service](https://github.com/lap-lik/explore-with-me/blob/main/ewm-main-service-spec.json)

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

- **Java Core:**
- JDK версии 11: Современные возможности для высокого качества и производительности кода.
- **Фреймворки:**
- Spring Boot: Упрощает разработку и развертывание приложений.
- **Сетевое взаимодействие:**
- REST Api: Легкость и гибкость взаимодействия между клиентом и сервером, используя контроллеры для обработки запросов в формате JSON.
- **Валидация и обработка данных:**
- Lombok: Упрощает написание кода, генерируя часто используемые конструкции.
- MapStruct: Упрощает маппинг данных между разными слоями приложения.
- **Базы данных:**
- PostgreSQL: высокая производительность и надежность.
- JPA и Hibernate: упрощают взаимодействие с базами данных через Object-Relational Mapping (ORM).
- **Виртуализация:**
- Docker: контейнеризация приложения для упрощенного развертывания и управления средой выполнения.