Python Projects

Practice Codes
& Case Studies

A collection of Python practice examples, real-world case studies, and GitHub repositories focused on automation, Excel/CSV reporting, CSV data cleaning, Laravel business automation, data tools, backend APIs, and practical problem solving.

CASE 01 — AUTOMATION

Excel Report Automation

Problem

Manual Excel reports take time and are easy to break when data formats change.

Solution

A Python script that reads Excel files, cleans rows, calculates totals, and exports a final report.

Result

A repeatable reporting workflow that reduces manual work and improves consistency.

Python Pandas OpenPyXL
CASE 02 — FILES

File Organizer Automation

Problem

Download folders and shared directories can become messy and difficult to manage.

Solution

A Python utility that sorts files into folders based on extension, category, or naming rules.

Result

A cleaner file system and faster access to documents, images, archives, and reports.

Pathlib Shutil Automation
CASE 03 — BACKEND

FastAPI Backend API

Problem

A project needs a clean backend for storing, retrieving, and managing structured data.

Solution

A REST API built with FastAPI, including clear endpoints, validation, and practical response formats.

Result

A backend foundation that can support dashboards, internal tools, and client applications.

FastAPI REST Backend
CASE 04 — DATA

CSV Data Cleaner & Validator

Problem

Raw CSV files often contain empty rows, inconsistent columns, and duplicated data.

Solution

A Python tool that standardizes column names, removes empty and duplicate rows, validates required fields, and exports clean data.

Result

Clean data that is ready for analysis, reporting, dashboards, or database import.

CSV Pandas ETL
CASE 05 — SCRAPING

Web Data Collector

Problem

Useful public information is available online but must be collected manually every time.

Solution

A Python scraper that extracts structured data and saves it into CSV or JSON format.

Result

Faster data collection and a repeatable process for monitoring online information.

Requests Parsing CSV
CASE 06 — VPS NETWORKING

V2Ray VPS Mobile Setup

Problem

Users need a practical way to run a private proxy service on a VPS and connect from Android securely and reliably.

Solution

A Docker-based V2Ray setup with clear configuration files, Android client connection steps, and troubleshooting notes.

Result

A documented setup workflow that makes deployment easier and turns the repository into a useful technical portfolio project.

Docker VPS Android
CASE 07 — LARAVEL BUSINESS AUTOMATION

Industrial Operations Automation System

Problem

An industrial business needed a structured way to manage daily operations, invoices, debts, checks, expenses, employees, and financial account activity.

Solution

A Laravel-based admin system designed around real operational workflows, financial tracking, reporting, and step-by-step development.

Result

A documented business automation case study showing how real workflows can be turned into a practical web-based management system.

Laravel PHP Business Software
View Case Study →
REPO 01 — PRACTICE

Python Practice Lab

Beginner-friendly Python practice codes and mini projects focused on fundamentals, problem solving, and clean Python basics.

Python Practice Mini Projects
View on GitHub →
REPO 02 — AUTOMATION

Python Automation Tools

Practical Python automation tools for file organization, CSV cleaning, and report generation.

Automation Pandas Workflow
View on GitHub →
REPO 03 — BACKEND

FastAPI Starter API

A beginner-friendly FastAPI starter project for building clean Python backend APIs with structured endpoints and Pydantic validation.

FastAPI REST API Backend
View on GitHub →
REPO 04 — VPS NETWORKING

V2Ray VPS Mobile Setup

A Docker-based V2Ray setup guide with configuration templates, Android client connection steps, and troubleshooting notes.

Docker VPS Networking
View on GitHub →
REPO 05 — PROFILE

Farshid Ghaffari GitHub Profile

A GitHub profile repository used to introduce my work, portfolio website, Python development focus, services, and public project links.

Portfolio GitHub Profile
View on GitHub →
REPO 06 — EXCEL AUTOMATION

Excel / CSV Report Automation

A practical Python automation project that cleans CSV/Excel data and generates business-ready Excel reports with monthly, category, and product summaries.

Python Pandas OpenPyXL
View on GitHub →
REPO 07 — CSV DATA CLEANING

CSV Data Cleaner & Validator

A practical Python data cleaning project that reads messy CSV files, normalizes column names, removes empty and duplicate rows, validates required fields, and exports clean data.

Python Pandas CSV
View on GitHub →
REPO 08 — LARAVEL CASE STUDY

Industrial Operations Automation Case Study

A public case study documenting a Laravel-based industrial business automation system for daily operations, invoices, purchases, debts, checks, expenses, employees, financial accounts, and reports.

Laravel PHP Business Software
View on GitHub → View Case Study →
EXAMPLE 01 — BASIC PYTHON

Even or Odd Number Checker

This script receives a number from the user and checks whether it is even or odd.

number = int(input("Enter a number: "))

if number % 2 == 0:
    print("The number is even.")
else:
    print("The number is odd.")
EXAMPLE 02 — MINI GAME

Guess the Number Game 1 to 6

A simple Python game where the player tries to guess a random number between 1 and 6.

import random

secret_number = random.randint(1, 6)

guess = int(input("Guess a number between 1 and 6: "))

if guess == secret_number:
    print("Correct! You guessed the number.")
else:
    print("Wrong guess.")
    print("The correct number was:", secret_number)
EXAMPLE 03 — AUTOMATION

Organize Files by Extension

A small automation script that moves files into folders based on their extension.

from pathlib import Path
import shutil

source_folder = Path("downloads")

for file_path in source_folder.iterdir():
    if file_path.is_file():
        extension = file_path.suffix.lower().replace(".", "")

        if extension == "":
            extension = "no_extension"

        target_folder = source_folder / extension
        target_folder.mkdir(exist_ok=True)

        shutil.move(str(file_path), str(target_folder / file_path.name))

print("Files organized successfully.")