422ff362c3156766a61a0a0b40513e8238ab7439
Daily Timer
Десктопное приложение для проведения daily standup митингов с отслеживанием времени, управлением участниками и статистикой.
Возможности
- ⏱️ Таймер - крупный таймер текущего спикера с прогресс-баром
- 👥 Управление участниками - список с настраиваемым лимитом времени для каждого
- 🔄 Очередь выступлений - визуальная очередь, можно менять порядок
- ⏭️ Пропуск - переместить неготового участника в конец очереди
- ✅ Отметка присутствия - пометить кто есть/отсутствует перед митингом
- ⚠️ Предупреждения - визуальные и звуковые оповещения когда время заканчивается
- 📊 Статистика - длительность митингов, превышения, показатели участников
- 📈 История - просмотр прошлых митингов с детальной разбивкой
- 💾 Экспорт - экспорт данных в JSON или CSV
- 🔊 Звуковые уведомления - настраиваемые звуковые оповещения
- 🌐 Локализация - русский и английский интерфейс
- 🔄 Автообновление - проверка и установка обновлений из приложения
Скриншоты
(Скоро)
Требования
- macOS 10.15+ (Catalina и выше)
- Go 1.21+
- Node.js 18+
- Wails CLI v2
Установка
Скачать готовый релиз
- Скачать последний релиз: https://git.movida.biz/bell/daily-timer/releases
- Распаковать архив
- Переместить
Daily Timer.appв/Applications/ - Убрать атрибут карантина (см. ниже)
Автообновление
Приложение поддерживает автоматическое обновление:
- Открыть Настройки → секция "Обновления"
- Нажать Проверить сейчас
- Если доступно обновление → Скачать и установить
- После установки нажать Перезапустить
Приложение автоматически:
- Скачивает новую версию
- Устанавливает в
/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"
Или: правый клик → Открыть → Открыть (только при первом запуске).
Использование
Подготовка митинга
- Добавить участников - ввести имена и установить лимиты времени
- Установить общий лимит - настроить длительность митинга (по умолчанию: 60 минут)
- Упорядочить - перетащить для изменения порядка выступлений
- Отметить присутствие - переключить статус присутствия/отсутствия
Во время митинга
- Нажать Начать митинг
- Таймер показывает текущего спикера с обратным отсчётом
- Нажать Следующий для перехода (или ⌘N)
- Нажать Пропустить чтобы переместить спикера в конец очереди
- Клик по спикеру в списке - быстро переключиться на него (для done-спикеров таймер продолжится)
- Использовать Пауза/Продолжить для прерываний
- Нажать Стоп для досрочного завершения
Горячие клавиши
| Клавиша | Действие |
|---|---|
| ⌘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.