Целью проекта является разработка Телеграмм-бота на платформе Java с использованием стеков Maven, Spring Core, Spring AOP и JUnit5 для обеспечения функционала, связанного с улучшением или поддержанием настроения пользователей.
- Пользователь должен иметь возможность выбрать текущее настроение из предложенных опций: "Грустно", "Нейтрально", "Весело", "Стресс", "Усталость".
- Бот должен предложить пользователю оценить свое настроение по шкале от 1 до 10.
- Грустно: Бот должен предоставлять пользователю вдохновляющие цитаты, подборку смешных видео или мемов, а также медитации для снятия грусти.
- Нейтрально: Бот должен предлагать интересные статьи, советы по саморазвитию и идеи для новых хобби.
- Весело: Бот должен генерировать музыкальные плейлисты, предлагать идеи для развлечений и случайные забавные задания.
- Стресс: Бот должен предоставлять дыхательные упражнения, советы по управлению стрессом, а также короткие видео с природными пейзажами.
- Усталость: Бот должен предлагать советы по восстановлению энергии, рекомендации по сну и релаксирующие звуки природы.
- Пользователь должен иметь возможность настроить получение ежедневных напоминаний или вдохновляющих сообщений в заданное время.
- Бот должен вести журнал настроения пользователя, позволяя ему ежедневно оценивать свое состояние.
- Должна быть возможность просматривать статистику изменения настроения за неделю или месяц.
- Бот должен награждать пользователя за поддержание хорошего настроения и выполнение рекомендаций (например, медитаций или дыхательных упражнений).
- Реализация системы достижений за регулярное использование бота.
- Возможность интеграции с музыкальными сервисами для создания персональных плейлистов.
- Подключение к новостным лентам или блогам для предоставления релевантного контента.
- Проект должен использовать Spring Core для управления зависимостями и компонентами.
- Использование Spring AOP для управления кросс-регламентными задачами, такими как логирование, безопасность и обработка исключений.
- Проект должен быть модульным, что позволит легко добавлять новые функции или изменять существующие.
- Использование Telegram Bot API для взаимодействия с пользователями.
- Подключение сторонних API для получения контента (например, API для цитат, медитаций, новостей).
- Все ключевые модули и компоненты должны быть покрыты юнит-тестами, разработанными с использованием JUnit 5.
- Рекомендуется использование Mock объектов для тестирования интеграций с внешними сервисами.
- Использование Maven для управления зависимостями и сборки проекта.
- Файл
pom.xml
должен включать все необходимые зависимости, такие как Spring Framework, JUnit 5 и другие библиотеки.
- Бот должен взаимодействовать с пользователем через текстовые команды и кнопки Telegram.
- Интерфейс должен быть простым и интуитивно понятным.
- Бот должен поддерживать русский и английский языки.
- Бот должен обеспечивать защиту данных пользователя, не допускать утечки личной информации.
- Должны быть реализованы меры защиты от несанкционированного доступа к функционалу бота.
- Бот должен быстро реагировать на команды пользователя, время ответа не должно превышать 2 секунд.
- Система должна поддерживать одновременное взаимодействие с несколькими пользователями без потери производительности.
- Проект должен быть документирован, включая README файл с инструкциями по развертыванию и использованию.
- Код должен быть комментирован, поясняя основные моменты логики и сложные участки.
- Определение архитектуры и компонентов системы.
- Разработка схемы классов и взаимосвязей.
- Реализация базовых команд бота: выбор настроения, предоставление рекомендаций.
- Подключение к внешним API для получения контента.
- Реализация системы отслеживания настроения и ежедневных напоминаний.
- Добавление игровой механики и системы достижений.
- Разработка и выполнение юнит-тестов.
- Интеграционное тестирование всех компонентов.
- Развертывание бота на сервере.
- Настройка мониторинга и логирования.
- Поддержка и обновление бота по мере необходимости.
Данный проект направлен на создание полезного инструмента для пользователей, который поможет им управлять своим эмоциональным состоянием с помощью персонализированных рекомендаций и контента. Реализация на Java с использованием Spring позволит создать надежное и масштабируемое приложение.