DEV Community

Caper B
Caper B

Posted on

Automating My Freelance Workflow with Python: A Step-by-Step Guide

Automating My Freelance Workflow with Python: A Step-by-Step Guide

As a freelance developer, I've learned that automation is key to increasing productivity and reducing the time spent on repetitive tasks. In this article, I'll share how I use Python to automate my freelance workflow, from project management to invoicing, and provide you with practical steps to do the same.

Step 1: Project Management Automation

I use Trello to manage my projects, and with the help of Python, I can automate tasks such as creating new boards, lists, and cards. I use the requests library to interact with the Trello API.

import requests

# Trello API credentials
api_key = "your_api_key"
api_token = "your_api_token"

# Create a new board
board_name = "New Project"
response = requests.post(
    f"https://api.trello.com/1/boards/",
    params={
        "key": api_key,
        "token": api_token,
        "name": board_name
    }
)

# Get the board ID
board_id = response.json()["id"]

# Create a new list
list_name = "To-Do"
response = requests.post(
    f"https://api.trello.com/1/lists",
    params={
        "key": api_key,
        "token": api_token,
        "name": list_name,
        "idBoard": board_id
    }
)
Enter fullscreen mode Exit fullscreen mode

This code creates a new board and list in Trello, which I can then use to manage my project tasks.

Step 2: Time Tracking Automation

I use Toggl to track my time, and with Python, I can automate tasks such as starting and stopping timers. I use the requests library to interact with the Toggl API.

import requests

# Toggl API credentials
api_token = "your_api_token"

# Start a new timer
project_name = "New Project"
response = requests.post(
    "https://api.toggl.com/reports/v8/details",
    headers={
        "Authorization": f"Basic {api_token}",
        "Content-Type": "application/json"
    },
    json={
        "user_agent": "my_app",
        "workspace_id": "your_workspace_id",
        "project_name": project_name
    }
)

# Get the timer ID
timer_id = response.json()["data"]["items"][0]["id"]

# Stop the timer
response = requests.put(
    f"https://api.toggl.com/reports/v8/details/{timer_id}/stop",
    headers={
        "Authorization": f"Basic {api_token}",
        "Content-Type": "application/json"
    }
)
Enter fullscreen mode Exit fullscreen mode

This code starts and stops a timer in Toggl, which I can then use to track my time spent on projects.

Step 3: Invoicing Automation

I use Stripe to manage my invoices, and with Python, I can automate tasks such as generating invoices and sending them to clients. I use the stripe library to interact with the Stripe API.

import stripe

# Stripe API credentials
stripe.api_key = "your_api_key"

# Create a new invoice
client_name = "John Doe"
invoice_items = [
    {"price": 100, "quantity": 1},
    {"price": 200, "quantity": 2}
]
invoice = stripe.Invoice.create(
    customer="your_customer_id",
    items=invoice_items,
    payment_terms="due_upon_receipt"
)

# Send the invoice to the client
stripe.Invoice.send_invoice(
    invoice.id,
    customer_email=client_name
)
Enter fullscreen mode Exit fullscreen mode

This code creates a new invoice in Stripe and sends it to the client, which I can then use to manage my invoicing process.

Monetization Angle

By automating my freelance workflow with Python

Top comments (0)