Skip to content

Project Module

Christian KASSE edited this page Apr 2, 2026 · 2 revisions

Project Module

Project management: projects, tasks, milestones, resource allocations, task comments, and reports.

Accessor: client.project

Available Resources

Resource Accessor Description
Projects client.project.projects Project management
Tasks client.project.tasks Task tracking
Milestones client.project.milestones Project milestones
Resource Allocations client.project.resource_allocations Resource assignments
Task Comments client.project.task_comments Task discussion comments
Reports client.project.reports Project reports

Code Examples

Project Lifecycle

from essabu import Essabu

client = Essabu(api_key="esa_live_xxx", tenant_id="tenant-id")

project = client.project.projects.create(
    name="Website Redesign",
    description="Complete redesign of the corporate website",
    start_date="2026-04-01",
    end_date="2026-09-30",
    budget=50000,
    currency="USD",
    manager_id="user-uuid",
)

projects = client.project.projects.list(status="active")
client.project.projects.update(project["id"], status="in_progress")

Tasks

task = client.project.tasks.create(
    project_id=project["id"],
    title="Design mockups",
    description="Create wireframes and high-fidelity mockups",
    assignee_id="user-uuid",
    priority="high",
    due_date="2026-04-15",
    estimated_hours=40,
)

tasks = client.project.tasks.list(project_id=project["id"], status="todo")
client.project.tasks.update(task["id"], status="in_progress", progress=50)

for page in client.project.tasks.list_all(project_id=project["id"]):
    for t in page.data:
        print(f"{t['title']}: {t['status']}")

Milestones

milestone = client.project.milestones.create(
    project_id=project["id"],
    name="Design Phase Complete",
    due_date="2026-05-01",
    description="All design deliverables approved",
)
milestones = client.project.milestones.list(project_id=project["id"])
client.project.milestones.update(milestone["id"], status="completed")

Resource Allocations

allocation = client.project.resource_allocations.create(
    project_id=project["id"],
    user_id="user-uuid",
    role="Designer",
    allocation_percentage=80,
    start_date="2026-04-01",
    end_date="2026-05-31",
)

Task Comments

comment = client.project.task_comments.create(
    task_id=task["id"],
    author_id="user-uuid",
    body="Mockups are ready for review.",
)
comments = client.project.task_comments.list(task_id=task["id"])
client.project.task_comments.delete(comment["id"])

Reports

report = client.project.reports.create(
    project_id=project["id"],
    type="progress",
    period="2026-Q2",
)
details = client.project.reports.retrieve(report["id"])

See Also

Clone this wiki locally