Skip to content

NikitaBuffy/java-explore-with-me

Repository files navigation

Explore With Me

Приложение, позволяющее пользователям делиться информацией об интересных событиях и находить компанию для участия в них.

Свободное время — ценный ресурс. Ежедневно мы планируем, как его потратить — куда и с кем сходить. Сложнее всего в таком планировании поиск информации и переговоры. Нужно учесть много деталей: какие намечаются мероприятия, свободны ли в этот момент друзья, как всех пригласить и где собраться.

Приложение — афиша. В этой афише можно предложить какое-либо событие от выставки до похода в кино и собрать компанию для участия в нём.

Используемые технологии

Клиент: RestTemplate

Сервер: Java 11, Spring Boot, Maven, Hibernate, PostgreSQL, Lombok, Docker

Инструкция по запуску

Для развертывания приложения:

  mvn clean package
  docker compose up

Фичи

  • Сервис статистики
  • Добавление комментариев к посещенным событиям с возможностью прикрепить фотографии

База данных

EWM ER-диаграмма

Спецификация API

API основного сервиса разделена на три части:

  • публичная доступна без регистрации любому пользователю сети;
  • закрытая доступна только авторизованным пользователям;
  • административная — для администраторов сервиса.

Например,

Get all events (с возможностью фильтрации и пагинации)

GET /events
Параметр Тип Описание
text String Текст для поиска в содержимом аннотации и подробном описании события
categories List<Long> Cписок идентификаторов категорий, в которых будет вестись поиск
paid boolean Поиск только платных/бесплатных событий
rangeStart String Дата и время, не раньше которых должно произойти событие
rangeEnd String Дата и время не позже которых должно произойти событие
onlyAvailable boolean Только события, у которых не исчерпан лимит запросов на участие
sort String Вариант сортировки: по дате события или по количеству просмотров (EVENT_DATE, VIEWS, RATING)
from int Количество событий, которые нужно пропустить для формирования текущего набора
size int Количество событий в наборе

Edit category by admin

PATCH /admin/categories/{catId}
Параметр Тип Описание
catId Long ID категории
newCategoryDto application/json Данные категории для изменения

Swagger

API Documentation "Explore With Me" Main Service

API Documentation "Explore With Me" Statistics Service

Планы по доработке

✅ Вынести модуль загрузки фотографий в отдельный сервис в рамках микросервисной архитектуры
✅ Перенести хранение фотографий из БД в файловую систему, либо S3.

Реализовано в другом репозитории.

About

Service for finding interesting events and to participate in them.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published