aws代写-COSC2759-2110-Assignment 1

COSC2759-2110 Assignment 1 specifications

Deadline Sunday 11.04.2021 (11:59 pm AEST)
% allocated to this assignment 30
To be submitted via Canvas
To be attempted Individually
Please read this first

All of us have been affected by the unfortunate COVID-19 scenario and its aftermath. It is often hard to
concentrate and study online; but as a student enrolled in this course, it is your responsibility to
regularly attend online lecture, your respective pracs and consultation session(s).
• Bring your questions to online discussion board, consultation sessions or email Homy

• Watch the online recordings on a regular basis if you cannot attend the live sessions.

• Do NOT start the assignment at the last minute.

• Do NOT ask for last minute extensions, these are often rejected. Extensions can only be granted
for personal and medical reasons, provided you can supply some evidence.

Besides, DevOps is a very important skill to have. There is a clear lack of training in this area for the
graduates and as such doing well in this course will give you a competitive edge over graduates from
other universities.
Finally, please do NOT give up on this semester thinking of online study as a waste of time. Global
industry projects involving teams at geographically different locations often run fully online. Think of this
semester as a training for future. In the fast-evolving CS&IT industry, the online medium is very popular
and vastly used.
You have more than 4 weeks to complete this assignment. It is
related to AWS. You will need your AWS Educate accounts.
If there are any issues with your AWS Educate account, please email the head tutor at your earliest.
Sending emails late or closer to deadline re account issues will only lead to adverse outcomes.
Get started!


Stonks Inc has recently built a web application that allows users to register and create a simple todo list. The
application is built using NodeJs, Express and backed by a NoSQL MongoDB.

The source code for this application is stored in GitHub but the code itself is built and deployed manually from the
lead developers (Pete) laptop. Although this process has worked in the past, unfortunately Pete had recently
returned positive with Coronavirus and had to take some unexpected sick leave from work and meant that Stonks
Inc missed a critical release that contained a new feature that one of their largest clients have been waiting on for
quite some time.

To top this off, there have also been instances where bugs have been introduced into production which has
caused an increase in the number of support calls from their customers, and the support and development teams
have had to work overtime to manage the load and fix the issues.

These issues are causing a reduced morale with the teams, as well as impacting the revenue of Stonks Inc. As the
newly hired DevOps practitioner, the org has turned to you to help resolve their issues and enable their teams to
better deliver new features and ensure releases into production are quick and reliable.

To help kick off this transformation, you have proposed that Stonks Inc start looking at establishing a CI pipeline to
help reduce dependency on Pete by introducing automated builds and automate their testing processes. This will
reduce the strain on the QA team and ensure bugs and development defects are picked up quickly and fed back to
developers to be resolved before any changes are promoted to production.

The Approach

To make this easier for Stonks Inc., which is rather immature with DevOps methodologies and practices, you have
opted to use SaaS tools where possible to help reduce the learning curve for their development team. You will
follow best practice principles and make as much of your solution using code, this includes your CI build
configuration and scaffolding scripts.

Tools to use:

● GitHub (We will be using GitHub Classroom)
● CircleCI
● Docker
● Docker Compose

Stonks Inc expects you update your Github classroom repository all the code and documentation
required to run the Continuous Integration build you are creating for them. This includes all the files.


We will be using Github classroom to edit and manage the code base. All of the core files for the application will
be provided to you here. Please accept the invite below to join the classroom and get access to Assignment #1.
You will be expected to work from this repo and make all of your commits to this repo.

Create Github Classroom for the assignment
Please accept this invitation, (you must login with your Github account).

You will see above picture after you accept the invitation, wait until the process is done.
Then you must be able to see the below page. You can see your repository for you on SDO
Github classroom. Please click on that and then (The URL in here is as an example and
your Github URL must be as below:


you must be able to see your Github repository as below (pictures are as examples your URL can be

Please be advised that you are only allowed to use this repository for the assignment. Your scaffold
with a folder structure and some support files is available in your Github repository.
Please use your AWS Educate account to test the solution as you build it.




It will be important that you document each of the elements in your solution and explain not only what it does,
but the intent behind it, so the Stonks Inc. team can understand why you chose to approach it the way you did.

Please consider:
● Analysis of the problem (What are you actually trying to solve) ( 5%)
● Explain and Justify the solution (How does the solution work) (10%)
● Writing quality, layout and accuracy (5%)

This should all be documented in the Readme of git Repo.


Set up integration between CircleCI & the Github repo that is provided to you via GitHub Classroom [5%]


Things that needs to be added to your Continuous Integration build [24%]
• Unit testing (5%)
• Static Code Analysis / Lint (5%)
• Ensure code coverage is checked (Hint: Research how you enable code coverage with Jest) (4%)
• Implement a failure scenario (5%)
• Generating an artefact that can be deployed (4%)


Ensure proper branching is implemented (GitHub Flow is recommended) and new features are developed on
feature branches and merged into master with Pull Requests. Pull requests can be reviewed and approved by
For all queries pertaining to this assignment, be it specification-related or
extension, ONLY send email to Homy and no one else.

If you can finish all the above tasks, then you can start working on C tasks.

Ensure the pipeline works with multiple branches and have your CI builds trigger on every branch & ensure
artefacts are ONLY generated on the master branch. [10%]

If you can finish all the above tasks, then you can start working on D tasks.
Run integration testing as part of the pipeline

Have the CI Pipeline ensure automated tests validate that the application integrates properly with the MongoDB
Backend. You should be leveraging docker to stand up a containerised version of the DB and run tests against it.
Integration tests are written in Jest and details on how to run these are included in the project ReadMe.

If the tests fail, break the build and report back why it failed in the log.[10%]

High Distinction
If you can finish all the above tasks, then you can start working on HD tasks.
No help or consultation will be provided for these tasks. You are welcome to ask general questions
regarding the tasks, but this is a strictly self-research section

Run end-to-end tests as part of the pipeline :

End-to-end testing is a test that checks if the flow of an application from start to finish is behaving as expected.
The purpose of performing end-to-end testing is to find system dependencies and to ensure that the data
integrity is maintained between various system components and systems. Please read the ReadMe file on the

Execute automated tests that validate that the application functions as expected from the user interface.

If the tests fail, break the build and report back why it failed in the log.

Assessment criteria

You will be assessed on:
• Your ability to automate the deployment of the AWS infrastructure using Terraform.
• Your ability to deploy the application and configure it automatically using Ansible
• Your ability to document and explain the solution so the scripts provided can be executed by
someone with no prior context
• How well you analyse the problem and justify your solution for each task
• Does the provided Zip file contain everything required for ACME corp to be able to use the
deployment you have designed?
• Do you use the branching and commit changes often?


All assignments will be checked with plagiarism-detection software; any student found to have
plagiarised would be subject to disciplinary action. Plagiarism includes:

• CONTRACT CHEATING: paying someone to do your work
• CONTRACT CHEATING: getting someone else to write the test or attend demo
• submitting work that is not your own or submitting text that is not your own
• copying work from/of previous/current semester students
• allowing others to copy your work via email, printouts, social media etc.
• posting assignment questions (in full or partial) on external technical forums
• sending or passing your work to your friends
• posting assignment questions on technical forums to get them solved
A disciplinary action can lead to
• a meeting with the disciplinary committee
• a score of zero for the assignment
• a permanent record of copying in your personal university records and/or
• expulsion from the university, in some severe cases

All plagiarism will be penalised. There are no exceptions and no excuses. You have been warned. For
more details please read RMIT’s page on Academic Integrity at

Please submit ONLY the URL of your GitHub Classroom repository into Canvas, your repository must
have a format like below:

Submission Procedure

Each submission must include a README.txt file containing your full name, Student ID and
any other relevant information (if you are working in a group, then please mention the details
of your partner).

ACME corp. expects you push all the code and documentation required to run the Continuous
Integration build you are creating for them into your Github classroom repository. This includes the
files that define any shell scripts, Docker files, or anything else you use.

Late submissions and Extension-related information

A penalty of 10% per day of the total marks for each assignment will apply for each day a
submission is late, including both weekdays and the weekend. After 5 days, you will receive
zero marks for that assignment.

Email your head tutor, Homy: ( for extension
related queries.