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

4.1 KiB

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/.

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

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

  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.