Skip to content

AndreyMMGH/java-explore-with-me

Repository files navigation

Explore With Me
📌 Описание проекта

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

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

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

⚙️ Функционал
Публичное API
  ● Получение списка событий с сортировкой:
    ● по дате;
    ● по количеству просмотров (данные берутся из сервиса статистики).
  ● Просмотр краткой информации о событиях.
  ● Просмотр подробной информации о конкретном событии.
  ● Получение списка категорий и подборок событий.
  ● Фиксация всех публичных запросов в сервисе статистики.
API для авторизованных пользователей
  ● Создание, редактирование и просмотр своих событий.
  ● Подача заявок на участие в чужих мероприятиях.
  ● Подтверждение заявок на участие инициатором события.
API для администратора
  ● Управление категориями событий (создание, редактирование, удаление).
  ● Управление подборками событий (создание, удаление, закрепление).
  ● Модерация событий (публикация, отклонение).
  ● Управление пользователями (создание, активация, просмотр, удаление).

🔄 Жизненный цикл события
1. Создание → переходит в статус "Ожидание публикации".
2. Публикация → осуществляется администратором.
3. Отмена публикации:
  ● по решению администратора (не соответствует правилам);
  ● по решению инициатора до публикации.

📊 Сервис статистики
  ● Фиксирует все обращения к публичным эндпоинтам (списки событий и детальная информация).
  ● Функционал сервиса статистики содержит:
    ● запись информации о том, что был обработан запрос к эндпоинту API;
    ● предоставление статистики за выбранные даты по выбранному эндпоинту.

🛠️ Стек технологий
  ● Java
  ● Spring Framework (Boot, MVC, Data JPA)
  ● Hibernate
  ● JUnit, Mockito (тестирование)
  ● Spring Test
  ● PostgreSQL
  ● H2
  ● Git
  ● Postman (тестирование API)
  ● Docker / Docker Compose
  ● REST
  ● Maven

About

Сервис-афиша для организации совместного отдыха

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published