Skip to content

bivex/PlanningTray

Repository files navigation

PlanningTray - Управление проектами в Menu Bar

Комплексное Swift приложение для macOS, которое размещается в menu bar и предоставляет полный набор инструментов для управления проектами, коммуникации и организации работы.

🚀 Функции

⭐ Новое: Современный Project Dashboard

  • 📊 Визуальный Dashboard - Popover-интерфейс с полным обзором проекта
  • 📈 Прогресс-бар - Визуальное отображение выполнения задач (72% и т.д.)
  • 🎯 Статус проекты - Цветовые индикаторы (🟢 On Track, 🟡 At Risk, 🔴 Overdue)
  • 🔄 Автообновление - Автоматическая синхронизация каждые 5 минут
  • ⚡ Быстрые действия - Добавление задач и встреч одним кликом
  • 🔀 Переключение проектов - Моментальный переход между проектами
  • 📊 Статистика - Выполненные/просроченные задачи, дни до дедлайна

Основные возможности

  • Иконка в menu bar - Дискретная иконка папки с документами в строке меню
  • 📋 Полное управление проектами:
    • 📅 Календарь (Calendar) - ⌘+C
    • ✅ Напоминания (Reminders) - ⌘+R
    • 📝 Заметки (Notes) - ⌘+N
    • 📧 Почта (Mail) - ⌘+M
    • 💬 Сообщения (Messages) - ⌘+S
  • 🚀 Планирование проектов через AppleScript:
    • ➕ Создание проектов - ⌘+P
    • 📝 Управление задачами - ⌘+T
    • 📅 Планирование встреч - ⌘+M
    • 🚩 Создание вех проекта - ⌘+L
    • ✅ Чек-листы проектов - ⌘+K
    • 📊 Мониторинг статуса - ⌘+S
    • 📅 Предстоящие события - ⌘+U
  • 🔧 Системные инструменты:
    • 🧮 Калькулятор (Calculator)
    • 👁️ Просмотр (Preview)
    • 📂 Finder
  • Быстрое напоминание - моментальное создание нового напоминания
  • 🌐 Многоязычная поддержка - Русский и английский языки
  • Настройки языка - Выбор языка в меню приложения

🛠️ Использование

Запуск приложения:

Режим разработки:

./run.sh

Или вручную:

swift build
.build/debug/PlanningTray

Релиз билд:

swift build --configuration release
.build/release/PlanningTray

Управление автозагрузкой:

./manage.sh start    # Запустить в автозагрузке
./manage.sh stop     # Остановить
./manage.sh restart  # Перезапустить
./manage.sh status   # Проверить статус
./manage.sh manual   # Запустить вручную
./manage.sh logs     # Просмотреть логи

Управление:

  1. После запуска приложение появится в menu bar как иконка папки с документами
  2. Кликните на иконку для открытия меню
  3. Выберите нужное приложение или функцию

Горячие клавиши:

  • ⌘ + C - Открыть Календарь
  • ⌘ + R - Открыть Напоминания
  • ⌘ + N - Открыть Заметки
  • ⌘ + Q - Быстрое напоминание
  • ⌘ + P - Создать проект
  • ⌘ + T - Добавить задачу
  • ⌘ + M - Запланировать встречу
  • ⌘ + L - Создать веху
  • ⌘ + K - Создать чек-лист
  • ⌘ + S - Статус проекта
  • ⌘ + U - Предстоящие события

Планирование проектов

PlanningTray теперь поддерживает комплексное планирование проектов через интеграцию с AppleScript:

  1. Создание проекта - Создает проект с задачами в Reminders и структурой в Calendar
  2. Управление задачами - Добавление, отслеживание и приоритизация задач
  3. Планирование встреч - Организация встреч и ревью проектов
  4. Вехи и таймлайны - Создание контрольных точек проекта
  5. Чек-листы - Структурированные списки задач
  6. Мониторинг прогресса - Отслеживание статуса и предстоящих событий

Все функции доступны через меню "🚀 Планирование проектов" в menu bar.

📊 Новый Project Dashboard

После создания проекта, клик по иконке PlanningTray откроет современный Dashboard с:

  • Визуальным прогресс-баром
  • Списком активных и выполненных задач
  • Предстоящими встречами и событиями
  • Статистикой проекта
  • Быстрыми действиями для добавления задач и встреч

Подробная документация:

🔧 Технические детали

  • Swift 5.9+
  • macOS 12.0+
  • Использует встроенные приложения macOS
  • Не требует внешних зависимостей
  • Работает в фоне без окна

📁 Структура проекта

PlanningTray/
├── Package.swift                    # Конфигурация Swift Package
├── Sources/
│   ├── PlanningTray.swift           # Основной код приложения
│   ├── Models.swift                 # ⭐ Модели данных (Project, Task, Event)
│   ├── ProjectManager.swift         # ⭐ Менеджер проектов с автообновлением
│   ├── ProjectDashboardView.swift   # ⭐ SwiftUI Dashboard интерфейс
│   ├── AppleScriptBridge.swift      # Мост для AppleScript интеграции
│   ├── LanguageManager.swift        # Управление локализацией
│   ├── AppActions.swift             # Действия приложения
│   ├── IconFactory.swift            # Создание иконок
│   ├── ru.lproj/                    # Русская локализация
│   │   ├── Localizable.strings
│   │   └── InfoPlist.strings
│   └── en.lproj/                    # Английская локализация
│       ├── Localizable.strings
│       └── InfoPlist.strings
├── run.sh                           # Скрипт запуска
├── README.md                        # Этот файл
├── APPLESCRIPT_PROJECT_PLANNING.md  # Документация AppleScript
└── IMPROVED_PROJECT_MANAGEMENT.md   # ⭐ Документация нового UI

🛑 Выход из приложения

Выберите "Выход" в меню или нажмите Ctrl+C в терминале.

🚀 Автозагрузка

Приложение автоматически запускается при входе в систему macOS. Для управления автозагрузкой используйте скрипт manage.sh:

  • Запуск: ./manage.sh start
  • Остановка: ./manage.sh stop
  • Перезапуск: ./manage.sh restart
  • Статус: ./manage.sh status
  • Ручной запуск: ./manage.sh manual (без автозагрузки)
  • Логи: ./manage.sh logs

Отключение автозагрузки:

./manage.sh stop
rm ~/Library/LaunchAgents/com.bivex.PlanningTray.plist

🌐 Локализация (Internationalization)

Приложение поддерживает два языка:

  • 🇷🇺 Русский (ru)
  • 🇺🇸 English (en)

Выбор языка

  1. Кликните на иконку приложения в menu bar
  2. Выберите "🌐 Язык" / "🌐 Language"
  3. Выберите желаемый язык из списка

Добавление новых языков

  1. Создайте папку Sources/[language_code].lproj/ (например, de.lproj для немецкого)
  2. Скопируйте Localizable.strings из существующей локализации
  3. Переведите строки на новый язык
  4. Добавьте новый язык в Package.swift в разделе resources

🧪 Тестирование

Проект включает автоматизированные тесты для проверки функциональности AppleScript интеграции с использованием Quick и Nimble - популярных фреймворков для BDD-тестирования Swift.

Зависимости тестирования

dependencies: [
    .package(url: "https://github.com/Quick/Quick.git", from: "7.0.0"),
    .package(url: "https://github.com/Quick/Nimble.git", from: "12.0.0"),
]

Структура тестов

  • AppleScriptBridgeTests.swift - Тесты для основного функционала AppleScript Bridge
  • ProjectPlanningIntegrationTests.swift - Интеграционные тесты полного цикла проекта

Запуск тестов:

swift test

Синтаксис тестов

Тесты используют BDD-подход с Quick:

import Quick
import Nimble

class MyTests: QuickSpec {
    override func spec() {
        describe("компонент") {
            context("в определенном состоянии") {
                it("должен вести себя определенным образом") {
                    expect(result).to(equal(expectedValue))
                }
            }
        }
    }
}

Примечание по XCTest

Quick и Nimble требуют наличия XCTest для работы. В средах разработки без полного Xcode (например, только Command Line Tools) может потребоваться установка полного Xcode для запуска тестов.

🎨 Кастомизация

Приложение использует системную тему и адаптивные иконки. Код легко расширяется для добавления новых функций планирования.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published