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)
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
| Component | Description |
|---|---|
| Python 3.12 | Core logic and budget tracking |
| boto3 | AWS SDK for S3 interactions |
| AWS CloudShell | Cloud execution environment |
| S3 Bucket | Secure 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:
Running the tracker inside CloudShell or Powershell:
🧩 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.