1
School of Information Technology and Electrical Engineering
INFS3208 – Cloud Computing
Project (20 Marks)
Due at 1 PM 22/10/2021 (Friday in Week 12)
Overview and objectives
The goal of this assignment is to propose a cloud-based application in a proposal (5 marks) and implement
the application (15 marks) with cloud computing technologies and related programming skills. You will need
to propose the project, implement the code, and present the work all by yourself. You feel free to choose any
application you are interested in and utilise the right cloud computing technologies to carry it out. You are
allowed to re-use something that you’ve done before, but you need to re-implement or deploy the application
with the learned cloud technologies. A novel project idea with excellent implementations will be nominated
for the student project competition awards. Overall, your project will be open-ended, and your project should
demonstrate how to make use of cloud computing technologies and what specific benefits your cloud
application can get from cloud computing. You are required to complete the proposal and implementation
individually. You must submit the proposal and the source code on the blackboard before 1:00 PM 15/10/2021.
It is your responsibility to ensure the submission on time.
Proposal (5 Marks)
The proposal aims to test your understanding of the concepts, characteristics, and relevant technologies in
Cloud Computing. Moreover, your ability to design a cloud application will be assessed. Turn in a printed
two-page project proposal that includes but is not limited to the following sections:
• Introduction:
o Give background information about this project: What is this project about?
o Explain the motivation of this project: Why is this project important?
o Describe the overall objectives: What features does this project have?
o Explain the benefits brought by cloud computing: How does cloud computing fit in this project?
• Technical Solutions:
o Describe what front-end technologies you use in this project.
o Describe what back-end technologies you use in this project.
o Estimate the cloud cost (e.g. VM, cluster network, software, etc.).
• Architecture Design:
o Depict the workflow or framework of the project in a figure.
o Describe in detail the architecture of the project.
The teaching team will follow up with your implementation to ensure that the project is reasonably proposed
with appropriate size and difficulty.
According to the previous experience, students’ projects are normally categorised into two types:
1. Type I: a web-based application (e.g. PHP/JavaScript + MySQL/NoSQL + Docker) that is scalable,
reliable, and resilient in the cloud.
2
2. Type II: a data-analytic application (e.g. Jupyter Notebook + Scala/Python/Java + Spark SQL /
Streaming / MLlib) that is capable of analysing big data.
You can choose either one according to your background and preference. There are a few technical
requirements that must be met when designing your project in the proposal.
Technical requirements:
If your project belongs to Type I,
• For the front-end design, you should have a functional user interface allowing users to interact with
the application (e.g., login, search, etc.).
• To support the overall objectives of this project, you should have a backend design (e.g., database)
working together with front-end UI smoothly.
• You should adopt a micro-service architecture and containerise your micro-services with multiple
containers. You should use docker-compose to orchestrate all the containers.
• In your design, your application should have scalability and reliability with the help of cloud
technologies.
If your project belongs to Type II,
• You need to perform a challenging data analytic task (e.g., big data queries, classification/regression,
clustering/association rule mining, etc.) to solve a real problem.
• You do not have to analyse the real big data in this task, but the dataset you pick up should be
reasonably large and complex. To persist the data, you need to store the data in either database
(relational/non-relational databases, e.g., MySQL/Redis/MongoDB/Cassandra) or distributed file
system (e.g., HDFS).
• You should run this analytical task on a Spark cluster using Spark programming techniques and
related Spark built-in libraries (i.e., SQL, MLlib, Streaming, and GraphX). You can choose either
Python or Scala as the programming language.
• To demonstrate the analysis results, your program should be able to visualise results with some tools
(e.g., matplotlib in Python) in Jupyter/Zeppelin Notebook.
No matter which types your project belongs to, the cloud infrastructure costs should be fair and reasonable.
You can use Google Cloud Platform Pricing Calculator when making the budget plan in the proposal.
Implementation (15 Marks)
The implementation aims to test your ability to build and deliver a cloud application that is proposed in your
proposal. The implementation should be technically consistent with the proposed features and functionalities
in the proposal. You are allowed to re-use something that you’ve done before, but you need to re-implement
or deploy the application with learned cloud technologies. Please note that simply re-using the code is not
allowed. If the previous project was a group one, you need to acknowledge your previous team members that
this project will be re-implemented with new cloud technologies and they must confirm their consent. To
demonstrate your project, you should present it to your tutor in the tutorial and practical sessions in Week 12.
To avoid the absence of your presentation, you should alternatively prepare a 10-minute video presentation
of your project. The presentation should include but not limited to the following parts:
• Background & Motivation;
• Project architecture and applied technologies;
• For Type I projects, database design (for database users) or Data storage (for file system users);
• For Type II projects, descriptions of analytic models and applied data in Spark programming;
• GUI demonstration or result visualisation;
• Comparing to non-cloud development and deployment, what advantages and disadvantages does cloud
computing have in your project.
3
You should use the credit wisely and avoid all unnecessary expenses on cloud services during the group project.
Also, you should monitor the balance of the credits during the implementation. Please contact your tutor as
soon as possible when the credit is running out. Note that the GCP credit is not unlimited.
You should backup the implementation code and data regularly (at least every week). It is your interest to
ensure that you fully understand the technical requirements of this individual project. If you have any concerns
or problems, please contact your session’s tutor or ask questions on Ed Discussion.
Submission
You should make an online submission before 1 PM 22/10/2021 (Friday in Week 12):
• Your proposal should be no more than 1,000 words in two pages and should be submitted to Turnitin;
• The source code and the relevant data should be compressed into a single file and should be submitted
to Blackboard.
You are welcome to discuss your proposal and implementation with the teaching team during tutorial/practical
sessions or on Ed Discussion.