161 lines
4.1 KiB
Markdown
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.
|