This application is an intelligent photo album that allows users to search for images using natural language through both text and voice. Users can upload images and search for images by people, objects, actions, landmarks, and much more.
- Natural Language Search through Text & Voice
- Powered by AWS Lex, OpenSearch, Rekognition, Lambda, and S3
- Auto-indexing of images when uploaded
- Ability to attach custom labels to photos
- Voice accessibility in frontend
- OpenSearch Setup: Deployed an OpenSearch instance inside a VPC for secure and scalable searching.
- Image Upload & Indexing: Upload images to an S3 bucket and trigger Lambda functions for indexing in OpenSearch.
- Natural Language Search: Utilized Amazon Lex for search queries and fetch results from OpenSearch.
- API Layer: Implement API Gateway for two main functionalities - uploading photos and searching.
- Frontend: A user-friendly frontend for search and upload. Can also specify custom labels during upload.
- Voice Accessibility: Frontend implementation to allow voice-based searches using Amazon Transcribe.
- Continuous Deployment: Used AWS CodePipeline for seamless CI/CD of the application.
- Infrastructure as Code: Used AWS CloudFormation for replicable and managed infrastructure deployment.
- AWS Account
- Node.js and npm for frontend
- Basic knowledge of AWS services listed in the outline
-
AWS CloudFormation:
- Use the provided CloudFormation template (T1) to stand up the entire stack for the application.
- The template includes all necessary resources and permissions.
-
Continuous Deployment:
- Push your updates to the GitHub repository.
- AWS CodePipeline will automatically pick changes and deploy them.
-
Visit the S3 Hosted URL:
- Access the photo album application.
-
Search Photos:
- Use natural language (text or voice) to search for photos.
- View relevant results based on the search query.
-
Upload Photos:
- Add new photos to the album.
- Optionally, attach custom labels during upload.
- Newly uploaded photos will be available in search results.