Project Quest (Java Edition) - это многофункциональное Android-приложение, разработанное для повышения личной продуктивности и организации задач с использованием различных методологий тайм-менеджмента и элементов геймификации. Приложение является Java-версией, с сохранением и улучшением ключевых функций. Основная цель - предоставить пользователю гибкий и увлекательный инструмент для достижения целей, управления временем и развития полезных привычек.
Мы верим, что продуктивность не должна быть скучной! Интеграция игровых механик, таких как уровни, опыт, награды и кастомизация, призвана сделать процесс выполнения задач более мотивирующим и приятным.
- Гибкое Управление Задачами:
- Создание, редактирование и организация задач с описаниями, сроками выполнения и тегами.
- Поддержка подзадач для декомпозиции крупных целей.
- Календарное Планирование:
- Интегрированный календарь для визуализации задач на день, неделю и месяц.
- Удобная навигация по датам и месяцам.
- Возможность переноса задач между датами.
- Методологии Тайм-Менеджмента (Планируется/Частично реализовано):
- Getting Things Done (GTD): Контексты, проекты, следующие действия.
- Матрица Эйзенхауэра: Приоритезация задач по важности и срочности.
- Eat The Frog: Выделение самой важной/сложной задачи дня.
- Пользователь может выбирать и комбинировать подходы для разных рабочих пространств.
- Техника Pomodoro:
- Встроенный таймер Pomodoro с настраиваемыми интервалами работы и отдыха.
- Связь сессий Pomodoro с конкретными задачами.
- Звуковые уведомления и вибрация для сигнализации о завершении фаз.
- Возможность выбора системных и пользовательских рингтонов.
- Геймификация для Мотивации:
- Уровни и Опыт (XP): Получение опыта за выполнение задач, Pomodoro-сессий и другие полезные действия. Повышение уровня открывает новые возможности или награды.
- Монеты: Внутриигровая валюта, зарабатываемая за активность, которую можно тратить во внутриигровом магазине (в планах).
- Ежедневные Награды и Стрики: Поощрение за регулярное использование приложения.
- Значки (Badges): Достижения за выполнение определенных условий (например, стрик в 7 дней, выполнение X задач).
- Испытания (Challenges): Специальные задания (ежедневные, еженедельные, одноразовые) с уникальными наградами.
- Виртуальный Сад: Пользователь может выращивать виртуальные растения, ухаживая за ними (например, поливая за счет выполнения Pomodoro-сессий или ежедневного входа). Рост растения визуализирует прогресс.
- Задачи-Сюрпризы: Небольшие неожиданные задания с быстрыми наградами.
- Статистика и Аналитика:
- Отслеживание выполненных задач, времени, потраченного на фокусировку (Pomodoro).
- Графики продуктивности по дням недели, тренды выполнения задач, получения XP и монет.
- Глобальная статистика и история активности пользователя.
- Пользовательский Интерфейс:
- Современный дизайн, основанный на Material 3.
- Поддержка светлой и темной тем.
- Возможность использования динамических цветов (Material You) на Android 12+.
- Кастомизация аватара и имени пользователя.
- Персонализация:
- Настройка уведомлений.
- Управление данными: очистка кэша, экспорт/импорт данных (в планах).
- Архитектура и Технологии:
- Java как основной язык программирования.
- Clean Architecture (разделение на слои data, domain, presentation).
- MVVM (Model-View-ViewModel) для слоя представления.
- Hilt для внедрения зависимостей.
- Room для локального хранения данных (SQLite).
- Android Jetpack Libraries: Navigation Component, LiveData, ViewModel, DataStore (для настроек), WorkManager (для фоновых задач, если потребуется).
- ListenableFuture (Guava) для асинхронных операций в data и domain слоях.
- Lombok для уменьшения бойлерплейта в моделях данных.
- Coil для загрузки изображений.
- MPAndroidChart для отображения графиков статистики.
- SLF4J с Logback-Android для гибкого и мощного логирования.
Проект следует принципам Clean Architecture и разделен на следующие основные пакеты/модули (на примере Java-структуры):
com.example.projectquestonjava
├── app /
│ ├── MainActivity.java
│ ├── MainViewModel.java
│ └── MyApplication.java
│
├── approach
│ ├── calendar
│ │ ├── data
│ │ │ ├── dao
│ │ │ ├── factories
│ │ │ ├── model
│ │ │ └── repositories
│ │ ├── di
│ │ ├── domain
│ │ │ ├── factories
│ │ │ ├── model
│ │ │ ├── repository
│ │ │ └── usecases
│ │ └── presentation
│ │ ├── screens
│ │ ├── ui_parts
│ │ └── viewmodels
│ ├── eatthefrog
│ ├── eisenhower
│ └── gtd
│
├── core
│ ├── commonUi
│ ├── context_scope
│ ├── data
│ │ ├── converters
│ │ ├── dao
│ │ ├── database
│ │ ├── factories
│ │ ├── initializers
│ │ ├── model
│ │ ├── relations
│ │ ├── repositories
│ │ └── security
│ ├── di
│ ├── domain
│ │ ├── factories
│ │ ├── model
│ │ ├── repository
│ │ ├── security
│ │ └── usecases
│ ├── managers
│ ├── navigation
│ ├── priority_strategy
│ ├── ui
│ └── utils
│
├── feature
│ ├── gamification
│ │ ├── data
│ │ │ ├── dao
│ │ │ ├── managers
│ │ │ ├── model
│ │ │ └── repository
│ │ ├── di
│ │ ├── domain
│ │ │ ├── model
│ │ │ ├── repository
│ │ │ └── usecases
│ │ └── presentation
│ │ ├── adapters
│ │ ├── dialogs
│ │ ├── screens
│ │ ├── ui_elements
│ │ └── viewmodels
│ ├── pomodoro
│ │ ├── data
│ │ │ ├── dao
│ │ │ ├── managers
│ │ │ ├── model
│ │ │ ├── repository
│ │ │ └── service
│ │ ├── di
│ │ ├── domain
│ │ │ ├── logic
│ │ │ ├── model
│ │ │ ├── repository
│ │ │ └── usecases
│ │ ├── adapters
│ │ ├── controllers
│ │ ├── screens
│ │ └── viewmodels
│ └── statistics
│ ├── data
│ │ ├── dao
│ │ ├── model
│ │ └── repository
│ ├── di
│ ├── domain
│ │ ├── model
│ │ └── repository
│ └── presentation
│ ├── screens
│ └── viewmodel
│
└── utils
└── dialogs
- Data Layer: Отвечает за получение и хранение данных. Включает DAO (Data Access Objects) для Room, модели данных для базы данных (entities), репозитории (реализации интерфейсов из domain layer), DataStore, сетевые вызовы (если будут).
- Domain Layer: Содержит бизнес-логику приложения. Включает интерфейсы репозиториев, UseCase'ы (интеракторы), доменные модели (чистые Java/POJO объекты, не зависящие от Android SDK или деталей реализации data layer).
- Presentation Layer: Отвечает за отображение данных пользователю и обработку пользовательского ввода. Включает Activities, Fragments, ViewModels, Adapters, кастомные View и элементы UI. Использует MVVM.
- Клонируйте репозиторий.
- Откройте проект в Android Studio (рекомендуется последняя стабильная версия).
- Дождитесь завершения сборки Gradle и синхронизации проекта.
- Запустите приложение на эмуляторе или физическом устройстве.
При первом запуске должны быть созданы и инициализированы тестовые данные для пользователя test@example.com, что позволит сразу начать использовать приложение.
Мы всегда рады новым идеям и помощи в разработке! Если вы хотите внести свой вклад:
- Форкните репозиторий.
- Создайте новую ветку для вашей фичи (
git checkout -b feature/AmazingFeature). - Закоммитьте ваши изменения (
git commit -m 'Add some AmazingFeature'). - Запушьте в ветку (
git push origin feature/AmazingFeature). - Откройте Pull Request.
Пожалуйста, убедитесь, что ваш код соответствует принятым в проекте стандартам и проходит все проверки.
Спасибо за ваш интерес к Project Quest! Мы надеемся, что он поможет вам стать более продуктивным и получать удовольствие от процесса.