Pomodorust: Комплексный план улучшений
Документ сформирован на основе анализа кодовой базы v0.1.0
Цель: Open Source сообщество, расширяемость, кросс-платформенность
Незавершённые функции (Quick Wins)
Функциональность
UI/UX и дизайн
Статистика и аналитика
Кросс-платформенность
Интеграции
Архитектура и код
Open Source инфраструктура
Производительность
Приоритезация
1. Незавершённые функции (Quick Wins)
Эти функции уже частично реализованы в коде, но не подключены к UI:
Функция
Статус
Файл
Сложность
Window opacity
✅ DONE
config.rs:appearance, settings.rs
Низкая
Compact mode
Toggle есть, логика нет
config.rs:appearance
Средняя
Show in taskbar
Опция есть, не работает
config.rs:system
Низкая
Tick sound toggle
✅ DONE
config.rs:sound, settings.rs
Низкая
Custom sounds selection
✅ DONE (6 звуков)
audio.rs, settings.rs
Средняя
Текущее: Только таймер, без привязки к задачам
Предложения:
Фича
Описание
Сложность
Приоритет
Task list
Список задач на сессию
Средняя
Высокий
Session notes
Заметки к каждой сессии
Низкая
Средний
Task estimation
Оценка в помидорах
Низкая
Средний
Task tags/categories
Теги для группировки
Средняя
Низкий
Task templates
Шаблоны повторяющихся задач
Средняя
Низкий
Схема данных (расширение SQLite):
CREATE TABLE tasks (
id INTEGER PRIMARY KEY ,
title TEXT NOT NULL ,
estimated_pomodoros INTEGER ,
completed_pomodoros INTEGER DEFAULT 0 ,
tags TEXT , -- JSON array
created_at TEXT ,
completed_at TEXT
);
CREATE TABLE session_notes (
session_id INTEGER REFERENCES sessions(id),
note TEXT ,
task_id INTEGER REFERENCES tasks(id)
);
2.2 Расширенные режимы таймера
Режим
Описание
Сложность
Focus mode
Блокировка уведомлений ОС
Средняя
Strict mode
Нельзя пропустить/остановить до конца
Низкая
Flexible breaks
Автоматическая подстройка перерывов
Средняя
Multiple timers
Несколько таймеров для разных проектов
Высокая
Timer presets per project
Разные настройки для разных проектов
Средняя
Фича
Описание
Сложность
Break suggestions
Предложения активностей на перерыв
Низкая
Stretch reminders
Напоминания о разминке
Низкая
Break extension
Продлить перерыв на N минут
Низкая
Ambient sounds
Фоновые звуки во время работы
Средняя
2.4 История и управление сессиями
Фича
Описание
Сложность
Session history view
Просмотр всех прошлых сессий
Средняя
Undo last session
Отменить последнюю сессию
Низкая
Edit past sessions
Редактирование истории
Средняя
Session recovery
Восстановление после краша
Средняя
Текущее: 9 акцентных цветов + 3 ретро-режима
Улучшение
Описание
Сложность
Light mode
Светлая тема
Средняя
Custom theme editor
Редактор своих тем
Высокая
Theme import/export
JSON экспорт тем
Низкая
Font selection
Выбор шрифта
Средняя
Icon packs
Альтернативные наборы иконок
Средняя
3.2 Анимации и визуальные эффекты
Текущее: Pulse, glow, breathing animations
Улучшение
Описание
Сложность
Particle effects
Частицы при завершении
Средняя
Confetti celebration
Конфетти при достижении цели
Низкая
Smooth view transitions
Плавные переходы между view
Средняя
Progress shake
Тряска при последних секундах
Низкая
Sound visualization
Визуализация звука
Высокая
3.3 Layouts и режимы отображения
Режим
Описание
Сложность
Mini mode
Только таймер, минимальный размер
Средняя
Widget mode
Полупрозрачный оверлей поверх окон
Высокая
Fullscreen mode
На весь экран для фокуса
Низкая
PiP (Picture-in-Picture)
Маленькое окно поверх всех
Средняя
Фича
Описание
Сложность
Screen reader support
Поддержка NVDA/VoiceOver
Высокая
High contrast mode
Высококонтрастная тема
Низкая
Keyboard navigation
Полная навигация с клавиатуры
Средняя
Font scaling
Масштабирование шрифтов
Низкая
Reduced motion
Отключение анимаций
Низкая
4. Статистика и аналитика
Текущее: Недельный график, базовая статистика
График
Описание
Сложность
Monthly view
Месячный календарь с heatmap
Средняя
Yearly heatmap
GitHub-style календарь за год
Средняя
Hourly distribution
В какое время суток продуктивнее
Низкая
Day of week analysis
Какие дни недели продуктивнее
Низкая
Trend lines
Линии тренда продуктивности
Средняя
Comparison charts
Сравнение периодов
Средняя
Фича
Описание
Сложность
Daily goals
Цель помидоров на день
Низкая
Weekly goals
Недельные цели
Низкая
Goal streaks
Серии выполнения целей
Низкая
Progress milestones
Вехи (100, 500, 1000 помидоров)
Низкая
Custom goals
Пользовательские цели
Средняя
Уровень
Фичи
Сложность
Минимальная
Стрики, простые цели
Уже есть частично
Средняя
Достижения, бейджи, уровни
Средняя
Полная
Лидерборды, челленджи
Высокая (требует бэкенд)
Примеры достижений:
🍅 First Tomato — Первый помидор
🔥 Week Warrior — 7 дней подряд
🌙 Night Owl — 10 сессий после 22:00
☀️ Early Bird — 10 сессий до 9:00
💯 Century — 100 помидоров всего
🏆 Focused Master — 4 часа без перерыва в один день
Отчёт
Описание
Сложность
Weekly summary
Еженедельный отчёт
Низкая
Monthly report
Месячный PDF отчёт
Средняя
Productivity insights
AI-анализ продуктивности
Высокая
Export to PDF
Экспорт статистики в PDF
Средняя
Платформа
Статус
Ограничения
Windows
✅ Полная поддержка
DWM effects, registry autostart
macOS
⚠️ Базовая
Нет autostart, fallback notifications
Linux
✅ Полная поддержка
D-Bus notifications, XDG autostart, global hotkeys
5.2 Улучшения по платформам
macOS:
Linux: ✅ РЕАЛИЗОВАНО (v0.2.1)
Общее:
Платформа
Подход
Сложность
iOS
Swift UI native app
Очень высокая
Android
Kotlin native app
Очень высокая
Cross-platform mobile
Flutter/React Native
Высокая
PWA
Web версия как PWA
Средняя
Подход
Плюсы
Минусы
Сложность
WASM (egui)
Переиспользование кода
Большой bundle
Средняя
Tauri
Native-like, маленький размер
Отдельная кодовая база
Высокая
Отдельный веб-клиент
Оптимальный UX
Дублирование логики
Высокая
6.1 CLI интерфейс ✅ РЕАЛИЗОВАН
# Примеры команд (все работают!)
pomodorust start [--session work| short| long] # Запустить таймер
pomodorust pause # Пауза
pomodorust resume # Продолжить
pomodorust toggle # Start/Pause
pomodorust stop # Остановить и сбросить
pomodorust skip # Пропустить сессию
pomodorust status # Текущий статус
pomodorust stats [--period today| week| all] # Статистика
pomodorust ping # Проверить работу GUI
Реализация:
IPC через TCP (localhost:47373)
Единый бинарник: GUI + CLI в одном exe
Для использования CLI добавить в PATH (кнопка в настройках)
6.2 Статус в мессенджерах
Платформа
Метод
Сложность
Discord
Rich Presence API
Средняя
Slack
Status API (OAuth)
Средняя
Telegram
Bot API для статуса
Средняя
Microsoft Teams
Graph API
Высокая
6.3 Webhooks и автоматизация
// События для webhooks
enum WebhookEvent {
SessionStarted { session_type : SessionType } ,
SessionCompleted { session_type : SessionType , duration : u32 } ,
SessionSkipped { session_type : SessionType } ,
GoalReached { goal_type : String } ,
StreakBroken { streak_length : u32 } ,
}
Интеграции:
Zapier / Make / n8n
IFTTT
Home Assistant (умный дом)
Custom HTTP endpoints
Метод
Описание
Сложность
File sync
Через Dropbox/iCloud/etc
Низкая
Own backend
Свой сервер синхронизации
Высокая
Supabase/Firebase
BaaS решение
Средняя
P2P sync
Без центрального сервера
Очень высокая
6.5 Интеграции с инструментами разработчика
Интеграция
Описание
Сложность
VS Code extension
Статус в статус-баре
Средняя
JetBrains plugin
Плагин для IDE
Средняя
GitHub integration
Связь сессий с коммитами
Средняя
Jira/Linear
Связь с тикетами
Средняя
Toggl/Clockify
Экспорт в time trackers
Низкая
Область
Проблема
Решение
Сложность
Database
Синхронные запросы
Async с tokio
Высокая
Platform
Код дублируется
Trait-based abstraction
Средняя
UI components
Большие файлы
Дальнейшая декомпозиция
Низкая
Error handling
Inconsistent
thiserror везде
Низкая
Текущее покрытие: Timer, Error, Layout, Animation (unit tests)
Тип тестов
Статус
Приоритет
Unit tests
Частичные
Расширить
Integration tests
Нет
Добавить
UI tests
Нет
egui testing
E2E tests
Нет
Опционально
Benchmarks
Нет
Для критичных путей
// Концепт plugin API
pub trait PomodoPlugin {
fn name ( & self ) -> & str ;
fn on_session_start ( & mut self , session : & Session ) ;
fn on_session_complete ( & mut self , session : & Session ) ;
fn render_ui ( & self , ui : & mut egui:: Ui ) ;
}
Возможности:
Кастомные интеграции
Дополнительные звуки/темы
Расширения статистики
Community plugins
Улучшение
Описание
Сложность
Config validation
Валидация при загрузке
Низкая
Config migration
Миграция между версиями
Средняя
Config profiles
Несколько профилей настроек
Средняя
Environment variables
Настройка через ENV
Низкая
8. Open Source инфраструктура
Документ
Статус
Приоритет
README.md
✅ Есть
Поддерживать
CONTRIBUTING.md
✅ Есть
Расширить
CHANGELOG.md
✅ Есть
Автоматизировать
Architecture docs
❌ Нет
Высокий
API documentation
❌ Нет
Средний
User guide
❌ Нет
Средний
Pipeline
Описание
Статус
Build (all platforms)
Windows, Linux
✅ DONE
Tests
cargo test
✅ DONE
Linting
clippy, rustfmt
✅ DONE
Security audit
cargo audit
❌ Pending
Release automation
GitHub Releases
✅ DONE
Changelog generation
Автоматический CHANGELOG
❌ Pending
GitHub Actions Workflows:
.github/workflows/build.yml — Build для Linux и Windows
.github/workflows/ci.yml — Clippy + Rustfmt + Tests
.github/workflows/release.yml — Автоматические релизы
8.3 Community
Инициатива
Описание
Приоритет
Issue templates
Bug report, Feature request
Высокий
PR template
Чеклист для PR
Высокий
Good first issues
Метки для новичков
Высокий
Discussions
GitHub Discussions
Средний
Discord server
Сообщество
Низкий
Канал
Статус
Сложность
GitHub Releases
✅
—
Cargo publish
❌
Низкая
Homebrew (macOS)
❌
Средняя
Chocolatey (Windows)
❌
Средняя
AUR (Arch Linux)
❌
Низкая
Flatpak
❌
Средняя
Snap
❌
Средняя
Windows Store
❌
Высокая
Область
Проблема
Решение
Влияние
Startup time
DB init blocking
Lazy loading
Среднее
Memory
Stats loaded upfront
Pagination
Низкое
CPU
Continuous animations
Conditional rendering
Низкое
Binary size
~15MB
Strip debug, optimize deps
Низкое
Метрика
Инструмент
Memory profiling
DHAT, heaptrack
CPU profiling
perf, Instruments
Binary analysis
cargo-bloat
Startup time
Benchmarks
Tier 1: Quick Wins (1-2 дня каждый)
Подключить незавершённые функции (opacity, tick sound) ✅ DONE
Daily goals с отображением прогресса ✅ DONE
Undo last session
High contrast mode
Reduced motion option
Tier 2: Core Improvements (3-5 дней каждый)
Task list базовый
Session notes
Monthly heatmap calendar
Light mode theme
CI/CD для всех платформ ✅ DONE (GitHub Actions)
Architecture documentation ✅ DONE (ARCHITECTURE.md)
Tier 3: Major Features (1-2 недели каждый)
CLI interface с IPC ✅ DONE
Plugin system (MVP)
Discord Rich Presence
Achievement system
Linux autostart ✅ DONE (XDG Desktop Entry)
Global Hotkeys ✅ DONE
macOS autostart (LaunchAgent)
Tier 4: Large Initiatives (месяц+)
Web version (WASM)
Cloud sync
Mobile companion app
Full webhook system
Критерий
Вес
Польза для пользователей
40%
Сложность реализации
25%
Привлечение контрибьюторов
20%
Уникальность на рынке
15%
Топ-5 рекомендаций для старта:
Task list — Основная ценность для пользователей
CI/CD pipeline — Фундамент для контрибьюторов
CLI interface — Уникальность для разработчиков ✅ DONE
Achievement system — Вовлечение и retention
Light mode — Расширение аудитории
Уже реализовано (Январь 2026):
✅ CLI interface — Полное управление из терминала
✅ Global Hotkeys — Ctrl+Alt+Space/S/R
✅ Daily Goals — Цели с прогресс-баром
✅ Architecture docs — ARCHITECTURE.md
✅ Good First Issues — GOOD_FIRST_ISSUES.md
✅ Notification Sounds — 6 выбираемых звуков
✅ Window Opacity — Слайдер в настройках
✅ Linux Platform Support — D-Bus notifications, XDG autostart, global hotkeys
✅ CI/CD Pipeline — GitHub Actions для Linux и Windows
✅ Window State Persistence — Сохранение позиции и размера окна
После выбора направления:
Создать GitHub Issues для выбранных фич
Добавить метки "good first issue" для простых задач
Написать RFC для крупных изменений
Обновить ROADMAP.md
Документ создан: 2026-01-18
Последнее обновление: 2026-01-20
Версия анализа: v0.2.1
✅ Добавлена полная поддержка Linux (notifications, autostart, global hotkeys)
✅ Добавлен CI/CD pipeline (GitHub Actions для Linux и Windows)
✅ Добавлено сохранение состояния окна (позиция, размер, maximized)
Обновлена секция 5.1 с новым статусом Linux
Обновлена секция 8.2 CI/CD как реализованная
Обновлены Tier 2 и Tier 3 приоритезации
Обновлён статус Quick Wins (opacity, tick sound, notification sounds) — ✅ Done
Обновлён статус CLI interface — ✅ Done
Добавлены Global Hotkeys как реализованная фича
Добавлен Daily Goals как реализованная фича
Обновлена приоритезация с учётом выполненных задач