Skip to content

RomanLuperkal/java-explore-with-me

Repository files navigation


Java-explore-with-me

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

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

Использованные технологии:

  • Java 11,Maven, Spring-Boot, Hibernate, Postgresql, Lombok, Docker-compose, RestTemplate

Функционал приложения:

  1. Проект реализован по микро-сервисной архитектуре:

    • ewm-service - реализация основной бизнес-логики
    • stats-server - сбор и хранение статистики по обращению к публичным эндпоинтам/выполнение различных воборок по анализу работы приложения
  2. У сервисной части приложения 3 слоя управления:

  • Публичный:

    • Запросы на получение категорий событий
    • Запросы на получение подборок событий
    • Запросы на получение скоращенной информации конкретного события по id
    • Запросы на получение списка событий по заданным фильтрам
  • Приватный:

    • Запросы на создание/обновление/отмену события
    • Запросы на получение своих событий
    • Запросы на создание заявки на участие в событие
    • Запросы на получение своих заявок на участие в событиях
    • Запросы на получение заявок на участие в собственном событии
    • Запросы на отмену заявки на участие в событии пользователем
    • Запросы на отклонение/подтверждение заявок на участие в событии владельцем события
    • Запросы на создание/изменение/удаление/получение комментариев
  • Административный:

    • Запросы на создание/изменение/удаление категорий
    • Запросы на создание/удаление пользователей
    • Запросы на получение информации о пользователях
    • Запросы на создание/изменение/удаление/закрепление на главной странице подборок событий
    • Запросы на подтверждение/отклонение/изменение событий пользователей
    • Запросы на получение событий по заданным параметрам
    • Запросы на получение статистики по количеству публичных запросов
    • Запросы на изменение/удаление/получение/блокировку комментариев
    • Запросы на блокировку возможности создавать/редактировать комментарии к событиям пользователям
  1. Статистическая часть приложения предназначена для сбора информации о количестве обращений пользователей к спискам событий и о количестве запросов к подробной информации о событии. На основе этой информации должнаформироваться статистика о работе приложения.

  2. Схема базы данных приложения:

ER_diagram_for_explore-with-me

  1. Аутентификация и авторизация
    Оба сервиса ExploreWithMe работают внутри VPN. С внешним миром сервисы связывает сетевой шлюз. Он контактирует с системой аутентификации и авторизации, а затем перенаправляет запрос в сервисы. То есть, если шлюз пропустил запрос к закрытой или административной части API, значит, этот запрос успешно прошел аутентификацию и авторизацию.

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

  1. Чтобы запустить сервисы по отдельности (через main) нужна запущенная бд Postgres. С помощью pgAdmin4 создайте базу данных:
    1. Необходимо создать базу данных postgreSQL для server:
      • POSTGRES_USER = root
      • POSTGRES_PASSWORD = root
      • POSTGRES_DB = ewm-server
    2. Необходимо создать базу данных postgreSQL для stats:
      • POSTGRES_USER = root
      • POSTGRES_PASSWORD = root
      • POSTGRES_DB = stats
    3. Запустить сервис server
      • server.port = 8080
    4. Запустить сервис stats
      • server.port = 9090
  2. Для запуска проекта потребуется docker и docker-compose.
  3. Команда "docker-compose up" запускает оба сервиса с их бд
  4. Для проверки работоспособности приложения предусмотрены тесты для приложения постман:

About

Template repository for ExploreWithMe project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors