### Professional Time Tracking & Project Management for Teams
**Track time. Manage projects. Generate invoices. All in one place.**
[๐ Quick Start](#-quick-start) โข [โจ Features](#-features) โข [๐ธ Screenshots](#-screenshots) โข [๐ Getting Started](docs/GETTING_STARTED.md) โข [๐ Documentation](docs/) โข [๐ณ Deploy](#-deployment)
---
## ๐ฏ What is TimeTracker?
TimeTracker is a **self-hosted, web-based time tracking application** designed for freelancers, teams, and businesses who need professional time management with complete control over their data.
**Perfect for:**
- ๐ผ **Freelancers** tracking billable hours across multiple clients
- ๐ฅ **Small Teams** managing projects and tracking productivity
- ๐ข **Agencies** needing detailed reporting and client billing
- ๐ **Privacy-focused organizations** wanting self-hosted solutions
---
## โจ Features
### โฑ๏ธ **Smart Time Tracking**
- **One-Click Timers** โ Start tracking with a single click
- **Persistent Timers** โ Timers keep running even after browser closes
- **Idle Detection** โ Automatic pause after configurable idle time
- **Manual Entry** โ Add historical time entries with notes and tags
- **Real-time Updates** โ See live timer updates across all devices
### ๐ **Project & Task Management**
- **Unlimited Projects & Tasks** โ Organize work your way
- **Client Management** โ Store client details and billing rates
- **Task Board** โ Visual task management with priorities and assignments
- **Status Tracking** โ Monitor progress from to-do to completion
- **Estimates vs Actuals** โ Track project budgets and burn rates
### ๐งพ **Professional Invoicing**
- **Generate from Time** โ Convert tracked hours to invoices automatically
- **Custom Line Items** โ Add manual items for expenses or services
- **Tax Calculation** โ Automatic tax calculations with configurable rates
- **PDF Export** โ Professional invoice templates (coming soon)
- **Status Tracking** โ Track draft, sent, paid, and overdue invoices
### ๐ **Analytics & Reporting**
- **Visual Dashboards** โ Charts and graphs for quick insights
- **Detailed Reports** โ Time breakdown by project, user, or date range
- **CSV Export** โ Export data for external analysis
- **Billable vs Non-billable** โ Separate tracking for accurate billing
- **Custom Date Ranges** โ Flexible reporting periods
### ๐ **Multi-User & Security**
- **Role-Based Access** โ Admin and user roles with appropriate permissions
- **User Management** โ Add team members and manage access
- **Self-Hosted** โ Complete control over your data
- **Username-Only Login** โ Simple authentication for internal use
- **Session Management** โ Secure cookies and session handling
### ๐ ๏ธ **Technical Excellence**
- **Docker Ready** โ Deploy in minutes with Docker Compose
- **Database Flexibility** โ PostgreSQL for production, SQLite for testing
- **Responsive Design** โ Works perfectly on desktop, tablet, and mobile
- **Real-time Sync** โ WebSocket support for live updates
- **Automatic Backups** โ Scheduled database backups (configurable)
---
## ๐ธ Screenshots
### Dashboard โ Your Command Center

*Start timers, view recent entries, and see your productivity at a glance*
---
### Projects & Tasks โ Stay Organized
*Manage multiple projects and break them down into actionable tasks*
---
### Time Tracking โ Flexible & Powerful
*Manual time entry and visual calendar view for better planning*
---
### Invoicing & Clients โ Professional Billing
*Generate invoices from tracked time and manage client relationships*
---
### Reports & Analytics โ Data-Driven Insights
*Comprehensive reporting and user analytics for informed decisions*
---
### Easy Creation โ Streamlined Workflows
*Simple, intuitive forms for creating projects, tasks, and clients*
---
## ๐ Quick Start
### Docker (Recommended)
Get TimeTracker running in under 2 minutes:
```bash
# Clone the repository
git clone https://github.com/drytrix/TimeTracker.git
cd TimeTracker
# Start with Docker Compose
docker-compose up -d
# Access at http://localhost:8080
```
**First login creates the admin account** โ just enter your username!
### Quick Test with SQLite
Want to try it out without setting up a database?
```bash
docker-compose -f docker-compose.local-test.yml up --build
```
No configuration needed โ perfect for testing!
---
## ๐ก Use Cases
### For Freelancers
Track time across multiple client projects, generate professional invoices, and understand where your time goes. TimeTracker helps you bill accurately and identify your most profitable clients.
### For Teams
Assign tasks, track team productivity, and generate reports for stakeholders. See who's working on what, identify bottlenecks, and optimize team performance.
### For Agencies
Manage multiple clients and projects simultaneously. Track billable hours, generate client invoices, and analyze project profitability โ all in one place.
### For Personal Projects
Even if you're not billing anyone, understanding where your time goes is valuable. Track personal projects, hobbies, and learning activities to optimize your time.
---
## ๐ Why TimeTracker?
| Feature | TimeTracker | Traditional Time Trackers |
|---------|-------------|---------------------------|
| **Self-Hosted** | โ
Complete data control | โ Cloud-only, subscription fees |
| **Open Source** | โ
Free to use & modify | โ Proprietary, locked features |
| **Persistent Timers** | โ
Runs server-side | โ Browser-dependent |
| **Docker Ready** | โ
Deploy anywhere | โ ๏ธ Complex setup |
| **Invoicing Built-in** | โ
Track to bill workflow | โ Requires integration |
| **No User Limits** | โ
Unlimited users | โ Per-user pricing |
---
## ๐ Documentation
Comprehensive documentation is available in the [`docs/`](docs/) directory:
### Getting Started
- **[๐ Getting Started Guide](docs/GETTING_STARTED.md)** โ Complete beginner's guide (โญ Start here!)
- **[Installation Guide](docs/DOCKER_PUBLIC_SETUP.md)** โ Detailed setup instructions
- **[Requirements](docs/REQUIREMENTS.md)** โ System requirements and dependencies
- **[Troubleshooting](docs/DOCKER_STARTUP_TROUBLESHOOTING.md)** โ Common issues and solutions
- **[CSRF Token Issues](CSRF_TROUBLESHOOTING.md)** โ Fix "CSRF token missing or invalid" errors
- **[CSRF IP Access Fix](CSRF_IP_ACCESS_FIX.md)** โ ๐ฅ Fix cookies not working when accessing via IP address
- **[HTTPS Auto-Setup](README_HTTPS_AUTO.md)** โ ๐ Automatic HTTPS at startup (one command!)
- **[HTTPS Manual Setup (mkcert)](README_HTTPS.md)** โ ๐ Manual HTTPS with no certificate warnings
### Features
- **[Task Management](docs/TASK_MANAGEMENT_README.md)** โ Break projects into manageable tasks
- **[Invoice System](docs/INVOICE_FEATURE_README.md)** โ Generate professional invoices
- **[Client Management](docs/CLIENT_MANAGEMENT_README.md)** โ Manage client relationships
- **[Calendar Features](docs/CALENDAR_FEATURES_README.md)** โ Calendar and bulk entry features
- **[Command Palette](docs/COMMAND_PALETTE_USAGE.md)** โ Keyboard shortcuts for power users
### Technical Documentation
- **[Project Structure](docs/PROJECT_STRUCTURE.md)** โ Codebase architecture
- **[Database Migrations](migrations/README.md)** โ Database schema management
- **[Version Management](docs/VERSION_MANAGEMENT.md)** โ Release and versioning
- **[CSRF Configuration](docs/CSRF_CONFIGURATION.md)** โ Security and CSRF token setup for Docker
- **[CI/CD Documentation](docs/cicd/)** โ Continuous integration setup
### Contributing
- **[Contributing Guidelines](docs/CONTRIBUTING.md)** โ How to contribute
- **[Code of Conduct](docs/CODE_OF_CONDUCT.md)** โ Community standards
---
## ๐ณ Deployment
### Local Development
```bash
docker-compose up -d
```
### Production with PostgreSQL
```bash
# Configure your .env file
cp env.example .env
# Edit .env with production settings
# IMPORTANT: Set a secure SECRET_KEY for CSRF tokens and sessions
# Generate one with: python -c "import secrets; print(secrets.token_hex(32))"
# Start with production compose
docker-compose -f docker-compose.remote.yml up -d
```
> **โ ๏ธ Security Note:** Always set a unique `SECRET_KEY` in production! See [CSRF Configuration](docs/CSRF_CONFIGURATION.md) for details.
### Raspberry Pi
TimeTracker runs perfectly on Raspberry Pi 4 (2GB+):
```bash
# Same commands work on ARM architecture
docker-compose up -d
```
**๐ See [Deployment Guide](docs/DOCKER_PUBLIC_SETUP.md) for detailed instructions**
---
## ๐ง Configuration
TimeTracker is highly configurable through environment variables:
```bash
# Timezone and locale
TZ=America/New_York
CURRENCY=USD
# Timer behavior
SINGLE_ACTIVE_TIMER=true
IDLE_TIMEOUT_MINUTES=30
ROUNDING_MINUTES=1
# User management
ADMIN_USERNAMES=admin,manager
ALLOW_SELF_REGISTER=false
# Security (production)
SECRET_KEY=your-secure-random-key
SESSION_COOKIE_SECURE=true
```
**๐ See [Configuration Guide](docs/REQUIREMENTS.md) for all options**
---
## ๐ฃ๏ธ Roadmap
### Planned Features
- ๐ **PDF Invoice Templates** โ Professional PDF generation
- ๐ง **Email Integration** โ Send invoices to clients
- ๐ฑ **Progressive Web App** โ Install as mobile app
- ๐ **Recurring Invoices** โ Automate recurring billing
- ๐จ **Custom Themes** โ Personalize your interface
- ๐ **API Extensions** โ RESTful API for integrations
- ๐ **Advanced Analytics** โ More charts and insights
### Recently Added
- โ
**Invoice Generation** โ Complete invoicing system
- โ
**Task Management** โ Full task tracking and management
- โ
**Command Palette** โ Keyboard-driven navigation
- โ
**Calendar View** โ Visual time entry calendar
- โ
**Bulk Operations** โ Bulk time entry creation
---
## ๐ค Contributing
We welcome contributions! Whether it's:
- ๐ **Bug Reports** โ Help us identify issues
- ๐ก **Feature Requests** โ Share your ideas
- ๐ **Documentation** โ Improve our docs
- ๐ป **Code Contributions** โ Submit pull requests
**๐ See [Contributing Guidelines](docs/CONTRIBUTING.md) to get started**
---
## ๐ License
TimeTracker is licensed under the **GNU General Public License v3.0**.
This means you can:
- โ
Use it commercially
- โ
Modify and adapt it
- โ
Distribute it
- โ
Use it privately
**See [LICENSE](LICENSE) for full details**
---
## ๐ Support
- ๐ **Documentation**: Check the [`docs/`](docs/) directory
- ๐ **Bug Reports**: [Open an issue](https://github.com/drytrix/TimeTracker/issues)
- ๐ฌ **Discussions**: [GitHub Discussions](https://github.com/drytrix/TimeTracker/discussions)
- ๐ง **Contact**: [Create an issue](https://github.com/drytrix/TimeTracker/issues) for support
---
## โญ Star Us!
If TimeTracker helps you track your time better, consider giving us a star on GitHub! It helps others discover the project.
**[โญ Star on GitHub](https://github.com/drytrix/TimeTracker)**
---
**Built with โค๏ธ for the time-tracking community**