Files
daily-timer/README.md
2026-02-10 14:49:56 +03:00

183 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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. Убрать атрибут карантина (см. ниже)
### Установка 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. **Установить общий лимит** - настроить длительность митинга (по умолчанию: 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
```
### Команды
```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=<token> make release-publish
```
## Планы
- [ ] Drag-and-drop для порядка участников
- [ ] Интеграция с Telegram (отправка сводки митинга)
- [ ] Интеграция с календарём (авто-расписание)
- [ ] Шаблоны команд
- [ ] Облачная синхронизация
- [ ] Поддержка Windows/Linux
## Лицензия
MIT License - см. [LICENSE](LICENSE).
## Поддержка
Для багов и запросов функций используйте GitHub Issues.