A CDN simulation platform for the Microsoft Tech Community
A simple CDN prototype using Flask and Azure Blob Storage to deliver content faster across India.
User Upload → Image Compression → Azure Blob Storage → Fast Content Delivery
↓ ↓ ↓ ↓
Flask API PIL/Pillow Indian Region Sub-200ms Response
Endpoints Algorithms Optimization Time
Detailed Flow:
- User uploads content through Flask API endpoints
- System applies compression algorithms to reduce file size
- Compressed files are stored in Azure Blob Storage (optimized for India)
- Content is delivered to users with minimal latency
- Performance metrics are tracked and monitored
content-management-system/
├── app/
│ ├── __init__.py # Flask app initialization
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── main.py # Home and health check endpoints
│ │ └── upload.py # File upload endpoints
│ ├── services/
│ │ ├── __init__.py
│ │ ├── azure_storage.py # Azure Blob Storage integration
│ │ └── image_compression.py # Compression algorithms
│ ├── templates/ # HTML templates
│ └── static/ # CSS, JS, images
├── config/
│ ├── __init__.py
│ ├── development.py
│ └── production.py
├── tests/
├── requirements.txt
├── app.py # Main Flask application
└── README.md
This is a basic CDN system that stores files in Azure cloud storage and serves them through a Flask web server. Instead of loading everything from one server, files are distributed across Azure's network to reduce loading times.
Most websites serve images and files directly from their main server. This gets slow when users are far away or when lots of people visit at once. CDNs solve this by putting copies of your content closer to users.
Our project shows how this works on a smaller scale like a mini version of what big companies like Netflix or YouTube use.
Backend Development (Saisha)
- Flask API setup with modular structure
- Core endpoints:
/,/health_check - Template and static file configuration
- Repository setup and initial codebase
Cloud Infrastructure (Aniket)
- Azure Blob Storage research and setup
- Cost-efficient configuration for Indian region
- Latency optimization strategies
- Documentation with implementation screenshots
Image Processing (Yuvraj)
- Compression algorithm research
- Testing compression ratios without quality loss
- Performance benchmarking on different image types
- Optimal compression percentage analysis
UI/UX Design (Abhishek)
- Figma design system creation
- User interface mockups
- User experience flow design
Web Development (Shlok)
- Frontend implementation (upcoming)
- Integration with Flask backend
- Backend: Flask (Python)
- Cloud Storage: Azure Blob Storage
- Image Processing: PIL/Pillow
- Frontend: HTML/CSS/JavaScript
- Design: Figma
- Deployment: Azure App Service
- Load files in under 200ms within India
- Handle 1000+ concurrent requests
- Reduce hosting costs by 40%
- Achieve 99.9% uptime
- Cut bandwidth usage by 50% through compression
- Fork this repository
- Clone your fork:
git clone https://github.com/msft-tech-community/content-management-system - Create a new branch:
git checkout -b feature-name - Make your changes and test them
- Commit:
git commit -m "Add your feature" - Push to your fork:
git push origin feature-name - Create a Pull Request
- Prerequisites and installation guide
- Local development environment setup
- Testing guidelines
Built with ❤️ for the Microsoft Tech Community