← Volver a plantillas
Seguimiento de proyectos
engineeringAdministre proyectos, tareas e hitos con seguimiento de estado.
Colecciones
Projects
High-level projects and initiatives
Campos del esquema
name:stringstatus:stringowner:stringstart_date:stringtarget_date:stringdescription:string
Tasks
Individual work items
Campos del esquema
title:stringstatus:stringpriority:stringassignee:stringdue_date:stringestimate_hours:number
Milestones
Key project milestones and deadlines
Campos del esquema
name:stringdue_date:stringstatus:stringdescription:string
Relaciones
tasks
belongs_to
projectsTask belongs to projecttasks
blocks
tasksTask blocks another taskprojects
has_milestone
milestonesProject has milestoneConsultas de ejemplo
Consulte los datos de esta plantilla usando el endpoint SQL.
Task breakdown by status
Count tasks grouped by status to see workload distribution.
SELECT
data.status.:String as status,
count() as task_count
FROM records FINAL
WHERE workspace_id = {workspace_id:String}
AND collection = 'tasks'
AND deleted = false
GROUP BY status
ORDER BY task_count DESCWorkload by assignee
See how many open tasks each person has and their total estimated hours.
SELECT
data.assignee.:String as assignee,
count() as open_tasks,
sum(CAST(data.estimate_hours, 'Float64')) as total_hours
FROM records FINAL
WHERE workspace_id = {workspace_id:String}
AND collection = 'tasks'
AND deleted = false
AND data.status.:String IN ('todo', 'in_progress', 'review')
GROUP BY assignee
ORDER BY total_hours DESCOverdue tasks
Find tasks past their due date that are not yet done.
SELECT
data.title.:String as title,
data.priority.:String as priority,
data.assignee.:String as assignee,
data.due_date.:String as due_date
FROM records FINAL
WHERE workspace_id = {workspace_id:String}
AND collection = 'tasks'
AND deleted = false
AND data.status.:String != 'done'
AND CAST(data.due_date.:String, 'Date') < today()
ORDER BY due_date ASCProject status overview
List all projects with their status and timeline.
SELECT
data.name.:String as project,
data.status.:String as status,
data.owner.:String as owner,
data.start_date.:String as start_date,
data.target_date.:String as target_date
FROM records FINAL
WHERE workspace_id = {workspace_id:String}
AND collection = 'projects'
AND deleted = false
ORDER BY data.target_date.:String ASCInicio rápido
Cree las colecciones usando el Rekor CLI:
rekor collections upsert projects --workspace my-tracker --schema @projects.jsonEsquema completo (JSON)
Copie la definición completa de la plantilla:
{
"collections": [
{
"id": "projects",
"name": "Projects",
"description": "High-level projects and initiatives",
"icon": "folder",
"color": "#3b82f6",
"json_schema": {
"type": "object",
"required": [
"name",
"status"
],
"properties": {
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planning",
"active",
"paused",
"completed",
"cancelled"
]
},
"owner": {
"type": "string"
},
"start_date": {
"type": "string",
"format": "date"
},
"target_date": {
"type": "string",
"format": "date"
},
"description": {
"type": "string"
}
}
}
},
{
"id": "tasks",
"name": "Tasks",
"description": "Individual work items",
"icon": "check-square",
"color": "#22c55e",
"json_schema": {
"type": "object",
"required": [
"title",
"status"
],
"properties": {
"title": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"todo",
"in_progress",
"review",
"done"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"assignee": {
"type": "string"
},
"due_date": {
"type": "string",
"format": "date"
},
"estimate_hours": {
"type": "number"
}
}
}
},
{
"id": "milestones",
"name": "Milestones",
"description": "Key project milestones and deadlines",
"icon": "flag",
"color": "#f59e0b",
"json_schema": {
"type": "object",
"required": [
"name",
"due_date"
],
"properties": {
"name": {
"type": "string"
},
"due_date": {
"type": "string",
"format": "date"
},
"status": {
"type": "string",
"enum": [
"upcoming",
"reached",
"missed"
]
},
"description": {
"type": "string"
}
}
}
}
],
"relationships": [
{
"type": "belongs_to",
"source": "tasks",
"target": "projects",
"description": "Task belongs to project"
},
{
"type": "blocks",
"source": "tasks",
"target": "tasks",
"description": "Task blocks another task"
},
{
"type": "has_milestone",
"source": "projects",
"target": "milestones",
"description": "Project has milestone"
}
]
}