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.
- Host: GitHub
- URL: https://github.com/monnus/labellens
- Owner: Monnus
- Created: 2025-02-20T12:25:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-24T10:26:25.000Z (about 1 year ago)
- Last Synced: 2025-04-24T11:32:02.649Z (about 1 year ago)
- Topics: amplify, aws, cognito, dynamodb, rekognition, s3-storage
- Language: TypeScript
- Homepage: https://main.d3597sr9908kji.amplifyapp.com/
- Size: 563 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ธ LabelLens โ Product Label Recognition App

**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": ""
}
]
}