Skip to content
$ ash_
All work
2023/Cloud Developer/archived

Cloudsnap

A fully serverless image storage platform on AWS with real-time object detection and auto-tagging via YOLO.

Stack

AWS LambdaS3API GatewayCognitoDynamoDBPythonYOLO

Overview

Cloudsnap is a serverless image upload and retrieval platform built entirely on AWS. The goal was to build something that could scale without managing any servers, and to layer in computer vision so uploaded images get automatically tagged based on what's in them.

This was a university project built in an Agile team, and it was the first time I worked with the full AWS service stack in a coordinated way rather than picking up individual services in isolation.

How it works

Images are uploaded through an API Gateway endpoint, processed by an AWS Lambda function that runs YOLO for object detection, and stored in S3. The detected objects become tags stored in DynamoDB alongside the image metadata, so retrieval can be filtered by what the image actually contains.

Authentication and access control run through AWS Cognito. Each user's images are isolated so there's no cross-account data leakage, which was an important detail to get right when multiple people are uploading to the same bucket.

What I took from it

Working through the end-to-end AWS integration gave me a clear picture of how these services fit together in a real architecture, not just in a diagram. API Gateway feeding into Lambda, Lambda reading and writing to S3 and DynamoDB, with Cognito managing who can do what across all of it. It's a pattern I've carried into every cloud project since.

The YOLO integration was a stretch goal that turned out to be one of the more interesting parts. Running inference inside a Lambda function meant being careful about cold start times and package size, which pushed me to learn how Lambda layers work properly.