ClickClick is an online photo-sharing platform designed to streamline the process of uploading and sharing images. Users can effortlessly upload photos, subscribe to tags, and receive notifications about new posts related to their interests. Built using various AWS services, ClickClick showcases a secure, scalable, and cost-effective cloud architecture.
ClickClick offers a range of features designed to provide a seamless user experience:
-
Seamless Login and Upload: ClickClick offers a seamless login process, allowing users to quickly access their accounts and upload images with ease. This ensures users can share their creations without unnecessary hassle or delays.
-
Tag Subscription: ClickClick enables users to stay updated with the latest trends and discover new content effortlessly by subscribing to their favorite tags. This feature allows users to receive notifications whenever new posts are made with tags they've subscribed to, ensuring they never miss out on relevant content.
-
Automatic Tag Generation: ClickClick utilizes Amazon Rekognition, a powerful image recognition service, to automatically generate tags for uploaded images. This makes it easier for users to categorize and search for images based on their interests, enhancing the overall discoverability of their content.
-
Email Notifications: ClickClick employs Amazon Simple Notification Service (SNS) to send email notifications to users who have subscribed to specific tags. Whenever a new post is created with a tag they're subscribed to, users receive an email notification, keeping them informed about new content relevant to their interest.
- Amazon ECS with Fargate: Manages containerized frontend applications with auto-scaling for cost efficiency.
- AWS Lambda: Powers serverless backend functions, reducing infrastructure overhead.
- Amazon S3: Securely stores user-uploaded images with scalable, durable storage.
- Amazon DynamoDB: Manages semi-structured user and post data with automatic scaling for high availability.
- Amazon VPC: Provides a secure network with public and private subnets.
- Application Load Balancer: Ensures high availability by balancing traffic across containers.
- Amazon API Gateway: Manages API endpoints and enhances security with throttling and authorizers.
- AWS Cognito: Secures user authentication and authorization with JWT tokens and multi-factor authentication.
- Amazon Rekognition: Automatically generates tags for uploaded images.
- AWS CloudFormation: Automates infrastructure deployment and management.
- Amazon SNS: Sends email notifications to users based on tag subscriptions.
The ClickClick platform adheres to AWS's Well-Architected Framework, fulfilling its six core pillars:
- Operational Excellence: Automated deployments via CloudFormation.
- Security: Strong access control and data protection.
- Reliability: High availability with ALB and DynamoDB.
- Performance Efficiency: Serverless architecture with efficient resource allocation.
- Cost Optimization: Pay-as-you-go services and auto-scaling.
- Sustainability: Efficient resource usage with serverless architectures.
To run ClickClick:
- Clone the repository.
- Create a
S3
bucket and upload all the backend zip files. - Modify the
S3Bucket
andS3Key
for all the Lambda functions in theiac/ClickClickCloudFormation.yaml
- Run the
iac/ClickClickCloudFormation.yaml
script in the AWS CloudFormation Service. - Get the
LoadBalancerDomainName
from the output of the script.
You're all set to explore ClickClick!
Enjoy sharing and discovering photos with ClickClick!