feat: initial daily-timer implementation
This commit is contained in:
160
README.md
160
README.md
@@ -0,0 +1,160 @@
|
||||
# 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.
|
||||
|
||||
Reference in New Issue
Block a user