321505c0a00e1d2fcab267827bc2d0eb4ebefd45
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
go install github.com/wailsapp/wails/v2/cmd/wails@latest
Clone and Build
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/.
macOS Gatekeeper
Since the app is not signed with an Apple Developer certificate, macOS may show "app is damaged" error. To fix:
# Remove quarantine attribute
xattr -cr "Daily Timer.app"
Or right-click the app → Open → Open (first launch only).
Usage
Setup Meeting
- Add Participants - Enter names and set individual time limits
- Set Meeting Limit - Configure total meeting duration (default: 15 minutes)
- Arrange Order - Drag to reorder speaking sequence
- Mark Attendance - Toggle present/absent status
During Meeting
- Click Start Meeting to begin
- Timer shows current speaker with countdown
- Click Next Speaker to advance (or press ⌘N)
- Click Skip to move current speaker to end of queue
- Use Pause/Resume for interruptions
- 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 datasounds/- Custom sound files (optional)
Custom Sounds
Place custom MP3 files in the sounds directory:
warning.mp3- Plays when time is running lowtimeup.mp3- Plays when speaker time expiresmeeting_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
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 for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
Support
For issues and feature requests, please use GitHub Issues.