Portfolio project focused on Application Support, SQL troubleshooting and report automation. It validates transaction data from CSV, loads it into SQLite, runs diagnostic SQL queries and exports operational reports.
- Data validation and error handling
- ETL automation with Python and Pandas
- SQL queries for operational analysis
- SQLite database creation and indexing
- Logging for troubleshooting and traceability
- Incident-oriented reports for failed and pending transactions
- Clear execution and support documentation
CSV input
|
v
Python validation and ETL
|
v
SQLite database
|
v
SQL diagnostic queries
|
v
CSV operational reports + logs
sql-python-data-automation/
├── data/
│ └── raw_transactions.csv
├── sql/
│ └── analysis.sql
├── python/
│ ├── etl.py
│ └── report.py
├── output/
│ └── .gitkeep
├── logs/
│ └── .gitkeep
├── .gitignore
├── requirements.txt
└── README.md
The SQLite database, reports and logs are generated locally and excluded from Git.
- Python 3.10 or newer
- pip
git clone https://github.com/SEBAZUMELZU/sql-python-data-automation.git
cd sql-python-data-automation
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtIf PowerShell blocks activation, use:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1git clone https://github.com/SEBAZUMELZU/sql-python-data-automation.git
cd sql-python-data-automation
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtRun the ETL process:
python python/etl.pyGenerate reports:
python python/report.pyGenerated files:
data/transactions.db
output/user_summary.csv
output/category_summary.csv
output/incident_candidates.csv
output/daily_completed_totals.csv
logs/etl.log
logs/report.log
The project produces four reports:
| Report | Purpose |
|---|---|
user_summary.csv |
Transaction totals and completed amount by user |
category_summary.csv |
Volume and amount grouped by category |
incident_candidates.csv |
Failed and pending transactions requiring support review |
daily_completed_totals.csv |
Daily completed transaction totals |
Example diagnostic query:
SELECT
transaction_id,
user_name,
status,
CASE
WHEN status = 'failed' THEN 'P2 - investigate failed transaction'
WHEN status = 'pending' THEN 'P3 - verify pending transaction'
END AS support_action
FROM transactions
WHERE status IN ('failed', 'pending');The ETL verifies:
- Required columns
- Numeric transaction and user identifiers
- Valid dates and amounts
- Duplicate transaction identifiers
- Negative amounts
- Empty user or category values
- Allowed statuses:
completed,pending,failed
Errors are displayed in the terminal and written to logs/etl.log.
Activate the virtual environment and install dependencies:
python -m pip install -r requirements.txtConfirm this file exists:
data/raw_transactions.csv
You can also provide another path:
python python/etl.py --input path/to/file.csvRun the ETL before generating reports:
python python/etl.py
python python/report.pyReview logs/etl.log. Check column names, duplicate IDs, invalid statuses, dates and negative amounts.
Review logs/report.log and confirm:
data/transactions.dbexists- the
transactionstable was created sql/analysis.sqlcontains named query blocks
A support analyst receives a report that some transactions have not completed. This project provides a repeatable diagnostic process:
- Validate the source data.
- Load a consistent local database.
- Identify failed and pending records with SQL.
- Assign an initial support priority.
- Export evidence for investigation or escalation.
- Preserve execution logs for traceability.
- Unit tests with
pytest - Scheduled execution
- Dashboard visualization
- Email notification for failed transactions
- Database connection to PostgreSQL or MySQL
- Ticket creation through an API
Sebastián Zumelzu
Application Support / IT Operations profile with a technical background in programming, SQL, Linux and enterprise systems.