Task Management System
Relevant source files
The following files were used as context for generating this wiki page:
- apps/web/src/app/api/v1/workspaces/[wsId]/tasks/route.ts
- apps/web/src/app/api/v1/workspaces/[wsId]/tasks/journal/route.ts
- packages/ui/src/components/ui/tu-do/projects/projectId/task-project-detail-page.tsx
- packages/ui/src/components/ui/tu-do/templates/task-templates-page.tsx
- packages/ui/src/components/ui/calendar-app/components/priority-view.tsx
- apps/web/src/app/api/v1/live/token/route.ts
- README.md
The Task Management System is a core module of the Tuturuuu platform designed to handle hierarchical task organization and productivity workflows. It enables users to manage work across various granularities, ranging from high-level initiatives and projects down to specific boards and individual tasks. The system integrates intelligent features such as AI-powered task generation from journal entries, voice-assisted task management (Mira), and advanced scheduling capabilities within a calendar-driven interface.
The architecture follows a multi-tenant structure where tasks are strictly scoped to workspaces (wsId). It supports a variety of views including list, board, and project-specific details, while leveraging a unified UI component library (@tuturuuu/ui) for consistent user experience across different applications like web, tasks, and calendar.
Sources: README.md:16-25, packages/ui/src/components/ui/tu-do/projects/projectId/task-project-detail-page.tsx:64-70
Core Data Model and Relationships
The system relies on a relational database schema (Supabase/PostgreSQL) that maintains strict hierarchies and metadata associations. Tasks are the primary entities, which can be grouped into lists, projects, and boards.
Entity Relationship
The following diagram illustrates the primary relationships between tasks and their organizational containers.
The hierarchy follows a structure of Workspaces > Initiatives > Projects > Boards > Tasks.
Sources: README.md:25, packages/ui/src/components/ui/tu-do/projects/projectId/task-project-detail-page.tsx:71-100, apps/web/src/app/api/v1/workspaces/[wsId]/tasks/route.ts:75-105
Task Fields and Metadata
Tasks are defined by several key attributes that determine their priority, status, and timeline.
| Field | Type | Description |
|---|---|---|
id | UUID | Unique identifier for the task. |
name | String | Title of the task (max 255 chars). |
description | Text | Detailed task description. |
priority | Enum | Levels: low, normal, high, critical. |
completed | Boolean | Binary status of task completion. |
list_id | UUID | Reference to the parent task_lists container. |
start_date | Timestamp | Scheduled start time. |
end_date | Timestamp | Due date/deadline. |
estimation_points | Integer | Numeric complexity or time estimate. |
Sources: apps/web/src/app/api/v1/workspaces/[wsId]/tasks/route.ts:11-22, apps/web/src/app/api/v1/workspaces/[wsId]/tasks/journal/route.ts:31-40
Task Creation and Lifecycle
Tasks can be created through standard UI forms, AI-powered "Quick Journaling," or voice commands.
AI Quick Journaling
The Quick Journaling feature allows users to provide raw text entries which an AI model (e.g., Gemini-2.5-flash-lite) parses into actionable tasks. The system automatically extracts titles, descriptions, priorities, and due dates from natural language.
Voice Assistance (Mira)
The system includes a voice assistant interface powered by Google's native audio preview models. It utilizes function calling to interact with the task database directly via voice.
Supported Voice Tools:
get_my_tasks: Fetch user-specific tasks categorized by timeframe.search_tasks: Search by keyword or natural language similarity.create_task: Direct insertion via voice command.update_task: Modify existing task attributes.visualize_task_list: Generates UI cards for the user to see during conversation.
Sources: apps/web/src/app/api/v1/live/token/route.ts:35-80, apps/web/src/app/api/v1/live/token/route.ts:178-220
Views and Visualization
The task system provides multiple ways to interact with data, ranging from project-specific views to scheduling-heavy priority views.
Priority and Scheduling View
The PriorityView component groups tasks by their urgency level and integrates with the calendar for time-tracking.
- Dynamic Grouping: Tasks are sorted into
critical,high,normal, andlowsections. - Scheduling Integration: Tasks can be dragged onto the calendar. The system tracks
scheduled_minutesvs.total_durationto show progress bars. - Automatic Assignment: In personal workspaces, tasks are auto-linked to the user; in team workspaces, they reflect assignments.
Sources: packages/ui/src/components/ui/calendar-app/components/priority-view.tsx:100-150, packages/ui/src/components/ui/calendar-app/components/priority-view.tsx:550-600
Project Detail Management
The TaskProjectDetailPage component serves as a central hub for specific initiatives.
- Permission Enforcement: Requires
manage_projectspermission to access. - Data Hydration: Fetches the project lead, creator, associated tasks, assignees, and labels in a single server-side operation.
- Task Normalization: Converts raw database joins into structured
Taskobjects for the frontend components.
Sources: packages/ui/src/components/ui/tu-do/projects/projectId/task-project-detail-page.tsx:47-65, packages/ui/src/components/ui/tu-do/projects/projectId/task-project-detail-page.tsx:120-150
API Endpoints
The system exposes a RESTful API for task operations under the /api/v1/workspaces/[wsId]/tasks path.
| Endpoint | Method | Parameters | Description |
|---|---|---|---|
/tasks | GET | limit, offset, boardId, listId | Retrieves tasks for a workspace with filtering and pagination. |
/tasks | POST | name, listId, priority, label_ids | Creates a new task and optional associations. |
/tasks/journal | POST | entry, previewOnly, listId | Processes natural language into task objects. |
/tasks/[id]/schedule | GET | taskId | Fetches scheduling settings and total minutes worked. |
Sources: apps/web/src/app/api/v1/workspaces/[wsId]/tasks/route.ts:38-55, apps/web/src/app/api/v1/workspaces/[wsId]/tasks/journal/route.ts:50-65, packages/ui/src/components/ui/calendar-app/components/priority-view.tsx:216-230
Task Templates
To improve efficiency, the system supports board_templates. These allow workspaces to instantiate pre-defined structures including lists, tasks, and labels.
- Visibility Control: Templates can be
private,workspace-wide, orpublic. - Marketplace Integration: Users can browse and adopt templates from a shared gallery.
- Storage Integration: Templates support background images stored in workspace buckets with signed URL access.
Sources: packages/ui/src/components/ui/tu-do/templates/task-templates-page.tsx:45-80
The Task Management System integrates deeply with the platform's AI and Calendar services to provide a seamless productivity experience. By leveraging structured hierarchies and flexible visualization, it accommodates both personal organization and complex team projects.