Skip to content

микросервисное приложение для размещения и поиска мероприятий

Notifications You must be signed in to change notification settings

lap-lik/explore-with-me

Repository files navigation

Explore-with-me

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

Explore-with-me — это платформа для анонсов и заявок на мероприятия. Вы можете публиковать информацию о событиях, подавать заявки на участие в уже созданных мероприятиях и оставлять комментарии к заинтересовавшим событиям.

Основные возможности:

  • Публичный API:
    • Доступность: все пользователи, без необходимости регистрации.
    • Просмотр всех событий, включая сортировку по категориям.
    • Просмотр деталей отдельных событий.
    • Просмотр закрепленных подборок событий.
  • Закрытый API:
    • Доступность: только авторизованные пользователи.
    • Добавление новых мероприятий в приложение.
    • Редактирование созданных мероприятий.
    • Просмотр событий после их добавления.
    • Подача заявок на участие в интересующих мероприятиях.
    • Подтверждение заявок от других пользователей для собственных мероприятий.
    • Управление комментариями: создание, изменение, удаление.
  • Административный API:
    • Доступность: только администраторы сервиса.
    • Управление категориями событий: добавление, изменение и удаление.
    • Управление подборками мероприятий: добавление, удаление и закрепление на главной странице.
    • Модерация событий, размещённых пользователями: публикация или отклонение.
    • Модерация комментариев, размещённых пользователями: установка статуса удалено, заблокировано.
    • Управление пользователями: добавление, активация, просмотр и удаление.

Функционал:

  • Микросервисная архитектура:

    • Два независимых микросервиса, позволяет оптимизировать масштабируемость, надежность и удобство обновления компонентов.
    • Stats-service осуществляет сбор и анализ статистики перехода по публичным эндпоинтам.
    • Main-service осуществляет основную бизнес-логику приложения - афиша.
  • Хранение данных: каждый микросервис хранит свои данные в отдельной DB, для уменьшения взаимозависимость и отказоустойчивость приложения.

  • Техническое задание на основе Swagger:

Стек технологий

  • Java Core:
    • JDK версии 11: Современные возможности для высокого качества и производительности кода.
  • Фреймворки:
    • Spring Boot: Упрощает разработку и развертывание приложений.
  • Сетевое взаимодействие:
    • REST Api: Легкость и гибкость взаимодействия между клиентом и сервером, используя контроллеры для обработки запросов в формате JSON.
  • Валидация и обработка данных:
    • Lombok: Упрощает написание кода, генерируя часто используемые конструкции.
    • MapStruct: Упрощает маппинг данных между разными слоями приложения.
  • Базы данных:
    • PostgreSQL: высокая производительность и надежность.
    • JPA и Hibernate: упрощают взаимодействие с базами данных через Object-Relational Mapping (ORM).
  • Виртуализация:
    • Docker: контейнеризация приложения для упрощенного развертывания и управления средой выполнения.

About

микросервисное приложение для размещения и поиска мероприятий

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published