Это приложение предоставляет сервис для управления подписками пользователей. Оно позволяет добавлять, удалять и просматривать подписки пользователей, а также получать статистику о самых популярных сервисах подписок.
- Добавление подписки — позволяет пользователю подписаться на сервис.
- Удаление подписки — удаляет подписку пользователя.
- Получение подписок пользователя — возвращает список всех подписок, связанных с пользователем.
- Получение статистики по самым популярным подпискам — выводит топ сервисов, на которые подписаны пользователи.
- Spring Boot — для создания RESTful сервисов и работы с зависимостями.
- Spring Data JPA — для работы с базой данных.
- Mockito — для создания юнит-тестов.
- Docker — для упаковки приложения и его деплоя.
Клонируйте репозиторий на локальную машину:
git clone https://github.com/ваш-репозиторий.gitУбедитесь, что у вас установлен JDK 17 или выше и Docker.
-
Убедитесь, что у вас есть файл
docker-compose.ymlиDockerfileв корне проекта. -
Запустите приложение и базу данных с помощью Docker Compose:
docker-compose up --buildDocker Compose автоматически создаст и запустит два контейнера:
- PostgreSQL: контейнер для базы данных.
- Приложение: контейнер с вашим Spring Boot приложением.
- Приложение будет доступно по адресу http://localhost:8080, а база данных будет доступна на порту 5432.
Для запуска тестов используйте команду:
mvn test-
POST /users — Создание нового пользователя.
-
Тело запроса:
{ "username": "string", "email": "string", "password": "string" } -
Ответ:
{ "id": "1", "username": "string", "email": "string" }
-
-
GET /users/{id} — Получение информации о пользователе.
-
Ответ:
{ "id": "1", "username": "string", "email": "string" }
-
-
POST /users/{userId}/subscriptions — Добавление подписки пользователю.
-
Тело запроса:
{ "serviceType": "NETFLIX", "startDate": "2025-05-09T10:00:00", "expireDate": "2025-06-09T10:00:00" }
-
-
GET /subscriptions/top — Получение статистики о самых популярных подписках.
Этот проект лицензирован под MIT License - см. файл LICENSE.