Skip to content

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

Notifications You must be signed in to change notification settings

Bervy/java-explore-with-me

Repository files navigation


Java-explore-with-me

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

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

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

  • Java 11,Maven, Spring-Boot, Hibernate, Postgresql, Lombok, Docker, Jpa, AOP

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

  • Эскиз страницы Front-end приложения:

web

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

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

  • Публичный:

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

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

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

  2. Для обоих сервисов разработана подробная спецификация API.

    Ознакомится со спецификацией можно через онлайн-приложение Swagger.
    Основной сервис
    Сервис Статистики
    Для работы со спецификациями вам понадобится редактор Swagger. Чтобы просмотреть спецификацию в редакторе, необходимо выполнить ряд шагов:

  • Скопировать ссылку на файл спецификации. Открыть онлайн-версию редактора Swagger.
  • На верхней панели выбрать меню File, затем пункт Import URL.
  • Вставить скопированную ссылку в текстовое поле появившегося диалогового окна и нажать OK.

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

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

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published