Inspiration

Tagging images manually is tedious. Whether it's organizing a personal photo library, managing media content for a company, or curating datasets for machine learning, the process of manually labeling each image is slow, inconsistent, and simply not scalable.

This idea was born out of frustration while working on a project where hundreds of images needed to be sorted and tagged. That pain point led us to ask: Can we build a system that takes this burden off the user? That's when we discovered the powerful combination of AWS Lambda and Amazon Rekognition.

⚙️ What it does

The Serverless Image Cataloguing System:

  • Lets users upload images using a simple interface (drag-and-drop supported!)
  • Automatically analyzes the image using Amazon Rekognition
  • Detects objects, faces, scenes, or text within the image
  • Stores all relevant metadata and tags in a searchable format using Amazon DynamoDB
  • Allows users to query or search for images by keywords

All of this is done without managing any server infrastructure!

## How we built it

We used a combination of AWS services to keep the system lightweight, scalable, and fully serverless:

  • Frontend: A static web page hosted on S3 that supports drag-and-drop image uploads.
  • Amazon S3: Stores the uploaded images and triggers the backend processing.
  • AWS Lambda: Automatically invoked when a new image is uploaded. It reads the image, sends it to Rekognition, receives labels, and stores them in DynamoDB.
  • Amazon Rekognition: Provides AI-powered analysis of image content (objects, scenes, text, faces, etc.).
  • Amazon DynamoDB: Used to store the metadata and labels for each image, indexed for fast searching.
  • Optional: Amazon RDS used in some variants to store structured metadata with more control.

We wrote the backend code in Python using Boto3 (AWS SDK) and used IAM roles to securely connect our services.

Challenges we ran into

  • IAM configuration: Setting permissions for Lambda to access S3, Rekognition, and DynamoDB was trickier than expected.
  • Too many tags: Rekognition often returned a large set of labels; we had to write logic to prioritize the most relevant ones.
  • Cold starts in Lambda: We optimized memory and execution time to reduce delays.
  • Real-time feedback: Getting the frontend to show real-time processing updates was a bit of a learning curve.

Accomplishments that we're proud of

  • We built a fully serverless image processing pipeline from scratch
  • Successfully integrated multiple AWS services
  • Designed a clean UI that anyone can use to upload and search images
  • Reduced manual work and improved efficiency

What we learned

  • Deepened our understanding of AWS Lambda and S3 event triggers
  • Learned how to use Rekognition to extract meaningful metadata from images
  • Built a real-world use case using only serverless tools
  • Understood how scalable cloud-native architecture can be, even with minimal code

What's next for Serverless Image Cataloguing System

  • Adding user authentication using AWS Cognito so each user can have their own private gallery
  • Supporting bulk uploads and batch tagging
  • Adding a label editing feature to improve accuracy manually
  • Integrating image moderation features for public use cases
  • Adding analytics dashboard to show image stats, label frequency, and user activity

Built With

Share this project:

Updates