You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TaskFlowr is a multi-agent workflow automation system built with Google's ADK. This document describes the complete full-stack implementation with REST API, React frontend, and external connectors.
# Clone the repository
git clone https://github.com/saad2134/taskflowr
cd taskflowr
# Start all services
docker-compose up -d
# Access the application# Frontend: http://localhost:3000# Backend API: http://localhost:8000/api/v1# API Docs: http://localhost:8000/api/v1/docs
Manual Setup
Backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate# Install dependenciescd backend
pip install -r requirements.txt
# Set environment variables
cp .template.env .env
# Edit .env with your values# Run the backend
uvicorn app.main:app --reload
Frontend
# Install dependenciescd frontend
npm install
# Run the frontend
npm run dev
API Reference
Authentication
Endpoint
Method
Description
/api/v1/auth/register
POST
Register a new user
/api/v1/auth/login
POST
Login and get tokens
/api/v1/auth/refresh
POST
Refresh access token
/api/v1/auth/me
GET
Get current user
Tasks
Endpoint
Method
Description
/api/v1/tasks
GET
List all tasks
/api/v1/tasks
POST
Create a new task
/api/v1/tasks/{id}
GET
Get task details
/api/v1/tasks/{id}
PUT
Update a task
/api/v1/tasks/{id}
DELETE
Delete a task
/api/v1/tasks/{id}/execute
POST
Execute a task
/api/v1/tasks/execute
POST
Execute task directly
Workflows
Endpoint
Method
Description
/api/v1/workflows
GET
List all workflows
/api/v1/workflows
POST
Create a new workflow
/api/v1/workflows/{id}
GET
Get workflow details
/api/v1/workflows/{id}
PUT
Update a workflow
/api/v1/workflows/{id}
DELETE
Delete a workflow
/api/v1/workflows/{id}/execute
POST
Execute a workflow
/api/v1/workflows/{id}/activate
POST
Activate a workflow
/api/v1/workflows/{id}/pause
POST
Pause a workflow
Executions
Endpoint
Method
Description
/api/v1/executions
GET
List all executions
/api/v1/executions/{id}
GET
Get execution details
/api/v1/executions/{id}/cancel
POST
Cancel an execution
/api/v1/executions/{id}/logs
GET
Get execution logs
Connectors
Endpoint
Method
Description
/api/v1/connectors
GET
List all connectors
/api/v1/connectors
POST
Create a connector
/api/v1/connectors/{id}
GET
Get connector details
/api/v1/connectors/{id}
PUT
Update a connector
/api/v1/connectors/{id}
DELETE
Delete a connector
/api/v1/connectors/test
POST
Test a connector
Webhooks
Endpoint
Method
Description
/api/v1/webhooks
GET
List all webhooks
/api/v1/webhooks
POST
Create a webhook
/api/v1/webhooks/{id}
DELETE
Delete a webhook
Example Usage
Create and Execute a Task
# Login
curl -X POST http://localhost:8000/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "your_username", "password": "your_password"}'# Create a task
curl -X POST http://localhost:8000/api/v1/tasks \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Generate Report", "description": "Create a sales report", "input_data": {"instruction": "Generate a sales report for Q4"}}'# Execute the task
curl -X POST http://localhost:8000/api/v1/tasks/TASK_ID/execute \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"input_data": {}}'
Using Connectors
# Create a Slack connector
curl -X POST http://localhost:8000/api/v1/connectors \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "My Slack", "connector_type": "slack", "credentials": {"bot_token": "xoxb-..."}}'# Test the connector
curl -X POST http://localhost:8000/api/v1/connectors/test \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"connector_type": "slack", "credentials": {"bot_token": "xoxb-..."}}'