Skip to content

nmihaly/MyAIWebApp

Repository files navigation

AI Image Description Generator

A serverless web application that generates AI-powered descriptions for uploaded images using AWS and Claude 3 Haiku (Amazon Bedrock). 🚀 Features

✅ Image Upload Interface – Users can upload images via a web interface hosted on AWS Fargate.

✅ AI-Powered Descriptions – Amazon Bedrock (Claude 3 Haiku) generates captions for uploaded images.

✅ Dynamic Gallery – View all uploaded images with their AI-generated descriptions.

✅ Automated CI/CD – GitHub Actions automates Docker builds and ECS Fargate deployments.

✅ Serverless Backend – Uses AWS Lambda, S3, and DynamoDB for scalability.

🛠️ Architecture Overview

The app follows a serverless microservices approach with:

Frontend: Hosted on ECS Fargate (Docker) behind an Application Load Balancer (ALB).

Backend:

    Lambda Functions (Upload, Process, Fetch, AI Description).

    S3 Buckets (Upload storage & processed assets).

    DynamoDB (Stores image metadata & AI descriptions).

AI Integration: Amazon Bedrock (Claude 3 Haiku) for image analysis.

CI/CD: GitHub Actions for automated deployments.

⚙️ Setup & Deployment Prerequisites

AWS Account with Admin permissions (or use AWS CloudShell).

Domain name in Route 53 (for ALB).

Docker installed (or use CloudShell).

GitHub Account (for CI/CD).

Amazon Bedrock Access (Request Claude 3 Haiku model access).

Deployment Steps

Set Up AWS Resources

    Create S3 buckets (upload & assets).

    Set up DynamoDB (ImageMetadata table).

    Configure Lambda functions (upload, process, fetch, AI).

    Enable Bedrock model access (Claude 3 Haiku).

Deploy Frontend (ECS Fargate)

    Build Docker image & push to Amazon ECR.

    Configure VPC, ALB, and ECS service.

Set Up CI/CD (GitHub Actions)

    Configure OIDC authentication (AWS ↔ GitHub).

    Automate Docker builds & ECS deployments.

🔍 How It Works

User Uploads an Image → Stored in S3, metadata saved in DynamoDB.

Lambda Processes Image → Moves it to the assets bucket.

AI Description Triggered → Lambda calls Bedrock, updates DynamoDB.

Frontend Displays Images → Fetches metadata from DynamoDB.

📜 License

MIT License – Free for personal and commercial use. 💡 Future Improvements

Add user authentication (Amazon Cognito).

Support multiple AI models (e.g., Claude 3 Sonnet).

Implement auto-tagging with AWS Rekognition.

🌟 Enjoy building! Contributions welcome. For a detailed architecture diagram, check the project docs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published