CSC73001 – Cloud Systems Development Assignment 1
Assignment 1: S3 and DynamoDB Exercise
Due Date: Week 6 Friday at 11.00 pm Submission Method: Blackboard Weight: 25% of Overall Grade Type: Individual
CSC73001 – Cloud Systems Development Assignment 1
Overview: In Assignment 1, students are expected to demonstrate their level of understanding and skill attained through practicing the workshops from week 2-4. The assignment has two parts (Part A: 12%, Part B: 13%).
Environment Setup: You need to use the AWS Educate (classroom) account created for you, along with Cloud9 as development environment as well as S3 and DynamoDB as AWS services. You will find these tools by AWS Console in your classroom account. It is expected that you already have completed the setup of the development environment (e.g., installing java, AWS SDK, maven etc.), following week 2 workshop document on Cloud9. You need to use AWS SDK v2.5 of both S3 and DynamoDB for completing this assignment. Other version of the SDK will not be accepted.
Part A (12%): Create a Java app using maven in Cloud9 to first create and then read an S3 object. Tasks
• Create an empty S3 bucket named your SCU user name-a1-s3bucket (e.g., mine one would be pchakrab15-a1-s3bucket). Update the Block public access and the Bucket Policy, so that the bucket objects are publicly accessible.
• Create an app in Cloud9 with maven using appropriate commands shown in workshop. The app should have the following characteristics:
o App/project name: your SCU usernamea1s3app (e.g., mine one would be pchakraba1s3app).
o Packagename:assgn1.s3app.
o Jarfileversion:onlyadecimalnumber(e.g.,1.0).
o Jarfilename:Combinationofyourproject/appnameandthejarversion. o Includeappropriatedependencyintothepom.xml.
• Write a Java program in the App.java file created inside the maven app. Your java program needs the following capabilities. Your program must include proper exception handling (try- catch statement). Your program should:
o CreateanobjectintothenewlycreatedemptyS3bucket.Thisobjectwouldactually be a .tmp file named as your SCU user name-detail.tmp, e.g., pchakrab15-detail.tmp. While creating this object/file, your program should write your details including your full name, student id, and number of units taken this session into the object/file.
o Read the content of the object/file (just created in the step before) and save the content into another local (in-app) .txt file.
o You must create two separate methods in App.java to implement these two tasks described above and call the methods in the main method.
• Find and note down the Object URL of the bucket object your app have created during testing by clicking the object.
NOTE: Do not delete the bucket, bucket object your program has created, and the command history, as the marker will check your program against that.
CSC73001 – Cloud Systems Development Assignment 1
Part B (13%): Create a new Java app using maven in Cloud9 that can insert and update DynamoDB entry.
Tasks
• Create the following table into DynamoDB. The table has a single primary key, Id.
Car (Id, Model, Make, Year, Colour); Model, Make, Colour: String, Id, Year: Number.
• Create a new app in Cloud9 with maven using appropriate commands shown in workshop. The app should have the following characteristics:
o
o o o o
App/project name: your SCU usernamea1ddbapp (e.g., mine one would be pchakraba1ddbapp).
Packagename:au.edu.scu.ddbapp. Jarfileversion:onlyadecimalnumber(e.g.,1.0). Jarfilename:Combinationofyourproject/appnameandthejarversion. Includeappropriatedependencyintothepom.xml.
• Write a
include proper exception handling (try-catch block). Your program needs the following capabilities. It should:
o Insert (create) five entries with appropriate values into the ‘Car’ table you have created. You must use loop to insert these entries.
o Readingallexistingitemsfromthetableanddisplayingthevaluesforeachitemon the console.
o YoumustcreatetwoseparatemethodsinApp.javatoimplementthesetwotasksand then call them into your main method.
NOTE: Do not delete the database table and the command history, as the marker will check your program against that.
Submission Checklist: You need to use the classroom account for completing this assignment and share your username and password for this account with us. The marker will login to your classroom account and check your apps there. The marker will also check the command history to make sure that you have used the classroom account console to complete the apps. Your app will not be marked if they do not comply these requirements. You have to zip the app project folders and submit them in Blackboard as well. Blackboard submission list:
• Zipped app folder for the S3 app (Part A).
• Zipped app folder for the DynamoDB app (Part B).
• Include the S3 object URL and your username-password of AWS classroom account while you
applying through Blackboard, as note.
WARNING! Plagiarism is an academic misconduct and would be reported to the misconduct committee in this unit. Your program must be developed by yourself and should be original (not copied from web or friend). Please find details on plagiarism and other academic misconducts in this link: https://www.scu.edu.au/media/scueduau/staff/teaching-and-learning/ctl-document-downloads/as- academic-integrity-guides/Student-Academic-Misconduct-an-Introduction.pdf.
Java program in the App.java file created inside the maven app. Your program must