PROG2003: CLOUD SYSTEMS DEVELOPMENT
Task Description
Assume that you are a cloud developer at Southern Cross University and tasked to develop a website that counts and displays the number of different types of files stored in an AWS cloud storage bucket (i.e., S3 bucket). This can be done with a backend app (i.e., an S3 app) that reads the files in an S3 bucket and counts them according to their file types (e.g., txt, xlsx, png, jpg). Later, the backend app “writes” the count information as a part of the HTML pages that are used to host the website. You will learn details about these in the class. Please see below the example screenshots of the website’s home page.
Example scenario and problem
An example of how your website would look like is given below:
Assessment 1 Brief
1
You can divide the whole project into two parts – Part A would be the website, and Part B would be the backend Cloud9 app.
Note: You will use an AWS account provided by the university for this project, not a personal account. This ensures that all resources and data are managed within the university's AWS ecosystem.
Task Instructions
Part A – Website
Complete the following tasks:
Create a cloud storage service bucket (aligns with ULO1):
Create an S3 bucket and upload some test files of different types – web, text, image, excel, and others into the bucket. Configure the bucket with the appropriate “bucket policy” and “public access” to ensure public access to the website.
Design a static website using cloud storage service (aligns with ULO1):
Create a static website with two pages – home and error, using corresponding HTML files (i.e., home.html, error.html). The home page will print (display) the number of files available within the S3 bucket for each file type. You need to consider the following types and respective file extensions.
Web (.html)
Text (.txt)
Image (.jpg)
Excel (.xlsx)
Other (.pdf, .xml, etc.)
The home page must reflect any changes to the files (rename, add, or delete file) in the bucket. The error page will be displayed upon entering invalid website URL and will display a simple error message, e.g., “404: Page not found”.
Part B – S3 App
Complete the following tasks:
1. Develop S3 app by integrating cloud storage service API (aligns with ULO1):
Develop an S3 application to add dynamic functionalities to the static website. The S3 app must read the list of existing files, count them, and write this information into the corresponding html file used as the home page. The home page should dynamically update to show any modifications (such as renaming, adding, or deleting files) made in the bucket. The S3 app must be run after any changes to files in the bucket. You need to develop the following functionalities with detailed comments. Use separate class methods to implement the functionalities.
a) Reading and counting the number of each file type (use the file types mentioned above).
Assessment 1 Brief
2
b) Crafting HTML content for 'home.html'. This file will display data regarding the types of files and their quantities. All this information should be encapsulated within a formatted string according to HTML standards.
c) Create (write) the ‘home.html’ in the bucket, which will overwrite the existing ‘home.html’.
d) Implement suitable exception handling mechanisms and utilise loops as needed.
Requirements
Your website and S3 app must fulfil the following requirements.
The functionalities of the S3 app must be implemented with AWS SDK 2.x and Java (shown in tutorials).
Names of the bucket and S3 app must be “yourscuusernamea1bucket” and “yourscuusernameA1App”. You need to use a single bucket to host the website and develop S3 app.
Your Cloud9 app must have three separate Java methods to implement reading/counting, preparing, and creating.
You must implement the assignment in the UA-provided AWS account, personal AWS account will not be accepted.
Resources
Resources required to complete the assessment task
Contents from Modules 1 and 2 of the unit site. You will learn how to create new file and list
existing files, hosting static website during the tutorials.
You need additional resource to craft the HTML content for the ‘home.html’ file. You can use
an HTML list element to display/print the file counts and types to the home page. Please check this link: https://www.w3schools.com/html/html_lists_unordered.asp.
Task Submission
Download the final S3 app from Cloud9 workspace and submit the zipped app as “yourscuusernameA1App.zip” to the Blackboard submission link in the unit site. The app must also be present in the AWS workspace provided by the UA. The marker will test your app functionality from this workspace.
The website URL to be submitted via the Blackboard submission link in the unit site.
Note: Multiple submissions are allowed until the deadline.