Assignment 2
Assignment 2
Concerned TAs - Gurkirat Singh, Shlok Pandey, Tushar Jain, Vikrant Dewangan
Post all doubts on Moodle or Teams (TA Discussions and Queries channel). Messenger requests WILL NOT BE entertained!
Dockerize and deploy your MERN web app. In this assignment, you will package and dockerize your assignment 1 web app.
Deployment is a must skill that any software engineer should know. Unless you can deploy your application, no one will
ever be able to use your application, which renders your application useless.
Docker containers are easily deployable, and it gives it’s developers the option to easily pack, ship, and run any application
as a lightweight, portable, self-sufficient container, and deploy it virtually anywhere.
Dockerizing will help you down the line in not just personal skills, but also in the projects you are under. A containerized
deployed project will be of much more benefit to the client than an undeployed project. With many of your clients not
technically sound and not having a proficient technical team, it becomes an essential skill to learn packaging and deploying a
live product on the cloud, so that the final product handed over to the client is modular and production ready.
Requirements
You need to deploy your app (locally) on a url (say abc.com). Your backend should be hosted at /api and your frontend
should be at /
One for Database (Optional, can also use any online service also like mongo-db atlas)
Nginx is a load balancer, web server and reverse proxy engine. For this assignment you just need to use it as a routing
service which will routes with /api to your backend container and / to your frontend container
While evaluation, we would test it on IIIT network. You will be asked to connect to LAN/VPN and run docker on your
localhost. We should be able to view your app on our machines from your IPv4 address.
Viva will be held to make sure you understand what you coded in those Dockerfile.
Marking Scheme
18 % dockerization and deployment of backend
35 % Viva
Deliverables
DASS Assignment 2 1
You need to code 4 files - Dockerfile for frontend, Dockerfile for backend, and configuration file for nginx server. This
along with a docker-compose file to run it together.
<roll_no>/
|--backend/
|-- package.json
|-- Dockerfile
... other files
|--frontend/
|-- package.json
|-- Dockerfile
... other files
|--nginx/
|-- local.conf
|-- docker-compose.yml
|-- README.md
DASS Assignment 2 2