YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

StreamWave Cloud Media Management System

A serverless cloud solution for StreamWave Entertainment using Microsoft Azure.

Overview

This is a practical cloud computing assignment demonstrating how StreamWave Entertainment can migrate its media infrastructure to Microsoft Azure using serverless technologies.

The system allows authorized administrators to:

  • Log in securely
  • View a professional dashboard with media statistics
  • Upload media content (movies, music, trailers, etc.)
  • Store files in Azure Blob Storage
  • Store metadata in Azure Cosmos DB
  • Search and filter media
  • Delete content
  • Monitor operations through Azure Application Insights

Technology Stack

Frontend:

  • HTML5, CSS3, JavaScript
  • Azure Static Web Apps

Backend:

  • Azure Functions (Python)
  • Azure Blob Storage
  • Azure Cosmos DB

Security:

  • Microsoft Entra ID (production) / Simplified auth (prototype)
  • Azure Key Vault
  • Managed Identities

Monitoring:

  • Azure Application Insights
  • Azure Monitor

Infrastructure:

  • Azure Bicep
  • Azure Resource Manager

Quick Start

Prerequisites

  • Azure subscription
  • Azure CLI
  • Python 3.9+
  • Azure Functions Core Tools
  • Git

Local Development

# 1. Clone/extract the project
cd streamwave-azure

# 2. Set up Python virtual environment
python -m venv venv
.\venv\Scripts\activate  # Windows
# or: source venv/bin/activate  # Linux/Mac

# 3. Install dependencies
pip install -r api/requirements.txt

# 4. Configure local settings
cp api/local.settings.json.example api/local.settings.json

# 5. Run Azure Functions locally
cd api
func start

# 6. In a new terminal, run frontend
cd frontend
python -m http.server 8000

Access the application at http://localhost:8000

Azure Deployment

See DEPLOYMENT.md for complete deployment instructions.

Project Structure

streamwave-azure/
β”œβ”€β”€ frontend/                 # Web interface
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ login.html
β”‚   β”œβ”€β”€ dashboard.html
β”‚   β”œβ”€β”€ media.html
β”‚   β”œβ”€β”€ add-media.html
β”‚   β”œβ”€β”€ view-media.html
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── style.css
β”‚   └── js/
β”‚       β”œβ”€β”€ auth.js
β”‚       β”œβ”€β”€ dashboard.js
β”‚       β”œβ”€β”€ media.js
β”‚       └── api.js
β”œβ”€β”€ api/                      # Azure Functions backend
β”‚   β”œβ”€β”€ function_app.py
β”‚   β”œβ”€β”€ requirements.txt
β”‚   β”œβ”€β”€ host.json
β”‚   β”œβ”€β”€ local.settings.json.example
β”‚   └── functions/
β”‚       β”œβ”€β”€ get_upload_url/
β”‚       β”œβ”€β”€ register_media/
β”‚       β”œβ”€β”€ list_media/
β”‚       β”œβ”€β”€ get_media/
β”‚       β”œβ”€β”€ update_media/
β”‚       β”œβ”€β”€ delete_media/
β”‚       └── search_media/
β”œβ”€β”€ infrastructure/           # Infrastructure as Code
β”‚   β”œβ”€β”€ main.bicep
β”‚   β”œβ”€β”€ parameters.json
β”‚   └── deploy.sh
β”œβ”€β”€ docs/                     # Documentation
β”‚   β”œβ”€β”€ ARCHITECTURE.md
β”‚   β”œβ”€β”€ DEPLOYMENT.md
β”‚   β”œβ”€β”€ SECURITY.md
β”‚   β”œβ”€β”€ API.md
β”‚   β”œβ”€β”€ TESTING.md
β”‚   └── EVIDENCE_CHECKLIST.md
β”œβ”€β”€ .gitignore
└── LICENSE

Key Features

1. Secure Authentication

  • Login/logout functionality
  • Role-based access (Administrator vs Viewer)
  • Session management

2. Dashboard

  • Total media statistics
  • Recent uploads
  • Storage information
  • Quick navigation

3. Media Upload

  • Direct-to-Blob storage (scalable architecture)
  • Metadata validation
  • File type/size restrictions
  • Thumbnail support

4. Media Catalog

  • Browse all media
  • Advanced search
  • Filter by genre, content type, release year
  • View media details

5. Administration

  • Edit media metadata
  • Delete media and associated files
  • Monitor upload operations

6. Cloud Integration

  • Azure Blob Storage: Scalable media file storage
  • Azure Cosmos DB: NoSQL metadata database
  • Azure Functions: Serverless API backend
  • Application Insights: Performance monitoring and logging

Architecture Benefits

Scalability

  • Azure automatically scales based on demand
  • No need to manage server capacity
  • Handles traffic spikes during events/releases

Cost Efficiency

  • Pay-per-execution model (consumption-based pricing)
  • No expensive always-running servers
  • Optimized for variable workloads

Performance

  • Direct-to-Blob upload bypasses Functions bottleneck
  • Low-latency Cosmos DB queries
  • CDN-ready architecture

Security

  • Managed identities eliminate hardcoded credentials
  • SAS tokens provide time-limited access
  • RBAC controls permissions at every layer
  • Encrypted storage and data in transit

Reliability

  • Automatic backups and replication
  • Built-in monitoring and alerting
  • Graceful error handling

API Documentation

See API.md for complete API reference including:

  • Authentication endpoints
  • Media CRUD operations
  • Upload URL generation
  • Search functionality

Testing

Complete test plan available in TESTING.md

Evidence & Screenshots

Screenshot checklist and submission guidelines in EVIDENCE_CHECKLIST.md

Deployment Steps

  1. Create Azure Resources: Run Bicep template
  2. Configure Authentication: Set up Azure Entra ID or prototype auth
  3. Deploy Functions: Upload function code to Azure
  4. Deploy Frontend: Deploy to Static Web Apps
  5. Configure CORS: Enable communication between frontend and backend
  6. Test APIs: Verify all endpoints work
  7. Monitor: Check Application Insights

See full deployment guide in DEPLOYMENT.md

Production Considerations

This prototype demonstrates serverless architecture. For production StreamWave deployment:

  • Streaming: Add Azure Media Services or CDN for video delivery
  • Scaling: Use Azure Front Door + WAF for global distribution
  • Authentication: Implement full Microsoft Entra ID integration
  • DRM: Add content protection
  • Transcoding: Implement media transformation pipeline
  • Analytics: Add usage analytics and recommendations
  • Mobile: Extend to mobile/TV applications

See section 5.18 in the academic report for detailed integration plans.

Cost Monitoring

To view Azure spending:

az costmanagement query create --scope "/subscriptions/{subscriptionId}"

Cleanup

To delete all resources after demonstration:

az group delete --name streamwave-rg --yes

Documentation

License

This project is provided for educational purposes as part of a university assignment.


Student Assignment: Cloud Computing Solutions for StreamWave Entertainment
University: [Your University]
Date: 2026
Submitted by: [Your Name]

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support