DEV Community

Caper B
Caper B

Posted on

How I Automate My Freelance Workflow with Python

How I Automate My Freelance Workflow with Python

As a freelancer, I've learned that automation is key to increasing productivity and reducing the time spent on repetitive tasks. In this article, I'll show you how I use Python to automate my freelance workflow, from project management to invoicing.

Setting Up the Environment

To start automating your workflow, you'll need to set up a Python environment on your machine. I recommend using a virtual environment to keep your dependencies organized. You can create a new virtual environment using the following command:

python -m venv freelance-env
Enter fullscreen mode Exit fullscreen mode

Activate the environment and install the required libraries:

source freelance-env/bin/activate
pip install schedule requests pandas
Enter fullscreen mode Exit fullscreen mode

Project Management Automation

I use Trello to manage my projects, and I've created a Python script that automates the creation of new boards and lists. Here's an example code snippet:

import requests

# Trello API credentials
api_key = "YOUR_API_KEY"
api_token = "YOUR_API_TOKEN"

# Create a new board
def create_board(board_name):
    url = f"https://api.trello.com/1/boards/?key={api_key}&token={api_token}&name={board_name}"
    response = requests.post(url)
    return response.json()

# Create a new list
def create_list(board_id, list_name):
    url = f"https://api.trello.com/1/lists/?key={api_key}&token={api_token}&name={list_name}&idBoard={board_id}"
    response = requests.post(url)
    return response.json()

# Create a new board and list
board_name = "New Project"
list_name = "To-Do"
board_id = create_board(board_name)["id"]
create_list(board_id, list_name)
Enter fullscreen mode Exit fullscreen mode

This script creates a new board and list on Trello, which helps me stay organized and focused on my projects.

Time Tracking Automation

I use Harvest to track my time, and I've created a Python script that automates the creation of new projects and tasks. Here's an example code snippet:

import pandas as pd

# Harvest API credentials
api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

# Create a new project
def create_project(project_name):
    url = f"https://api.harvestapp.com/v2/projects"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Harvest-Account-Id": "YOUR_ACCOUNT_ID"
    }
    data = {
        "name": project_name
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()

# Create a new task
def create_task(project_id, task_name):
    url = f"https://api.harvestapp.com/v2/tasks"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Harvest-Account-Id": "YOUR_ACCOUNT_ID"
    }
    data = {
        "name": task_name,
        "project_id": project_id
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()

# Create a new project and task
project_name = "New Project"
task_name = "Development"
project_id = create_project(project_name)["id"]
create_task(project_id, task_name)
Enter fullscreen mode Exit fullscreen mode

This script creates a new project and task on Harvest, which helps me track my time and stay focused on my work.

Invoicing Automation

I use Stripe to handle my payments, and I've created a Python script that automates the creation of new invoices. Here's an example code snippet:


python
import schedule
import time

# Stripe API credentials
api_key = "YOUR_API_KEY"

# Create a new invoice
def create_invoice(customer_id, amount):
    url = f"https://api
Enter fullscreen mode Exit fullscreen mode

Top comments (0)