Skip to content

Latest commit

 

History

History
92 lines (68 loc) · 5.79 KB

README.md

File metadata and controls

92 lines (68 loc) · 5.79 KB

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