Daily Timer

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

Возможности

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

Скриншоты

(Скоро)

Требования

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

Установка

Установка 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. Установить общий лимит — настроить длительность митинга (по умолчанию: 15 минут)
  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.

Description
Daily meeting timer. Петя пошел на митинг а Митя пошел на петтинг.
Readme MIT 502 KiB
v0.2.2 Latest
2026-02-11 00:11:22 +03:00
Languages
Svelte 45.5%
Go 29.8%
JavaScript 12.3%
TypeScript 7.7%
Makefile 2.5%
Other 2.2%