https://github.com/erankitcs/AWS_PhotoSimilarity
This project is created to identify and provide similar faces recommendation based on AWS Serverless and Neptune Graph DB.
https://github.com/erankitcs/AWS_PhotoSimilarity
api-gateway aws aws-lambda aws-serverless cloudformation-template graph-database html iam javascript neptune-cluster neptune-db nodejs rekognition s3-bucket serverless vpc vpc-endpoints
Last synced: 9 months ago
JSON representation
This project is created to identify and provide similar faces recommendation based on AWS Serverless and Neptune Graph DB.
- Host: GitHub
- URL: https://github.com/erankitcs/AWS_PhotoSimilarity
- Owner: erankitcs
- Created: 2020-06-14T06:14:50.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T19:19:46.000Z (about 3 years ago)
- Last Synced: 2025-03-13T21:44:07.868Z (10 months ago)
- Topics: api-gateway, aws, aws-lambda, aws-serverless, cloudformation-template, graph-database, html, iam, javascript, neptune-cluster, neptune-db, nodejs, rekognition, s3-bucket, serverless, vpc, vpc-endpoints
- Language: JavaScript
- Homepage:
- Size: 3 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AWS_PhotoSimilarity
This project is created to identify and provide similar faces recommendation based on AWS Serverless and Neptune Graph DB.
## Features:
### Neptune Stack
- VPC creation with two Subnet for high availability.
- Network Security Group and Route Table to open HTTPs call to Neptune Cluster.
- Internet Gateway and an Elastic IP.
- Neptune Database Cluster and Neptune DB Instance.
- VPC Endpoint for Neptune to access S3 data files.
- Output Cluster Details and IAM roles to API Stack.
### Rekognition Stack
- S3 bucket name creation using shortUuid and dotEnv modules.
- Lambda Function with API Gateway to create an rekognition collection for image processing.
- Lambda Function with API Gateway to delete an rekognition collection.
- Lambda Function to process images (indexFaces and searchFaces utility of rekognition) and save Node and Edge details into CSV format for Neptune DB.
- APl Gateway to trigger Lambda function when a new image gets uploaded.
- Lambda function with API Gateway to provide list of photos from S3 bucket.
- Output S3 bucket name for API Stack.
### API Stack
- Query Lambda Function to run parameterised Graph Queries using Gremlin against Neptune Instance.
- API Gateway for Query Lambda Function to pass through Query Parameter String.
- Loader Lambda Function to load CSV files created by Rekognition Stack Lambda Function into Neptune DB.
### UI
- Create Front-End Application based on Node and React.
- Call List Lambda function of rekognition Stack to load S3 Image files.
- Call Query Lambda Function of API Stack to find similar photos list based on given threshold and hops.
## Setup:
- Run npm install in each stack to load Node modules.
- Serverless deploy in Neptune Stack first.
- Serverless deploy in Rekognition Stack.
- Serverless deploy in API Stack.
- Manual Step: Attach created IAM role to Neptune DB from Front End.
- Use Serverless and run Create collection Lambda function.
- Upload Image to S3 bucket and make them public.
- Run npm install inside UI folder.
- Update App.js with Gateway base URLs and S3 bucket name.
- Run npm start
- Application is up and running.
## Architecture Diagram:

## Application:
