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 automating repetitive tasks is key to increasing productivity and earning more. In this article, I'll show you how I use Python to automate my freelance workflow, from project management to invoicing.

Project Management Automation

I use the github API to automate project management tasks such as creating repositories, assigning issues, and tracking progress. Here's an example of how I use the requests library to create a new repository:

import requests

# Set your GitHub API token
token = "your_api_token"

# Set the repository name and description
repo_name = "new-repo"
repo_description = "This is a new repository"

# Create a new repository
response = requests.post(
    f"https://api.github.com/user/repos",
    headers={"Authorization": f"Bearer {token}"},
    json={"name": repo_name, "description": repo_description},
)

# Check if the repository was created successfully
if response.status_code == 201:
    print(f"Repository {repo_name} created successfully")
else:
    print(f"Failed to create repository {repo_name}")
Enter fullscreen mode Exit fullscreen mode

This script creates a new repository on my GitHub account with the specified name and description.

Time Tracking Automation

I use the toggl API to automate time tracking. Here's an example of how I use the requests library to start a new timer:

import requests

# Set your Toggl API token
token = "your_api_token"

# Set the project and task names
project_name = "New Project"
task_name = "New Task"

# Start a new timer
response = requests.post(
    f"https://api.toggl.com/reports/v8/details",
    headers={"Authorization": f"Bearer {token}"},
    json={
        "user_agent": "my_app",
        "workspace_id": "your_workspace_id",
        "since": "2022-01-01",
        "until": "2022-01-31",
        "state": "active",
        "project_name": project_name,
        "task_name": task_name,
    },
)

# Check if the timer was started successfully
if response.status_code == 200:
    print(f"Timer started successfully for {project_name} - {task_name}")
else:
    print(f"Failed to start timer for {project_name} - {task_name}")
Enter fullscreen mode Exit fullscreen mode

This script starts a new timer on my Toggl account for the specified project and task.

Invoicing Automation

I use the stripe API to automate invoicing. Here's an example of how I use the stripe library to create a new invoice:

import stripe

# Set your Stripe API token
stripe.api_key = "your_api_token"

# Set the customer and invoice details
customer_name = "John Doe"
invoice_amount = 1000

# Create a new customer
customer = stripe.Customer.create(
    name=customer_name,
    email="john@example.com",
)

# Create a new invoice
invoice = stripe.Invoice.create(
    customer=customer.id,
    amount=invoice_amount,
    currency="usd",
)

# Check if the invoice was created successfully
if invoice.status == "draft":
    print(f"Invoice created successfully for {customer_name}")
else:
    print(f"Failed to create invoice for {customer_name}")
Enter fullscreen mode Exit fullscreen mode

This script creates a new customer on my Stripe account and generates a new invoice for the specified amount.

Monetization Angle

By automating my freelance workflow, I'm able to save time and increase my earning potential. I can take on more clients and projects, and focus on high-paying tasks such as development and consulting. I also use my automation scripts to offer additional services to my clients, such as

Top comments (0)