Explore with me - Это бэкэнд многомодульного приложения (REST API) для создания своих событий, отслеживания и участия в событиях, организованных другими пользователями.
Основной сценарий использования:
- Пользователь создает событие, задает его название и описание, указывает местоположение и дату. Также можно добавить ограничение на количество участников, сделать событие платным или бесплатным, включить модерацию заявок на участие;
- Далее администратор публикует или отклоняет событие;
- Пользователи, которые хотят принять участие в событии подают заявку на участие в нем.
- Если достигнут лимит участников, то заявка отклонятеся и все последующие заявки тоже;
- Если для события включена модерация заявок, то инициатор события должен подтверждать все заявки, а если модерация выключена, то заявки автоматически одобряются.
Также администраторы могут составлять подборки событий и закреплять их на главной странице сервиса.
Приложение состит из двух модулей:
- ewm-service - основной сервис, где сосредоточена вся бизнес-логика приложения;
- stat-server - сервис статистики, в котором собирается статистика по просмотрам событий пользователями. Просмотром события считается переход по публичным эндпоинтам событий - /events/ и /events/{id}/.
- Java 11;
- Spring;
- Hibernate;
- RestTemplate;
- PostgreSQL
- Docker.
Реализован запуск приложения в отдельных docker-контейнерах с CУБД PostgreSQL.
- Собрать jar проекта:
mvn clean package
- Запустить приложение из директории проекта командой:
docker-compose up.