FEATURED CLOUD PROJECT

Cloud Resume Challenge

A production cloud portfolio built on AWS with infrastructure as code, serverless architecture, automated testing, and CI/CD deployment.

PROJECT OVERVIEW

What I Built

I built and deployed a production cloud portfolio on AWS that combines static web hosting, serverless backend services, infrastructure as code, automated testing, and continuous deployment.

The project demonstrates the full lifecycle of a cloud application, from provisioning AWS infrastructure with Terraform to deploying updates automatically through GitHub Actions.

ARCHITECTURE & TECHNOLOGIES

How It Works

Frontend

HTML, CSS, JavaScript

Cloud Infrastructure

Amazon S3, CloudFront, Route 53

Serverless Backend

AWS Lambda, API Gateway, DynamoDB

Infrastructure as Code

Terraform

CI/CD

GitHub Actions

Automated Testing

Python, pytest, moto

CLOUD ARCHITECTURE

Architecture

The portfolio uses a serverless AWS architecture that separates static website delivery from the visitor counter backend.

01

Visitor

Requests the portfolio website.

02

CloudFront + S3

Delivers the static website globally.

03

API Gateway

Receives the visitor counter request.

04

Lambda

Processes and updates the visitor count.

05

DynamoDB

Stores the visitor count.

INFRASTRUCTURE AS CODE

Built with Terraform

I used Terraform to define and manage the AWS infrastructure for this project as code, creating a repeatable and version-controlled deployment process.

01

Infrastructure Defined as Code

AWS resources are defined in Terraform configuration files rather than created entirely through the AWS Console.

02

Repeatable Deployment

Terraform provides a consistent process for provisioning and updating the project's cloud infrastructure.

03

Version Controlled

Infrastructure changes can be tracked alongside the application code through Git and GitHub.

CI/CD & AUTOMATED TESTING

Tested Before Deployment

I built a GitHub Actions CI/CD pipeline that automatically tests the serverless backend before deploying updates to AWS.

01

Push to GitHub

Code changes pushed to the main branch automatically trigger the workflow.

02

Run Unit Tests

Python tests run with pytest and moto to validate the Lambda visitor counter logic.

03

Deploy to AWS

The deployment job runs only after the automated test job completes successfully.

CHALLENGES & SOLUTIONS

What I Learned Along the Way

Building the project end to end required more than connecting AWS services. I also had to troubleshoot how the application, infrastructure, testing, and deployment processes worked together.

CHALLENGE 01

Protecting the Deployment Pipeline

I needed a way to prevent application updates from deploying when backend changes introduced a problem.

SOLUTION

I added automated Python unit tests with pytest and moto to the GitHub Actions workflow and configured the deployment job to depend on the test job succeeding.

CHALLENGE 02

Managing Cloud Infrastructure Consistently

Managing AWS resources manually makes infrastructure harder to reproduce, track, and maintain as a project evolves.

SOLUTION

I used Terraform to define the project's AWS infrastructure as code so infrastructure configuration could be repeatable and version controlled.

KEY TAKEAWAYS

What This Project Demonstrates

This project gave me hands-on experience building, automating, testing, and deploying a complete cloud application using AWS and modern DevOps practices.

01

Cloud Architecture

Designed a serverless AWS architecture connecting frontend hosting, content delivery, APIs, compute, and database services.

02

Infrastructure as Code

Used Terraform to define cloud infrastructure in a repeatable, version-controlled way.

03

Automation & Testing

Integrated automated Python testing into a GitHub Actions CI/CD pipeline to validate changes before deployment.

04

End-to-End Deployment

Connected application code, AWS infrastructure, testing, and deployment into one working production workflow.

EXPLORE THE PROJECT

Want to See the Code?

Explore the source code, infrastructure configuration, automated tests, and deployment workflow behind this project.