mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-01-05 19:20:21 -06:00
Add Pomodoro focus mode with session summaries Model: FocusSession; API: /api/focus-sessions/; UI: Focus modal on timer page Add estimates vs actuals with burndown and budget alerts Project fields: estimated_hours, budget_amount, budget_threshold_percent API: /api/projects/<id>/burndown; Charts in project view and project report Implement recurring time blocks/templates Model: RecurringBlock; API CRUD: /api/recurring-blocks; CLI: flask generate_recurring Add tagging and saved filters across views Model: SavedFilter; /api/entries supports tag and saved_filter_id Support billable rate overrides per project/member Model: RateOverride; invoicing uses effective rate resolution Also: Migration: 016_add_focus_recurring_rates_filters_and_project_budget.py Integrations and UI updates in projects view, timer page, and reports Docs updated (startup, invoice, task mgmt) and README feature list Added basic tests for new features
6.7 KiB
6.7 KiB
Task Management Feature
The Task Management feature allows you to break down projects into manageable tasks with status tracking, priority management, and time estimation.
Features
Core Task Management
- Task Creation: Create tasks with names, descriptions, priorities, and due dates
- Status Tracking: Track task progress through multiple states (To Do, In Progress, Review, Done, Cancelled)
- Priority Levels: Set priority levels (Low, Medium, High, Urgent) with visual indicators
- Time Estimation: Estimate hours for tasks and track actual time spent
- Due Dates: Set and track due dates with overdue notifications
- Task Assignment: Assign tasks to team members
Integration with Time Tracking
- Task-Specific Timers: Start timers directly from tasks
- Time Entry Association: Link time entries to specific tasks
- Progress Tracking: Monitor progress based on estimated vs actual hours
- Manual Time Entry: Log time against specific tasks
Project Organization
- Project Breakdown: Organize projects into logical task components
- Task Overview: View all tasks for a project in the project dashboard
- Quick Actions: Start timers, edit tasks, and manage status from project views
User Experience
- My Tasks: View tasks assigned to or created by the current user
- Overdue Tasks: Identify and manage overdue tasks
- Filtering & Search: Find tasks by status, priority, project, or assignment
- Responsive Design: Mobile-friendly interface for task management
Getting Started
1. Database Migration
If you're upgrading from a previous version, run the migration script:
cd docker
python migrate-add-tasks.py
2. Accessing Tasks
- Navigate to Tasks in the main navigation
- View all tasks or filter by various criteria
- Access My Tasks to see your assigned tasks
3. Creating Your First Task
- Click New Task from the Tasks page
- Select a project
- Enter task details (name, description, priority, etc.)
- Set estimated hours and due date
- Assign to a team member (optional)
- Click Create Task
4. Managing Task Status
- Start Task: Mark as "In Progress" when you begin working
- Mark for Review: Indicate when work is ready for review
- Complete Task: Mark as "Done" when finished
- Cancel Task: Mark as "Cancelled" if no longer needed
Task Statuses
| Status | Description | Color |
|---|---|---|
| To Do | Task is planned but not started | Gray |
| In Progress | Work has begun on the task | Yellow |
| Review | Task is complete and ready for review | Blue |
| Done | Task is completed and approved | Green |
| Cancelled | Task is no longer needed | Gray |
Priority Levels
| Priority | Description | Color | Use Case |
|---|---|---|---|
| Low | Not urgent | Green | Nice-to-have features, documentation |
| Medium | Normal priority | Yellow | Standard development tasks |
| High | Important | Orange | Critical features, bug fixes |
| Urgent | Critical | Red | Production issues, security fixes |
Time Tracking Integration
Starting Timers from Tasks
- Click the Timer button on any task card
- Timer automatically associates with the task
- Track time spent on specific task components
Manual Time Entry
- Log time against specific tasks
- Include notes and tags for better tracking
- Associate time with project and task simultaneously
Progress Monitoring
- View estimated vs actual hours
- Track completion percentage
- Monitor task progress over time
Project Dashboard Integration
Tasks are displayed in the project view, showing:
- Task overview with status and priority
- Quick action buttons for each task
- Progress indicators for time tracking
- Links to detailed task views
User Permissions
- All Users: Can view tasks, start timers, and update status
- Task Creators: Can edit and delete their own tasks
- Admins: Can manage all tasks and view overdue reports
Best Practices
Task Creation
- Use clear, descriptive task names
- Break large features into smaller, manageable tasks
- Set realistic time estimates
- Assign appropriate priority levels
Task Management
- Update status regularly as work progresses
- Use due dates to maintain project timelines
- Monitor overdue tasks and adjust priorities
- Link time entries to tasks for accurate tracking
Project Organization
- Group related tasks under the same project
- Use consistent naming conventions
- Regular review of task status and progress
- Archive completed projects to focus on active work
API Endpoints
The Task Management feature includes RESTful API endpoints:
GET /api/tasks/<task_id>- Get task detailsPUT /api/tasks/<task_id>/status- Update task status- Additional endpoints for task CRUD operations
Mobile Support
The Task Management interface is fully responsive and optimized for mobile devices:
- Touch-friendly task cards
- Swipe gestures for quick actions
- Mobile-optimized forms and navigation
- Responsive grid layouts
Troubleshooting
Common Issues
Task not appearing in project view
- Ensure the task is assigned to the correct project
- Check that the project status is 'active'
Timer not associating with task
- Verify the task exists and is accessible
- Check user permissions for the task
Overdue tasks not showing
- Confirm due dates are set correctly
- Verify user has admin access for overdue reports
Database Issues
If you encounter database-related errors:
- Run the migration script:
python docker/migrate-add-tasks.py - Check database connection and permissions
- Verify all required tables exist
- Contact system administrator if issues persist
Recurring Time Blocks
The system supports recurring time block templates via the recurring_blocks table.
- Fields:
name,recurrence(weekly),weekdays(e.g.,mon,tue),start_time_local,end_time_local, optionalstarts_on/ends_on. - Blocks can include
notes,tags, andbillableflag and are user-owned. - API endpoints allow CRUD operations; a scheduler can periodically expand these into concrete
time_entries.
Future Enhancements
Planned improvements for Task Management:
- Bulk task operations (status updates, reassignment)
- Task dependencies and relationships
- Advanced reporting and analytics
- Integration with external project management tools
- Automated task scheduling and reminders
- Team collaboration features
Support
For questions or issues with the Task Management feature:
- Check this documentation
- Review the application logs
- Contact your system administrator
- Submit feature requests through the project repository