markdown# Enterprise File Management Automation
Automated cloud-deployed file organization system built on Azure, Python, Docker, and Terraform.
Enterprise shared drives accumulate thousands of unsorted files across departments — compliance documents mixed with images, HR records scattered across folders, audit files impossible to locate. Manual IT effort to organize these files costs 2+ hours daily and introduces compliance risk.
An automated pipeline that scans a target directory, categorizes every file by extension, moves files to structured subfolders, and logs every action with a full timestamped audit trail — running as a containerized workload on Azure Container Instance.
HR / IT Drop Files │ ▼ GitHub Push → GitHub Actions │ ├── pytest tests ├── Docker build + push to ACR └── Terraform deploy to ACI │ ▼ organizer.py runs │ ├── PDFs/ ├── Images/ ├── Documents/ ├── Scripts/ ├── Videos/ └── Others/ │ ▼ logs/organizer.log
| Layer | Technology |
|---|---|
| Language | Python 3.12 |
| Testing | pytest (TDD) |
| Container | Docker |
| Registry | Azure Container Registry |
| Deployment | Azure Container Instance |
| Infrastructure | Terraform |
| State Management | Azure Blob Storage |
| CI/CD | GitHub Actions |
| Secrets | GitHub Secrets |
| Category | Extensions |
|---|---|
| PDFs | |
| Images | .jpg .jpeg .png .gif .webp |
| Documents | .docx .doc .txt .md .xlsx .csv |
| Videos | .mp4 .mov .avi .mkv |
| Scripts | .py .js .ts .sh .bash |
| Audio | .mp3 .wav .flac |
| Others | anything else |
Enterprise-File-Management-Automation/ ├── .github/ │ └── workflows/ │ └── deploy.yml ├── app/ │ ├── organizer.py │ ├── requirements.txt │ └── tests/ │ └── test_organizer.py ├── data/ │ └── sample_files/ ├── terraform/ │ ├── main.tf │ ├── variables.tf │ └── terraform.tfvars ├── Dockerfile └── .gitignore
1. Clone the repository
git clone https://github.com/eelesin/Enterprise-File-Management-Automation
cd Enterprise-File-Management-Automation2. Run tests locally
cd app
python -m pytest tests/ -v3. Add GitHub Secrets ACR_NAME ACR_USERNAME ACR_PASSWORD AZURE_CREDENTIALS AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_TENANT_ID AZURE_STORAGE_KEY SUBSCRIPTION_ID IMAGE_NAME
4. Deploy
git push origin main
# GitHub Actions handles everything automatically| Before | After |
|---|---|
| 2+ hours daily sorting | 0 minutes |
| Misplaced compliance docs | Correct folder always |
| No audit trail | Full timestamped log |
| Manual IT effort | Fully automated |
| Compliance risk | Audit ready always |
The CATEGORIES dictionary is the only change needed:
# HITRUST Compliance
CATEGORIES = {
"Audit_Docs": [".pdf", ".doc"],
"Contracts": [".pdf", ".docx"],
"HR_Records": [".xlsx", ".csv"],
}
# DevOps Environment
CATEGORIES = {
"Terraform": [".tf", ".tfvars"],
"Configs": [".yaml", ".json"],
"Logs": [".log", ".txt"],
}One codebase. Infinite business applications.
Emmanuel Elesin
Platform Engineer | Cloud Infrastructure | DevOps
LinkedIn |
GitHub