Files
daily-timer/README.md
2026-02-08 05:17:37 +03:00

161 lines
4.1 KiB
Markdown

# Daily Timer
A desktop application for managing daily standup meetings with time tracking, participant management, and statistics.
## Features
- ⏱️ **Timer Display** - Large, visible timer for current speaker with progress bar
- 👥 **Participant Management** - Predefined list with configurable time limits per person
- 🔄 **Speaking Queue** - Visual queue with ability to reorder, skip, or move speakers
- ⏭️ **Skip Function** - Move unprepared participants to end of queue
-**Attendance Tracking** - Mark participants as present/absent before meeting
- ⚠️ **Time Warnings** - Visual and audio alerts when time is running out
- 📊 **Statistics** - Track meeting duration, overtime, and individual performance
- 📈 **History** - View past meetings with detailed breakdowns
- 💾 **Export** - Export data in JSON or CSV format
- 🔊 **Sound Notifications** - Configurable audio alerts
## Screenshots
_(Coming soon)_
## Requirements
- macOS 10.15+ (Catalina or later)
- Go 1.21+
- Node.js 18+
- Wails CLI v2
## Installation
### Install Wails CLI
```bash
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```
### Clone and Build
```bash
git clone https://github.com/your-username/daily-timer.git
cd daily-timer
# Initialize project
make init
# Development mode
make dev
# Build for production
make build
```
The built application will be in `build/bin/`.
## Usage
### Setup Meeting
1. **Add Participants** - Enter names and set individual time limits
2. **Set Meeting Limit** - Configure total meeting duration (default: 15 minutes)
3. **Arrange Order** - Drag to reorder speaking sequence
4. **Mark Attendance** - Toggle present/absent status
### During Meeting
1. Click **Start Meeting** to begin
2. Timer shows current speaker with countdown
3. Click **Next Speaker** to advance (or press ⌘N)
4. Click **Skip** to move current speaker to end of queue
5. Use **Pause/Resume** for interruptions
6. Click **Stop** to end meeting early
### Keyboard Shortcuts
| Key | Action |
| ----- | ------------ |
| ⌘N | Next Speaker |
| ⌘S | Skip Speaker |
| Space | Pause/Resume |
| ⌘Q | Stop Meeting |
### Statistics
- View historical meeting data in the **History** tab
- Filter by date range
- Export to JSON or CSV for external analysis
- Track participant overtime frequency and average speaking time
## Configuration
Settings are stored in `~/Library/Application Support/DailyTimer/`:
- `daily-timer.db` - SQLite database with all data
- `sounds/` - Custom sound files (optional)
### Custom Sounds
Place custom MP3 files in the sounds directory:
- `warning.mp3` - Plays when time is running low
- `timeup.mp3` - Plays when speaker time expires
- `meeting_end.mp3` - Plays when meeting ends
## Development
### Project Structure
```
daily-timer/
├── main.go # Wails application entry point
├── internal/
│ ├── app/ # Application logic and Wails bindings
│ ├── models/ # Data models
│ ├── storage/ # SQLite database layer
│ └── timer/ # Timer logic with events
├── frontend/
│ ├── src/
│ │ ├── App.svelte # Main application
│ │ └── components/ # UI components
│ └── wailsjs/ # Generated Go bindings
├── wails.json # Wails configuration
├── Makefile # Build commands
└── README.md
```
### Commands
```bash
make dev # Start development with hot reload
make build # Build production binary
make test # Run tests
make fmt # Format code
make lint # Run linters
make clean # Clean build artifacts
```
## Roadmap
- [ ] Drag-and-drop participant reordering
- [ ] Telegram integration (send meeting summary)
- [ ] Calendar integration (auto-schedule)
- [ ] Team templates
- [ ] Cloud sync
- [ ] Windows/Linux support
## License
MIT License - see [LICENSE](LICENSE) for details.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting
5. Submit a pull request
## Support
For issues and feature requests, please use GitHub Issues.