Skip to content

Дипломный проект Яндекс Практикум. REST API для проекта Explore With Me

Notifications You must be signed in to change notification settings

bannovdaniil/java-explore-with-me

Repository files navigation

REST API для проекта "Explore With Me"

Язык реализации Java

В рамках дипломного проекта разработано REST API для приложения ExploreWithMe (англ. «исследуй со мной»). Оно предоставляет возможность делиться информацией об интересных событиях и помогать найти компанию для участия в них.

Инструкция по развертыванию проекта:

  1. Скачать данный репозиторий
  2. mvn clean package
  3. mvn install
  4. docker-compose build
  5. docker-compose up -d
  6. основной сервис доступен по адресу: http://localhost:8080
  7. сервис статистики доступен по адресу: http://localhost:9090

Приложение включает в себя сервисы:

  • GateWay (разрабатывается отдельно)
    • Проверяет права пользователей
    • Передает запросы на остальные микросервисы в зависимости прав
  • Основной сервис — содержит всё необходимое для работы.
    • Просмотр событий без авторизации;
    • Возможность создания и управления категориями;
    • События и работа с ними - создание, модерация;
    • Запросы пользователей на участие в событии - запрос, подтверждение, отклонение.
    • Создание и управление подборками.
    • Добавление и удаление Лайков событиям, формирование рейтингов.
  • Сервис статистики — хранит количество просмотров и позволяет делать различные выборки для анализа работы приложения.
    • Отдельный сервис для сбора статистики;

Описание сервисов:

Основной сервис, выделенный порт: 8080

  • Публичный (доступен для всех пользователей)
    • API для работы с событиями
    • API для работы с категориями
  • Приватный (доступен только для зарегистрированных пользователей)
    • API для работы с событиями
    • API для работы с запросами текущего пользователя на участие в событиях
    • API для работы с рейтингами
  • Административный (доступен только для администратора проекта)
    • API для работы с событиями
    • API для работы с категориями
    • API для работы с пользователями
    • API для работы с подборками событий

Сервис статистики, выделенный порт: 9090

  • Административный (доступен только для администратора проекта)
    • API для работы со статистикой посещений

Фича Рейтинги включена в Основной сервис

  • Сортировка событий по рейтингу
  • Оценивать можно только Опубликованные события
  • Изменить рейтинг могут только пользователи с подтвержденным участием
  • При изменении рейтига события изменяется, рейтинг создателя события.
  • При публичном просмотре событий, скрыты данные создателя события.
  • Создатель события не может оценивать событие.

**Список эндпоинтов для фичи:**

  • Поставить лайк/дизлайк:
    • PUT ewm-main:8080/users/{userId}/events/{eventId}/like?type={like/dislike}
  • Убрать лайк/дизлайк:
    • DELETE ewm-main:8080/users/{userId}/events/{eventId}/like?type={like/dislike}

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

Postman тесты для сервисов:

Схема Архитектуры проекта

Class Diagram

Схема Базы данных проекта

Class Diagram

About

Дипломный проект Яндекс Практикум. REST API для проекта Explore With Me

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published