Weather App

Real-time weather for any city in the world, powered by a fully serverless AWS architecture.

How to Use

  1. Search for a city

    Type any city name into the search bar and press Get Weather or hit Enter. The app accepts city names in English — for example, "New York", "London", or "Tokyo".

  2. Read current conditions

    The weather card shows the current temperature, sky conditions, and a stats panel with Feels Like, Humidity, Wind speed, Pressure, and Visibility — all updated live from OpenWeatherMap.

  3. Switch temperature units

    Use the °C / °F toggle in the forecast section to switch between Celsius and Fahrenheit. All values update instantly — no reload needed.

  4. Check the forecast

    The forecast section shows the next several days with the daily high (in red) and low (in blue) for each day, along with a weather icon and a short description.

About This App

Weather App is a portfolio project built to demonstrate a production-grade, fully serverless AWS architecture. It fetches live weather data from the OpenWeatherMap API through a secure backend — your browser never sees the API key.

The frontend is a single-page application built with vanilla HTML, CSS, and JavaScript — no frameworks. It is hosted on Amazon S3, served globally through Amazon CloudFront, and protected by HTTPS with a custom domain on Route 53.

Each request flows through an Amazon API Gateway HTTP API to an AWS Lambda function (Python), which checks an Amazon DynamoDB cache before calling the OpenWeatherMap API — cutting external API calls and response time. The API key is stored in AWS Secrets Manager and never reaches the browser. The infrastructure is defined entirely in AWS CloudFormation and deployed through a two-pipeline AWS CodePipeline / CodeBuild / CodeCommit setup, with AWS CloudTrail and Amazon GuardDuty monitoring account activity around the clock.

Due to known reliability incidents across major cloud providers, Weather App was designed to stay highly available even if a single cloud region goes down:

Weather App runs an active-passive multi-region architecture across us-east-1 (primary) and us-west-2 (secondary). Amazon Route 53 checks the primary endpoint's health every 30 seconds and automatically fails over to the secondary region within about 60-90 seconds if an outage is detected — no manual action required. Amazon DynamoDB Global Tables and native AWS Secrets Manager cross-region replication keep the weather cache and API key in sync between both regions in near real time, so the secondary region is always warm and ready to take over.

Built With

Amazon CloudFront
Amazon S3
AWS Lambda (Python)
API Gateway HTTP API
Amazon DynamoDB (Global Tables)
AWS Secrets Manager
AWS CodePipeline
AWS CodeBuild
AWS CodeCommit
AWS CodeDeploy
AWS CloudFormation
Amazon Route 53
AWS Certificate Manager
Amazon CloudWatch
AWS X-Ray
AWS CloudTrail
Amazon GuardDuty
Amazon SNS
Amazon EventBridge
AWS KMS
AWS IAM

Privacy & Security

No account or login required.
No personal data is collected or stored.
Only the city name you search is sent to the backend — nothing else.
Weather results are cached for 15 minutes to reduce API calls and improve response time.
All traffic is encrypted with HTTPS and TLS 1.2 or higher.