01 / CLOUD & DEVOPS / CASE STUDY
AWS Portfolio & Serverless Contact
A public portfolio with private-origin delivery and an AWS contact integration.
Deployed portfolio Inspect source on GitHub ↗Architecture
Browser / HTTPS → CloudFront / S3 → API Gateway → Lambda / SES
Problem & context
A static website needs HTTPS delivery, controlled origin access and a contact channel without a dedicated application server.
Objectives
Publish the portfolio through a custom-domain AWS delivery path and connect the browser contact form to an AWS endpoint.
My role & project work
Built the static application and contact integration; documented private S3/CloudFront hosting and the Lambda/SES backend during Cloud and DevOps practical work.
Technical implementation
The browser sends bounded JSON contact requests to API Gateway. The documented hosting design uses a private S3 origin, CloudFront OAC, Route 53 and ACM. The GitHub workflow builds and validates the site, packages public assets and has a main-branch S3 deployment stage.
Engineering decisions
Keep source templates and tests outside the public upload package. Serve content through the existing HTTPS distribution and use an API endpoint for contact requests rather than adding a web server.
Challenges & solutions
Resolved origin-access and CORS configuration issues in the documented project. The latest automated deployment was blocked by invalid stored AWS credentials; the current version was subsequently uploaded manually to S3 by the owner.
Testing & verification
Reviewed application source, deployment workflow and packaging checks. Verified the production-origin CORS preflight. The owner confirmed the manual S3 upload worked. Lambda source, IAM policies, email delivery and current CloudFront configuration were not independently inspected.
Current status
Public portfolio. Manual S3 upload confirmed by the owner; GitHub deployment credentials still require repair. No availability or email-delivery guarantee is claimed.
Lessons & next steps
An upload must include CSS, JavaScript, case studies and assets together. Validation and an explicit deployment package help prevent incomplete releases.