Бэкенд сервиса, который позволяет находить интересные мероприятия вокруг себя, а также размещать свои. Пример интерфейса:
Архитектура приложения представлена двумя частями, взаимодействующими между собой: основной сервис и сервис статистики.
Публичное API, доступна без регистрации любому пользователю сети:
- Сортировка списка событий по количеству просмотров либо по датам событий.
- Просмотр подробной информации о конкретном событии.
- Есть возможность получения всех имеющихся категорий и подборок событий (такие подборки могут составлять администраторы ресурса).
- Каждый публичный запрос для получения списка событий или полной информации о мероприятии фиксируется сервисом статистики.
Закрытое API, доступна только авторизованным пользователям:
- Пользователи могут добавлять в приложение новые мероприятия, редактировать их и просматривать после добавления.
- Могут подавать заявки на участие в интересующих мероприятиях.
- Создатель мероприятия имеет возможность подтверждать заявки, которые отправили другие пользователи сервиса.
Административное API, для администраторов сервиса:
- Добавление, изменение и удаление категорий для событий.
- Возможность добавлять, удалять и закреплять на главной странице подборки мероприятий.
- Модерацию событий, размещённых пользователями, — публикация или отклонение.
- Управление пользователями — добавление, просмотр и удаление.
- Информация о количестве обращений пользователей к спискам событий.
- Информация о количестве запросов к подробной информации о событии.
- Отчет по собраной ринформации.
Спецификации основного сервиса и сервиса статистики можно посмотреть с помощью Swagger
В приложении применяется один из шаблонов проектирования - Data Transfer Object(DTO Pattern).
Проверить работоспособность приложения, можно с помощью готовой коллекции тестов, например в Postman.
- склонировать и открыть проект в IntelliJ IDEA
- запустить приложение Docker
- выполнения сборку проекта
- далее в терминал запустить команду docker compose up и дождаться успешного запуска проекта в контейнерах Docker.
