Свободное время — ценный ресурс. Ежедневно мы планируем, как его потратить — куда и с кем сходить. Сложнее всего в таком планировании поиск информации и переговоры. Нужно учесть много деталей: какие намечаются мероприятия, свободны ли в этот момент друзья, как всех пригласить и где собраться. Приложение — афиша. В этой афише можно предложить какое-либо событие от выставки до похода в кино и собрать компанию для участия в нём.
Два сервиса:
- основной сервис содержит всё необходимое для работы продукта;
- сервис статистики хранит количество просмотров и позволит делать различные выборки для анализа работы приложения.
API основного сервиса разделина на три части:
- публичная доступна без регистрации любому пользователю сети;
- закрытая доступна только авторизованным пользователям;
- административная — для администраторов сервиса.
Публичный API предоставляет возможности поиска и фильтрации событий. Учтены следующие моменты:
- сортировка списка событий организована либо по количеству просмотров, которое будет запрашиваться в сервисе статистики, либо по датам событий;
- при просмотре списка событий возвращатся только краткая информация о мероприятиях;
- просмотр подробной информации о конкретном событии настроен отдельно (через отдельный эндпоинт);
- каждое событие относится к какой-то из закреплённых в приложении категорий;
- настроена возможность получения всех имеющихся категорий и подборок событий (такие подборки будут составлять администраторы ресурса);
- каждый публичный запрос для получения списка событий или полной информации о мероприятии фиксируется сервисом статистики.
Закрытая часть API реализованы возможности зарегистрированных пользователей продукта. Учтено:
- авторизованные пользователи имеют возможность добавлять в приложение новые мероприятия, редактировать их и просматривать после добавления;
- настроена подача заявок на участие в интересующих мероприятиях;
- создатель мероприятия имеет возможность подтверждать заявки, которые отправили другие пользователи сервиса.
Административная часть API предоставляет возможности настройки и поддержки работы сервиса. Учтено:
- настроино добавление, изменение и удаление категорий для событий;
- есть возможность добавлять, удалять и закреплять на главной странице подборки мероприятий;
- налажена модерация событий, размещённых пользователями, — публикация или отклонение;
- настроено управление пользователями — добавление, активация, просмотр и удаление.
Второй сервис — сервис статистики. Собирает информацию, во-первых, о количестве обращений пользователей к спискам событий и, во-вторых, о количестве запросов к подробной информации о событии. На основе этой информации формируется статистика о работе приложения.
Функционал сервиса статистики содержит:
- запись информации о том, что был обработан запрос к эндпоинту API;
- предоставление статистики за выбранные даты по выбранному эндпоинту.
Чтобы можно было использовать сервис статистики, был разработан HTTP-клиент. Он отправляет запросы и обрабатывает ответы. Использован HTTP-клиент, который входит в состав RestTemplate, входящий в состав Spring Framework.
