A full-stack cloud resume built on Microsoft Azure, inspired by The Cloud Resume Challenge by Forrest Brazeal.
This project demonstrates hands-on cloud skills by deploying a personal resume as a static website with a serverless visitor counter — all hosted, secured, and automated on Azure.
┌─────────────────────────────────────────────────────────────────────┐
│ GitHub Actions (CI/CD) │
│ Automates frontend deployment & backend tests │
└──────────────┬──────────────────────────────────┬───────────────────┘
│ │
▼ ▼
┌──────────────────────────┐ ┌────────────────────────────────┐
│ Frontend │ │ Backend │
│ │ │ │
│ HTML / CSS / JavaScript │ │ Azure Functions (Python) │
│ ▼ │ │ ▼ │
│ Azure Blob Storage │ │ Azure CosmosDB │
│ (Static Website) │ │ (Visitor Counter - Table API) │
│ ▼ │ │ │
│ Cloudflare CDN │ └────────────────────────────────┘
│ (HTTPS + Custom Domain) │
└──────────────────────────┘
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | HTML / CSS / JavaScript | Resume layout, styling, and visitor counter display |
| Hosting | Azure Blob Storage (Static Site) | Serves the static website files |
| CDN / DNS | Cloudflare (Edge Proxy + DNS) | Global Anycast CDN, TLS 1.2+ HTTPS, and custom domain routing |
| API | Azure Functions (Python) | Serverless HTTP-triggered API for the visitor counter |
| Database | Azure CosmosDB (Table API) | Stores and retrieves the visitor count |
| CI/CD | GitHub Actions | Automated testing, build, and deployment pipelines |
| IaC | ARM Templates / Bicep (optional) | Infrastructure as Code for Azure resources |
azure-cloud-resume/
├── frontend/ # HTML, CSS, JS for the resume website
├── backend/ # Azure Functions (Python) for the visitor counter API
├── reference/ # Architecture diagrams, notes, and reference material
├── resume/ # Source resume file (PDF) used for website content
├── LICENSE # MIT License
└── README.md # Project documentation (you are here)
Track progress across all 16 steps of the Cloud Resume Challenge:
- 1. Certification — Earn the AZ-900: Microsoft Azure Fundamentals certification.
- 2. HTML — Build the resume using HTML.
- 3. CSS — Style the resume with CSS.
- 4. Static Website — Deploy the resume as an Azure Storage static website.
- 5. HTTPS — Enable HTTPS via Cloudflare edge SSL/TLS.
- 6. DNS — Configure custom domain (jdmercado.site) pointing to the site.
- 7. JavaScript — Add a visitor counter to the site using JavaScript.
- 8. Database — Create an Azure CosmosDB table to store the visitor count.
- 9. API — Build an Azure Function (HTTP-triggered, Python) to interact with CosmosDB.
- 10. Python — Write the Azure Function logic in Python.
- 11. Tests — Write tests for the Python Azure Function code.
- 12. Infrastructure as Code — Define Azure resources using ARM/Bicep templates.
- 13. Source Control — Store backend code in a GitHub repository.
- 14. CI/CD (Backend) — Set up GitHub Actions to test and deploy the backend automatically.
- 15. CI/CD (Frontend) — Set up GitHub Actions to deploy frontend changes to Azure Storage automatically.
- 16. Blog Post — Write a blog post documenting the journey and lessons learned.
✅ AZ-900: Microsoft Azure Fundamentals — Achieved
| Resource | URL |
|---|---|
| Live Resume | https://jdmercado.site (or https://www.jdmercado.site) |
| Azure Origin | https://jdmcloudresumest.z7.web.core.windows.net/ |
| API Endpoint | Coming soon |
- Azure Account (Free tier available)
- Azure CLI
- Azure Functions Core Tools
- Python 3.9+
- Node.js (for Azure Functions tooling)
- Git
- Visual Studio Code (recommended)
# Clone the repository
git clone https://github.com/ctrl-jo/Cloud-Resume-Challenge-Azure.git
cd azure-cloud-resume
# Backend — Install Python dependencies
cd backend
pip install -r requirements.txt
# Frontend — Open index.html in your browser
cd ../frontend
# Open index.html directly or use a local serverThis project is open source and available under the MIT License.
- Forrest Brazeal — Creator of the Cloud Resume Challenge
- The Cloud Resume Challenge — The original challenge that inspired this project
- Microsoft Azure Documentation — Official Azure docs