Post

Cloud Budget Tracker (Python + AWS S3)

A serverless-style Python project that integrates with AWS S3 for secure, cloud-based budget management.

Cloud Budget Tracker (Python + AWS S3)

☁️ Cloud Budget Tracker (Python + AWS S3)

This project demonstrates how to use Python and AWS S3 to build a cloud-based budget tracker.
All data — deposits, withdrawals, and spending reports — are stored securely in S3, showing how automation and cloud storage can work together to simplify everyday tasks.


🧩 Overview

Architecture

1
Python CLI ──► AWS S3 (ledger + reports)

The app stores each transaction in a JSON ledger and automatically generates spending summaries saved to the /reports folder in S3.

⚙️ Tech Stack

ComponentDescription
Python 3.12Core logic and budget tracking
boto3AWS SDK for S3 interactions
AWS CloudShellCloud execution environment
S3 BucketSecure ledger + report storage

💾 Source Code

The full implementation is available on GitHub:
👉 View on GitHub → elis420/cloud-budget-tracker

🧠 Key Features

  • 💰 Add, withdraw, and transfer funds between categories

  • ☁️ Automatic ledger storage in AWS S3

  • 🔐 Encrypted and versioned storage by default

  • 📊 Generate JSON reports on spending by category

1. Set Environment Variables

1
2
export BUDGET_BUCKET=elis-budget-tracker-123456
export LEDGER_KEY=data/ledger.json

2. Run the App

1
2
3
4
python3 main.py add Food 150 "Groceries"
python3 main.py add Rent 400 "October rent"
python3 main.py transfer Food Rent 50
python3 main.py report

All data and reports are automatically synced to your AWS S3 bucket:

1
2
s3://elis-budget-tracker-123456/data/ledger.json
s3://elis-budget-tracker-123456/reports/YYYY-MM-DD.json

🛡️ Security

All S3 objects are encrypted (SSE-S3) and versioned. IAM roles follow the principle of least privilege (s3:GetObject, s3:PutObject, s3:ListBucket).

📸 Screenshots

Budget summary report stored in S3:

report stored in S3

Running the tracker inside CloudShell or Powershell:

running in CloudShell

showing spending graph

showing category spending

🧩 Lessons Learned

Combining Python automation with AWS services can turn a simple script into a scalable, cloud-native workflow. This project helped reinforce my knowledge of S3 permissions, encryption, and the power of serverless tools.

This post is licensed under CC BY 4.0 by the author.