Skip to content

groldsf/ReTask

Repository files navigation

Описание проекта ReTask

Общее описание

ReTask - это плагин для Obsidian, предназначенный для управления повторяющимися задачами. Плагин позволяет пользователям создавать задачи с определенным расписанием, отслеживать их выполнение и управлять статусами задач.

Функциональные требования

1. Управление задачами

1.1. Создание и хранение задач

  • Задачи хранятся в виде файлов в Obsidian с метаданными в frontmatter
  • Обязательные поля для задачи: название, время старта, длительность, расписание (schedule), описание
  • В будущем возможно добавление интерфейса для создания задач, но должна сохраняться возможность создания задач через текстовые файлы

1.2. Типы расписаний

  • Поддерживается три типа расписаний для задач:
    • Preset (предустановленные шаблоны)
    • Interval (интервальное расписание)
    • Cron (расписание в формате cron-выражений)

1.3. Статусы задач

  • Задача может иметь один из следующих статусов:
    • Не начата (not_started)
    • В процессе (pending)
    • Выполнена (done)
    • Отменена (canceled)
    • Пропущена (skipped)

1.4. Управление статусами

  • Пользователь может изменять статус задачи через интерфейс плагина
  • Доступные действия: отметить как выполненную, отмененную или пропущенную

2. Отслеживание просрочки

2.1. Система просрочки

  • Время жизни экземпляра задачи делится на временные участки
  • Каждому участку соответствует статус просрочки: зеленый, желтый, красный
  • Черный статус используется для задач, время жизни которых истекло
  • Пороговые значения для статусов просрочки задаются пользователем в настройках задачи

2.2. Визуальное отображение

  • Статус просрочки визуально отображается в интерфейсе плагина
  • Цель - показать пользователю, сколько времени осталось для выполнения задачи

3. Пользовательский интерфейс

3.1. Представление задач

  • Задачи отображаются в виде карточек
  • Каждая карточка содержит:
    • Название задачи
    • Описание
    • Даты начала и окончания
    • Статус задачи
    • Статус просрочки
    • Кнопки для изменения статуса

3.2. Доступ к плагину

  • Плагин использует view в Obsidian
  • Пользователь должен иметь возможность открыть интерфейс плагина

3.3. Язык интерфейса

  • Основной язык интерфейса - английский (текущая реализация на русском)
  • В будущем возможна локализация

4. Планируемые функции

4.1. Графики активности

  • График для каждой задачи по типу таблицы коммитов в GitHub
  • Визуальное отображение выполнения задач по дням

4.2. Фильтрация и поиск

  • Возможность фильтровать и искать задачи
  • Просмотр пропущенных задач за определенный период

4.3. Уведомления

  • Пуш-уведомления о просроченных задачах

Технические требования

1. Хранение данных

1.1. Задачи

  • Задачи хранятся в виде файлов в Obsidian
  • Метаданные задач хранятся в frontmatter файлов
  • Структура хранения может быть изменена в будущем

1.2. Экземпляры задач

  • Экземпляры задач сериализуются и хранятся в хранилище Obsidian

2. Интеграция с Obsidian

2.1. Использование API Obsidian

  • Плагин использует API Obsidian для работы с файлами и метаданными
  • Плагин интегрируется в интерфейс Obsidian через систему view

3. Производительность

3.1. Эффективная работа с данными

  • Плагин должен эффективно обрабатывать задачи и их экземпляры
  • Использование подходящих структур данных для хранения и поиска (например, BinarySearchTree)

Текущее состояние проекта

На основе предоставленного кода, проект находится в стадии разработки.

Реализовано:

  • Базовая модель данных для задач и их экземпляров
  • Парсер задач из файлов Obsidian
  • Менеджер задач для управления статусами
  • Пользовательский интерфейс для отображения задач в виде карточек
  • Создание и отображение инстансов задач
  • Базовая функциональность фильтрации и поиска задач по имени и статусу
  • Пагинация для удобного просмотра большого количества задач
  • Автоматическое создание экземпляров задач по расписанию

Требует реализации или доработки:

  • Улучшение механизма реакции на изменение файла задачи в Obsidian
  • Создание пользовательского интерфейса для создания новых задач
  • Дальнейшее улучшение пользовательского интерфейса
  • Добавление графиков активности по типу таблицы коммитов в GitHub
  • Расширение функций фильтрации и поиска
  • Система уведомлений о просроченных задачах
  • Перевод интерфейса на английский язык

Заключение

ReTask - это многообещающий плагин для Obsidian, который поможет пользователям эффективно управлять повторяющимися задачами. Текущая реализация включает основные компоненты, но требует доработки для полной функциональности, особенно в части создания экземпляров задач по расписанию и реакции на изменения в файлах задач.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published