An open API service indexing awesome lists of open source software.

https://github.com/monnus/labellens

This LabelLens focuses on detecting product labels from uploaded images to assist with inventory management.
https://github.com/monnus/labellens

amplify aws cognito dynamodb rekognition s3-storage

Last synced: about 1 month ago
JSON representation

This LabelLens focuses on detecting product labels from uploaded images to assist with inventory management.

Awesome Lists containing this project

README

          

# ๐Ÿ“ธ LabelLens โ€“ Product Label Recognition App
![image diagram of labellenz](./public/AWS%20image%20label%20Diagram.png)

**LabelLens** is a **serverless image recognition** web application built using **AWS Rekognition**. It helps users identify product labels from uploaded images, making it perfect for **inventory management** or **cataloging** tasks. The app supports both **authenticated** and **unauthenticated** usersโ€”unauthenticated users can instantly upload and analyze images, while authenticated users can access **history tracking** for all their uploads.

---

## ๐Ÿš€ Features

- **๐Ÿ–ผ Image Upload:** Upload product images directly from the web interface.
- **๐Ÿท AWS Rekognition Integration:** Automatically detects product labels and objects.
- **๐Ÿ’พ DynamoDB Storage:** Stores image data, labels, and metadata for authenticated users.
- **๐Ÿ” Cognito Authentication:** Optional user authentication to enable history tracking.
- **โšก๏ธ Serverless Architecture:** Built using AWS services to ensure scalability and cost-efficiency.

---

## ๐Ÿ“ Architecture Overview

The project leverages AWS **serverless** services:

- **S3 Bucket** โ€“ For storing uploaded images.
- **API Gateway** โ€“ Acts as a bridge between the front end and backend (Lambda functions).
- **Lambda Functions** โ€“ Handles image processing with Rekognition and database storage.
- **AWS Rekognition** โ€“ Detects labels from uploaded images.
- **DynamoDB** โ€“ Stores image metadata and recognition results.
- **Cognito** โ€“ Manages user authentication (sign-in/sign-up).
- **Amplify** โ€“ Hosts and manages the front end.

---

## ๐Ÿ›  Tech Stack

- **Frontend:** React.js (using AWS Amplify & Amplify UI components)
- **Backend:** AWS Lambda (Node.js 20.x runtime)
- **Authentication:** AWS Cognito
- **Storage:** Amazon S3 & DynamoDB
- **Image Recognition:** AWS Rekognition
- **Hosting:** AWS Amplify Hosting
- **API Gateway:** REST API for Lambda integration

---

## โš™๏ธ Setup Guide

Follow these steps to replicate or deploy **LabelLens**:

---

### 1๏ธโƒฃ AWS S3 โ€“ **Image Storage**

1. **Create an S3 Bucket** named:
`image-rekognition-bucket*****-dev`
2. Enable **public access** for uploaded files.
3. Define two folders inside the bucket:
- `/uploads/unath` โ€“ For uploaded images
- `/uploads/auth` โ€“ (optional) For auth users

4. Add the following **S3 bucket policy** to allow Lambda to access images:

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLambdaS3Access",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": ""
}
]
}