# Daily Timer Десктопное приложение для проведения daily standup митингов с отслеживанием времени, управлением участниками и статистикой. ## Возможности - ⏱️ **Таймер** — крупный таймер текущего спикера с прогресс-баром - 👥 **Управление участниками** — список с настраиваемым лимитом времени для каждого - 🔄 **Очередь выступлений** — визуальная очередь, можно менять порядок - ⏭️ **Пропуск** — переместить неготового участника в конец очереди - ✅ **Отметка присутствия** — пометить кто есть/отсутствует перед митингом - ⚠️ **Предупреждения** — визуальные и звуковые оповещения когда время заканчивается - 📊 **Статистика** — длительность митингов, превышения, показатели участников - 📈 **История** — просмотр прошлых митингов с детальной разбивкой - 💾 **Экспорт** — экспорт данных в JSON или CSV - 🔊 **Звуковые уведомления** — настраиваемые звуковые оповещения ## Скриншоты _(Скоро)_ ## Требования - macOS 10.15+ (Catalina и выше) - Go 1.21+ - Node.js 18+ - Wails CLI v2 ## Установка ### Установка Wails CLI ```bash go install github.com/wailsapp/wails/v2/cmd/wails@latest ``` ### Клонирование и сборка ```bash 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 может показать ошибку "приложение повреждено". Исправление: ```bash # Убрать атрибут карантина 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 ``` ### Команды ```bash make dev # Запуск разработки с hot reload make build # Сборка production бинарника make test # Запуск тестов make fmt # Форматирование кода make lint # Запуск линтеров make clean # Очистка артефактов сборки ``` ### Релиз ```bash # 1. Создать тег версии git tag -a v0.2.0 -m "Описание релиза" git push origin v0.2.0 # 2. Собрать и опубликовать GITEA_TOKEN= make release-publish ``` ## Планы - [ ] Drag-and-drop для порядка участников - [ ] Интеграция с Telegram (отправка сводки митинга) - [ ] Интеграция с календарём (авто-расписание) - [ ] Шаблоны команд - [ ] Облачная синхронизация - [ ] Поддержка Windows/Linux ## Лицензия MIT License — см. [LICENSE](LICENSE). ## Поддержка Для багов и запросов функций используйте GitHub Issues.