Files
daily-timer/README.md
2026-02-10 16:03:39 +03:00

8.4 KiB
Raw Blame History

Daily Timer

Десктопное приложение для проведения daily standup митингов с отслеживанием времени, управлением участниками и статистикой.

Возможности

  • ⏱️ Таймер - крупный таймер текущего спикера с прогресс-баром
  • 👥 Управление участниками - список с настраиваемым лимитом времени для каждого
  • 🔄 Очередь выступлений - визуальная очередь, можно менять порядок
  • ⏭️ Пропуск - переместить неготового участника в конец очереди
  • Отметка присутствия - пометить кто есть/отсутствует перед митингом
  • ⚠️ Предупреждения - визуальные и звуковые оповещения когда время заканчивается
  • 📊 Статистика - длительность митингов, превышения, показатели участников
  • 📈 История - просмотр прошлых митингов с детальной разбивкой
  • 💾 Экспорт - экспорт данных в JSON или CSV
  • 🔊 Звуковые уведомления - настраиваемые звуковые оповещения
  • 🌐 Локализация - русский и английский интерфейс
  • 🔄 Автообновление - проверка и установка обновлений из приложения

Скриншоты

(Скоро)

Требования

  • macOS 10.15+ (Catalina и выше)
  • Go 1.21+
  • Node.js 18+
  • Wails CLI v2

Установка

Скачать готовый релиз

  1. Скачать последний релиз: https://git.movida.biz/bell/daily-timer/releases
  2. Распаковать архив
  3. Переместить Daily Timer.app в /Applications/
  4. Убрать атрибут карантина (см. ниже)

Автообновление

Приложение поддерживает автоматическое обновление:

  1. Открыть Настройки → секция "Обновления"
  2. Нажать Проверить сейчас
  3. Если доступно обновление → Скачать и установить
  4. После установки нажать Перезапустить

Приложение автоматически:

  • Скачивает новую версию
  • Устанавливает в /Applications/
  • Снимает карантин (xattr -cr)
  • Перезапускается

Обнаружение пересборок: Если версия та же, но бинарник изменился (пересборка) - приложение также предложит обновление.

Установка Wails CLI

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Клонирование и сборка

git clone https://git.movida.biz/bell/daily-timer.git
cd daily-timer

# Инициализация проекта
make init

# Режим разработки
make dev

# Сборка для production
make build

Собранное приложение будет в build/bin/.

macOS Gatekeeper

Приложение не подписано Apple Developer сертификатом, поэтому macOS может показать ошибку "приложение повреждено". Исправление:

# Убрать атрибут карантина
xattr -cr "Daily Timer.app"

Или: правый клик → Открыть → Открыть (только при первом запуске).

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

Подготовка митинга

  1. Добавить участников - ввести имена и установить лимиты времени
  2. Установить общий лимит - настроить длительность митинга (по умолчанию: 60 минут)
  3. Упорядочить - перетащить для изменения порядка выступлений
  4. Отметить присутствие - переключить статус присутствия/отсутствия

Во время митинга

  1. Нажать Начать митинг
  2. Таймер показывает текущего спикера с обратным отсчётом
  3. Нажать Следующий для перехода (или ⌘N)
  4. Нажать Пропустить чтобы переместить спикера в конец очереди
  5. Использовать Пауза/Продолжить для прерываний
  6. Нажать Стоп для досрочного завершения

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

Клавиша Действие
⌘N Следующий спикер
⌘S Пропустить
Space Пауза/Продолжить
⌘Q Остановить митинг

Статистика

  • Просмотр истории в вкладке История
  • Фильтрация по датам
  • Экспорт в JSON или CSV для анализа
  • Отслеживание превышений и среднего времени выступлений

Конфигурация

Настройки хранятся в ~/Library/Application Support/DailyTimer/:

  • daily-timer.db - SQLite база данных со всеми данными
  • sounds/ - кастомные звуковые файлы (опционально)

Кастомные звуки

Положить MP3 файлы в директорию sounds:

  • warning.mp3 - воспроизводится когда время заканчивается
  • timeup.mp3 - воспроизводится когда время спикера истекло
  • meeting_end.mp3 - воспроизводится при завершении митинга

Разработка

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

daily-timer/
├── main.go                 # Точка входа Wails приложения
├── internal/
│   ├── app/                # Логика приложения и Wails bindings
│   ├── models/             # Модели данных
│   ├── storage/            # Слой работы с SQLite
│   └── timer/              # Логика таймера с событиями
├── frontend/
│   ├── src/
│   │   ├── App.svelte      # Главный компонент
│   │   └── components/     # UI компоненты
│   └── wailsjs/            # Сгенерированные Go bindings
├── wails.json              # Конфигурация Wails
├── Makefile                # Команды сборки
└── README.md

Команды

make dev      # Запуск разработки с hot reload
make build    # Сборка production бинарника
make test     # Запуск тестов
make fmt      # Форматирование кода
make lint     # Запуск линтеров
make clean    # Очистка артефактов сборки

Релиз

# 1. Создать тег версии
git tag -a v0.2.0 -m "Описание релиза"
git push origin v0.2.0

# 2. Собрать и опубликовать
GITEA_TOKEN=<token> make release-publish

Планы

  • Drag-and-drop для порядка участников
  • Интеграция с Telegram (отправка сводки митинга)
  • Интеграция с календарём (авто-расписание)
  • Шаблоны команд
  • Облачная синхронизация
  • Поддержка Windows/Linux
  • Автообновление приложения

Лицензия

MIT License - см. LICENSE.

Поддержка

Для багов и запросов функций используйте GitHub Issues.