[SOLVED] FIT5225 P0 Assignment 3

100.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon FIT5225-Assignment-3-PixTag-nqwlob.zip (99.8 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (3 votes)

FIT5225 2024 SM1
PixTag: An AWS-powered Serverless Image Storage System with Advanced Tagging Capabilities
1 Synopsis
This assignment aims to build a AWS-based online system that allows users to store and retrieve images based on auto-generated and manual tags. The focus of this project is to design a serverless application that enables clients to upload their images to public cloud storage. Upon image upload, the application automatically tags the image with the objects detected in it, such as person, car, etc. Later on, users can also modify and add new tags to the images. They can also query images based on the objects present in them. To achieve this, the application provides users with a list of image URLs (or tumbnails) that include the specific queried objects.
Assignment Project Exam Help
2 Group Assignment
students to experience software development as a team, this assignment is designed as a group project.
3 Assignment Description
Teams should develop an AWS-based solution that leverages services such as S3, Lambda, API Gateway, and database services (e.g., DynamoDB) to build a system for automated object detection tagging and query handling. The teams should produce a solution that enables end-users to upload their images into an S3 bucket. Upon uploading an image to a designated S3 bucket, a lambda function is automatically triggered, which uses the Yolo object detection feature to identify the objects in the image and stores the list of detected objects along with the image’s S3 URL in a database. Furthermore, the end-user should be able to submit queries to an API endpoint using API Gateway to search for tagged images (more details to come). Table 1 provides a glossary of terms used in the assignment description.
Table 1: Glossary of terms
Term Meaning
team A group of 4 students who are doing the project
queries You will implement multiple APIs to query different information including a request message by the end user to find list of images with specific tags, find images with similar tags of an image, update tags of an image, and delete record of an image.
tags list of objects detected in an image, e.g., person, car, and cat.
federated authentication Federated authentication is a Single sign-on (SSO) mechanism that allows you to use authentication credentials of external identity providers such as Google or Facebook to access your AWS services such as Lambda, S3 or DynamoDB.
Peer assessment Each team member is expected to complete a confidential report and evaluation on his/her role in the project and the experiences in working with other team members on the demonstration day.
Assignment Project Exam Help
3.1 Authentication and Authorisation
Your application should support the following workflow and features:
• Detect whether a user is authenticated or not. If the user has not signed in, access to all pages/endpoints except the sign-up service needs to be blocked, and the user should be redirected to the “sign-up.html” page to register a new account. For each new account, you need to record the user’s email address, first name, last name, and password. Cognito will take care of sending an email to new users, asking them to verify their email address and change their temporary password.
• Your application should include a login page that allows users to sign in. After successful authentication, users should be able to upload images, submit queries, view query results, and sign out of the application. All of these services must be protected against unauthorized access. You can implement login and sign-up web pages using either the Hosted UI feature of Cognito or your own version that calls Cognito APIs.
• Uploading files to an S3 bucket, invoking Lambda functions to execute the business logic of your application, and accessing the database for data storage and retrieval all require fine-grained access control permissions that you need to set up via IAM roles and appropriate policies. It is important to note that IAM roles in AWS Academy have several limitations. Therefore, you should carefully consider how to perform authentication and authorization in your system while taking these limitations into account.
3.2 Image Upload
Your solution should provide a mechanism to upload an image to an S3 bucket. Uploading an image to an S3 bucket can be done either through an API Gateway endpoint (using POST REST APIs) or it can be done directly using AWS SDKs (for instance, boto3 if you are using Python). Whenever an image is uploaded to the S3 bucket, your system must trigger an event and invoke a Lambda function.
Building Images ThumbnailsAssignment Project Exam Help: Upon uploading an image to S3, a Lambda function should make
Amazon resource permissions (execution roles) for the Lambda function.
3.3 Queries
Your solution should provide APIs which allow following queries.
1. Find images based on the tags: The user can send a text-based query to request URLs of images that contain specific tags with a minimum repetition number for each tag (e.g., “person, 1”, “person, 2, car, 1”). You are expected to create an API Gateway with a RESTful API that allows users to submit their requests, such as GET or POST requests.
Your application might send a list of tags via specific GET parameters in the requested URL, for example:
https://jyufwbyv84.execute-api.us-east-1.amazonaws.com/dev/search?tag1=cat&tag2=car
or it can be a POST request with a JSON object including a list of tags and their counts. A sample JSON object for a query request is given below:
{
“tags”: [
“person”,
“desk”, …
“cat”
]
}
A response should include the list of URLs to all thumbnail images that contain all the requested tags in the query. This can be a JSON message similar to the following:
{
“links”: [
“https://pixtag.s3.amazonaws.com/image1-thumb.png”,
“https://pixtag.s3.amazonaws.com/image59-thumb.png”,
“https://pixtag.s3.amazonaws.com/image180-thumb.png” ] Assignment Project Exam Help
For example: {“tags”:[“person”,”person”]} results in the same response as {“tags”: [“person”]}.
In your UI instead of showing the s3-urls of thumbnails you can preview the thumbnails found as the results. The user can request the full size image by clicking on the thumbnails or sending another query to get the full size image.
2. Find images based on the thumbnail’s url: Users can input the s3-url of a thumbnail into the system and receive the corresponding full-size image s3-url.
3. Find images based on the tags of an image: The user can send an image as part of an API call. The list of all objects (tags) in the sent image is discovered and then all the images in PixTag storage containing those set of tags are found. Finally, as a response, the list of s3-URLs of the matching images thumbnails (similar to to the previous section) are returned to the user. You should make sure that the image uploaded for the query purpose is not added to the database or stored in s3.
4. Manual addition or removal of tags with bulk tagging: Your solution should also provide an API that allow end-user to add or remove tags of images. You are expected to create a POST API which allow users to submit their requests.
A sample JSON message sent to add/remove tags is:
{
“url”: [
“https://pixtag.s3.amazonaws.com/image1-thumb.png”, “https://pixtag.s3.amazonaws.com/image60-thumb.png”,
“https://pixtag.s3.amazonaws.com/image23-thumb.png”, ]
“type”: 1, /* 1 for add and 0 for remove */ “tags”: [
“person”,
“alex”
]
}
“type” can be set to 1 or 0 for adding or removing a tag, respectively. The above request adds “person” and “alex” tags to the tag list of the images in the list of URLs. If “type” is set to 0, the tags are removed from the tag list of the image. If a tag is not included in the list of tags requested for deletion, you can simply ignore it in the request.
5. Delete images: The user can communicate the URL list of image thumbnails to an API and the system should remove the images and their thumbnails from s3, and all relevant entries from the database.
3.4 Tag-based Notifications
Users can receive email notifications or updates related to images based on specific tags. For example,Assignment Project Exam Help
3.5 User Interface
4 Final Reports
You should write an individual and team report on the developed application. You should use a highlylegible font type such as: Arial, Helvetica, and Times New Roman with font size 12 points.
4.1 Team Report – 750 words
Please prepare a team report based on the following guidelines:
• Include an architecture diagram in the team report. For the architecture diagram, you must use AWS Architecture Icons (more info can be found here: https://aws.amazon.com/architecture/ icons/).
• Include a table to describe the role of each team member in your team report, You can provide a three-column table in your report that shows student name and id, percentage of contribution and elements of the project the member contributed (maximum of 100 words per member).
Note that the tables, architecture diagram, screen shots of UI, and references are excluded from the word count limit.
4.2 Individual report – 750 words
Please prepare an individual report based on the following guidelines:
• In your individual report, you should describe your role in the project, and how you contributed to the delivery of the system (150 words).
• Include a personal reflection on the team work your experience in working with other individual team members in your group. Comment on your teammates’ work, challenges the entire team faced, and how well the team worked (150 words).Assignment Project Exam Help
• You should answer the following questions (a paragraph with 100 word each):
1. What sort of design changes you will make to reduce chance of failures in your application?
5 Submission
You need to submit the following via Moodle:
• Your team report in PDF format. Only one of the team members submit this report. Please do not forget to include your team members’ name and student ids. One submission per team!
• Your individual report in PDF format. Every team members should submit this report.
Please do not forget to include your name and student ids.

  • FIT5225-Assignment-3-PixTag-nqwlob.zip