Skip to content

IAmA1ex/java-explore-with-me

Repository files navigation

Explore With Me

Explore With Me — это модульное приложение для организации общественных мероприятий и поиска событий для посещения.


📋 Описание проекта

Приложение состоит из двух модулей:

  1. main-service — отвечает за работу с пользователями и реализацию основной логики приложения.
  2. stats-service — фиксирует просмотры событий и предоставляет возможность анализа популярности мероприятий.

Основной функционал:

  • Публикация мероприятий: пользователи могут добавлять свои события для поиска участников.
  • Поиск и фильтрация событий: доступен поиск мероприятий с сортировкой по популярности и датам.
  • Детальная информация: для каждого мероприятия доступна подробная информация через отдельный эндпоинт.
  • Участие в мероприятиях: зарегистрированные пользователи могут подавать заявки на участие в мероприятиях.
  • Администрирование мероприятия: пользователь создавший мероприятие может работать с заявками на участие если мероприятие закрытое.
  • Административные функции: управление категориями, модерация событий и управление пользователями.

Модуль статистики:

  • Фиксирует просмотры мероприятий.
  • Предоставляет выборки для анализа популярности событий.

⚙️ Технологии

  • Java: Основной язык разработки.
  • Spring Boot: Для построения каркаса приложения.
  • Hibernate: Для работы с базой данных.
  • Docker: Для запуска в отельных контейнерах.
  • JUnit: Для написания юнит-тестов.

Feature: отзывы

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

API

1. Комментарии к событиям

Public: Получение комментариев к событиям

Эндпоинты публичного доступа для получения комментариев и ответов.

  • GET /events/{eventId}/comments
    Получение списка комментариев к событию.

  • GET /events/{eventId}/comments/{commentId}
    Получение развернутого комментария к событию.

Private: Управление комментариями к событиям

Эндпоинты приватного доступа (только для текущего пользователя), позволяющие добавлять, редактировать и удалять комментарии к событиям.

  • POST /users/{userId}/events/{eventId}/comments
    Добавление нового комментария к событию.

  • PATCH /users/{userId}/events/{eventId}/comments/{commentId}
    Редактирование комментария текущего пользователя.

  • DELETE /users/{userId}/events/{eventId}/comments/{commentId}
    Удаление комментария текущего пользователя.

2. Модерация комментариев

Admin: Управление комментариями

Эндпоинт для администратора, позволяющий удалять комментарии.

  • DELETE /admin/events/{eventId}/comments/{commentId}
    Удаление комментария администратором.

  • DELETE /admin/events/{eventId}/comments/{commentId}/replies/{replyId}
    Удаление ответа администратором.

3. Комментарии на комментарии

Public: Получение ответов на комментарии

Эндпоинт для получения развернутого ответа на комментарий.

  • GET /{eventId}/comments/{commentId}/replies/{replyId}
    Получение развернутого ответа на комментарий к событию.

Private: Управление ответами на комментарии

Эндпоинты для приватного доступа (только для текущего пользователя), позволяющие добавлять, редактировать и удалять ответы на комментарии.

  • POST /users/{userId}/events/{eventId}/comments/{commentId}/replies
    Добавление ответа на комментарий.

  • PATCH /users/{userId}/events/{eventId}/comments/{commentId}/replies/{replyId}
    Редактирование ответа текущего пользователя на комментарий.

  • DELETE /users/{userId}/events/{eventId}/comments/{commentId}/replies/{replyId}
    Удаление ответа текущего пользователя.

4. Лайки для комментариев

Private: Управление лайками к комментариям

Эндпоинты для добавления и удаления лайков текущим пользователем.

  • POST /users/{userId}/events/{eventId}/comments/{commentId}/likes
    Добавление лайка на комментарий.

  • DELETE /users/{userId}/events/{eventId}/comments/{commentId}/likes
    Удаление лайка текущего пользователя с комментария.

5. Лайки для ответов

Private: Управление лайками к ответам

Эндпоинты для добавления и удаления лайков текущим пользователем.

  • POST /users/{userId}/events/{eventId}/comments/{commentId}/replies/{replyId}/likes
    Добавление лайка на комментарий.

  • DELETE /users/{userId}/events/{eventId}/comments/{commentId}/replies/{replyId}/likes
    Удаление лайка текущего пользователя с ответа.

About

Template repository for ExploreWithMe project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors