← Back to templates

Project Tracker

engineering

Manage projects, tasks, and milestones with status tracking.

Collections

Projects

High-level projects and initiatives

Schema Fields

name:stringstatus:stringowner:stringstart_date:stringtarget_date:stringdescription:string

Tasks

Individual work items

Schema Fields

title:stringstatus:stringpriority:stringassignee:stringdue_date:stringestimate_hours:number

Milestones

Key project milestones and deadlines

Schema Fields

name:stringdue_date:stringstatus:stringdescription:string

Relationships

tasks
belongs_to
projectsTask belongs to project
tasks
blocks
tasksTask blocks another task
projects
has_milestone
milestonesProject has milestone

Quick Start

Create the collections using the Rekor CLI:

rekor collections upsert projects --workspace my-tracker --schema @projects.json

Full Schema (JSON)

Copy the complete template definition:

{
  "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"
    }
  ]
}