cover photo

COURSE

CL-CY-001

4 Levels · 6 Months

Introduction to Cloud Computing and Cyber Security

CL-CY-001

Jump to:


Level 1


Generic Tasks

TASK 1: 3D Printing

Understand the working of a 3D printer, check out the online resources. Understand what's an STL file, and then learn to slice it (using ultimaker or creality slicer).Go through the SOP'S regarding the 3d printer. Learn about bed temperature, infill density and other printer settings. Finally get an STL file from the internet, and slice it and put it for print.

Resources:

Introduction to 3d printer

PLA settings

Types of 3D printing

(Note this task is to be done under coordinator supervision.) 3dprinter

TASK 2: API

What is an API? Learn the working of an API and its applications. Using any api of your choice, build an user interface(web app, mobile app, etc), where you can make calls and then display the necessary information. An example weather app is given below, using the open weather api.

Example

TASK 3: Working with Github

Familiarize yourself with GitHub integrated workflows (GitHub actions), Issues, and pull requests with this task. Given below is a git repository, go check it out and then perform the necessary tasks stated in the readme file.

Check this link for more info: https://github.com/UVCE-Marvel/git-task

TASK 4: Get familiar with the command line on ubuntu and do the following subtasks:

● Create a folder named test.

● cd into that folder.

● Create a blank file without using any text editor.

● list the files in that folder

● create 2600 folders in this folder where each folder is named like . For example, M90 or B56.

● concatenate two text files containing any random text and display them on the terminal.

https://ubuntu.com/tutorials/command-line-for-beginners#1-overview

Task 5 : Build Your Own Brain -Linear Regression from Scratch

Dive into the core of machine learning by implementing Linear Regression from scratch using , and compare its performance with the scikit-learn implementation. Use the California Housing dataset to evaluate your model on real-world data.

Your Task:

  • Implement linear regression manually (without using ML libraries for training).
  • Understand and apply gradient descent to minimize error.
  • Compare your custom model’s performance against sklearn.linear_model.LinearRegression .
  • You should analyze results by:
    • Graph showing line of best fit and the datapoints.
    • Performance metrics: MSE, MAE, R² for both custom and scikit-learn models.
    • Brief comparison between two models.

Download Dataset

Learn Linear Regression:

  1. Understanding :

  2. Coding the linear regression algorithm from scratch:

Expected Outcomes:

  • Grasp how gradient descent optimizes weights in linear regression.
  • Understand the importance of feature scaling.
  • Know how to evaluate regression models using standard metrics.
  • Be able to appreciate the convenience and performance of inbuilt ML libraries.

Precautions:

  • Always normalize or standardize features before training your scratch model, especially if you’re using gradient descent.
  • Be cautious with your learning rate , too small and the model is slow, too large and it may diverge.
  • Initialize weights and bias properly ( small random values or zeros).

Task 6 : The Matrix Puzzle — Decode with NumPy & Reveal the Image

Get hands-on with NumPy and Matplotlib by solving a visual puzzle. You’ll be given a scrambled matrix, and your mission is to decode it into a hidden image using NumPy operations and visualization techniques.

Your Task:

  • Download the scrambled matrix from the link provided.
  • Use your knowledge of NumPy to manipulate, reshape, and reorient the matrix.
  • Reveal the secret image by plotting it using matplotlib.pyplot.imshow() .
  • Scrambled Matrix: Download Here
  • NumPy Learning Doc: Explore Here

Learn NUMPY:

Learn Matplotlib:

Decode the Matrix using these clues and Visualize it :

  • "Try reshaping the encoded array into a square—how many elements are there?"
  • "The structure may be upright, but the data might be sideways. Look at its orientation."
  • "Sometimes the end is actually the beginning."

Expected Outcomes:

  • Gain confidence with NumPy operations like reshaping, slicing, flipping, and transposing.
  • Learn to visualize 2D arrays using Matplotlib.
  • Sharpen your debugging and puzzle-solving skills in a fun context.

Precautions:

  • Check the shape of the array before applying imshow() - wrong dimensions will throw errors.
  • Ensure that your reshaped matrix has the correct number of elements (it's likely a square!).

TASK 7: Create a Portfolio Webpage

Create a website to showcase your portfolio - about yourself, interests, projects, social media profiles and more. It has to be responsive and also pushed to the git repository. CSS can be of your choice and any framework can be used.

TASK 8: Writing Resource Article using Markdown

Markdown is an easy-to-use markup language that is used with plain text to add formatting elements (headings, bulleted lists, URLs) to plain text without the use of a formal text editor or the use of HTML tags. Markdown is device agnostic and displays the writing format consistently across device type. Write a technical resource article on a topic of your choice and post it on the MARVEL website. Refer to the linked article for further details

Link

TASK 9: Tinkercad

Create a tinkercad account, get familiar with the application, understand the example circuits given and simulate a simple circuit using an ultrasonic sensor to estimate the distance between an obstacle and the sensor. Display the results on the serial monitor.

Create a radar system utilising an ultrasonic sensor and servo motor to detect objects within a certain range. The ultrasonic sensor emits sound waves and measures the time taken for them to bounce back, while the servo motor rotates the sensor to cover a wider area, providing a simple yet effective detection mechanism. RESOURCE: https://youtu.be/NwmcNCvUcDc?si=x2LAYMFiqs1SzLfI TASK OUTCOME: introduction to- · TINKERCAD · Working of ultrasonic sensor and servo motor · Radar technology PRECAUTIONS/SAFETY MEASURES- NOT ANY

TASK 10: Speed Control of DC Motor

Explore basic techniques for controlling DC motors, understand the control DC motors using the L298N motor driver and the Arduino board. Using an UNO and H-Bridge L298N motor driver, control the speed of a 5V BO motor, try simulating this on tinkercad and then perform it on the hardware, Record videos of you doing the same.

Reference

TASK 11: LED Toggle Using ESP32

Learn the working of an ESP32 and create a standalone web server with an ESP32 that controls the LED connected with ESP32 GPIOs. Use the arduino IDE to code and upload the program to the ESP32. Learn to configure the IDE to upload code to an ESP32.

Reference

TASK 12: Soldering Prerequisites

(Soldering is to be done in presence of a coordinator)

Learn about the soldering equipment present in our lab, the solder, the soldering iron, soldering wick, flux, etc. Learn to use them and perform basic soldering on a perf board, for example a LED circuit in the presence of a coordinator and document the same.

Reference

TASK 13:

Design a 555 astable multivibrator with duty cycle 60%, rig up the circuit on a breadboard and by using the probes observe the output of your circuit on the DSO. Resources:

Circuit

TASK 14: Karnaugh Maps and Deriving the logic circuit

Description: For 4 cases, based on door lock/open and key pressed/not pressed. Determine the karnaugh map and make a burglar alarm using simple logic circuits. The buzzer or led blinks when certain conditions are met, you can use push buttons for the door and key.

(Tip: use logic gates, use k-maps to figure out the working conditions.)

TASK 15: Active Participation:

Take part in any technical event, inter or intra college and submit the issued certificate of participation.

Enroll for a MOOC and complete the course.

TASK 16: Datasheets report writing:

Topics: 1)MQ135 Gas sensor 2)L293D motor driver Task Description: Study the datasheet of any one of the above and write a report on it. Specify about the ICs used in L293D, PWM, H-bridge etc. In case of MQ 135, specify the calibrations for different gases and the Freundlich Absorption Theorem Graph.

Task 17: Introduction to VR

Familiarise yourself with what Virtual Reality is. Make a detailed study about what's the difference between VR and AR. Mention about the trends in the space and technology stack being developed. Make about Indian companies in this space. Make the report with detail. Using generative AI to generate this study can lead to disqualification.

vrlol

TASK 18: Sad servers - "Like LeetCode for Linux"

Sadservers is an excellent ground to test your Linux troubleshooting skills. Here is a troubleshooting scenario: Command Line Murders. Troubleshoot and Make Sad Servers Happy!

Command line murder
Linux commands
Linux commands

Task 19: Make a Web app

Using express create a resource library website where you can browse the resource articles, books etc which are available and also manage your account
Reference


Level 2


CL - Cloud Computing

Task 1: Working with Git and GitHub Basics

Task Description
Start by understanding version control. Practice cloning repositories, making changes, committing those changes, and pushing them back to GitHub. Create branches and open pull requests to simulate collaborative workflows. Learn to review and merge pull requests to complete the development cycle.

Expected Task Outcomes
• Understand the fundamentals of version control and distributed repositories
• Learn how to solve merge conflict - git rebase
• Create and manage branches for feature development
• Contribute to atleast one open source project
• Implement and learn about git revert, git cherry-pick
• Create a customized Git workflow - Git config

Resource Links
• Git Official Documentation: https://git-scm.com/doc
• GitHub Learning Lab: https://github.com/apps/github-learning-lab
• Pro Git Book (free): https://git-scm.com/book/en/v2

Task 2: Exploring Docker Fundamentals

Task Description
Begin with learning the difference between containers and virtual machines. Practice using Docker CLI commands to pull images from Docker Hub, run containers, inspect running processes, view logs, and manage container lifecycles such as stopping and removing containers.

Expected Task Outcomes
• Articulate the key differences between containers and virtual machines
• Pull images from Docker Hub and run containers using CLI commands
• Inspect running processes, view container logs, and understand container state
• Manage full container lifecycles: start, stop, restart, and remove

Resource Links
• Docker Official Documentation: https://docs.docker.com/
• Docker Hub: https://hub.docker.com/
• Play with Docker (browser-based lab): https://labs.play-with-docker.com/

Task 3: Dockerize a Simple Application

Task Description
Learn Dockerfile basics and how to containerize applications. Write a Dockerfile for a simple static website or API provided as starter code. Build your Docker image from this Dockerfile and run the application container locally. Verify successful deployment by accessing the app from your browser.

Expected Task Outcomes
• Write a functional Dockerfile to containerize a provided application
• Build a Docker image and run it as a container on your local machine
• Map container ports to the host machine to access the app in a browser
• Understand image layers and how each Dockerfile instruction creates a layer

Resource Links
• Dockerfile Reference: https://docs.docker.com/engine/reference/builder/
• Best Practices for Writing Dockerfiles: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

Task 4: Launch and Manage an AWS EC2 Instance

Task Description
Explore AWS EC2 service and different instance types. Launch a free-tier EC2 instance, configure the security group to allow SSH access, and connect securely using SSH. Install a lightweight web server such as Nginx or Apache on the instance and ensure it is accessible via the public IP. Also, understand how CPU and memory work in a VM.

Expected Task Outcomes
• Launch an EC2 instance using the AWS Free Tier and configure its security group
• Connect to the instance securely over SSH using a .pem key pair
• Install and start a web server (Nginx or Apache) and confirm access via public IP
• Understand EC2 instance types, CPU credits, and memory allocation in cloud VMs

Resource Links
• AWS EC2 Getting Started Guide: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html
• AWS Free Tier Details: https://aws.amazon.com/free/
• Nginx Beginner's Guide: https://nginx.org/en/docs/beginners_guide.html

Task 5: Kubernetes Basics and Writing Pod Specs

Task Description
Understand key Kubernetes concepts and the structure of YAML manifest files. Write a simple Pod specification YAML to run a basic container (e.g., Nginx). Apply the manifest to your Minikube cluster and verify the Pod is running. Explore commands to get Pod status and logs.

Expected Task Outcomes
• Explain core Kubernetes concepts: Nodes, Pods, Clusters, and the Control Plane
• Write a valid Pod manifest YAML file to deploy a container image
• Apply manifests to a local Minikube cluster using kubectl
• Use kubectl commands to inspect Pod status, describe Pods, and view logs

Resource Links
• Kubernetes Official Documentation: https://kubernetes.io/docs/home/
• Minikube Getting Started: https://minikube.sigs.k8s.io/docs/start/
• Kubernetes YAML Basics: https://kubernetes.io/docs/concepts/workloads/pods/

Task 6: Manage AWS S3 and IAM with CLI

Task Description
Study AWS IAM concepts like users, roles, and policies, and learn to configure the AWS CLI. Create an IAM user with permissions to access S3, then create an S3 bucket from the CLI. Practice uploading, listing, and downloading files to/from the bucket using AWS CLI commands, reinforcing cloud storage handling.

Expected Task Outcomes
• Understand IAM concepts: users, groups, roles, and least-privilege policies
• Configure the AWS CLI with credentials and verify connectivity to AWS services
• Create an S3 bucket and manage objects via CLI (upload, list, download, delete)
• Apply IAM policies to restrict S3 access to specific users or roles

Resource Links
• AWS IAM Documentation: https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
• AWS CLI S3 Command Reference: https://docs.aws.amazon.com/cli/latest/reference/s3/
• AWS S3 Getting Started: https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html

Task 7: Deploy a Containerized Application on Kubernetes

Task Description
Learn to write YAML manifests for Kubernetes deployments and services. Package your Dockerized app and deploy it using YAML files. Expose the app within the cluster via ClusterIP and externally using NodePort. Validate by accessing the app through the configured NodePort on your local machine.

Expected Task Outcomes
• Write Deployment YAML to deploy multiple replicas of a containerized application
• Expose the deployment within the cluster using a ClusterIP Service
• Expose the deployment externally using a NodePort Service and access it in a browser
• Scale deployments up and down using kubectl and observe rolling updates

Resource Links
• Kubernetes Deployments: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
• Kubernetes Services: https://kubernetes.io/docs/concepts/services-networking/service/

Task 8: Use Kubernetes Secrets and Environment Variables

Task Description
Understand how to handle sensitive data and configuration within Kubernetes using Secrets and ConfigMaps. Create a ConfigMap and mount it onto a deployment and let the underlying application use the configuration. Create a Kubernetes Secret with AWS credentials, update deployment YAML to use these Secrets as environment variables, and deploy the updated app. Verify that the app uses the credentials securely to interact with AWS S3.

Expected Task Outcomes
• Create and apply ConfigMaps to inject non-sensitive configuration into Pods
• Create Kubernetes Secrets to store AWS credentials without hardcoding them
• Mount Secrets as environment variables in a Deployment and verify their consumption
• Understand the difference between Secrets and ConfigMaps and when to use each

Resource Links
• Kubernetes Secrets: https://kubernetes.io/docs/concepts/configuration/secret/
• Kubernetes ConfigMaps: https://kubernetes.io/docs/concepts/configuration/configmap/

Task 9: Deploy an App to Push Files from Kubernetes to S3

Task Description
Build and deploy an application on Kubernetes capable of pushing files from a locally hosted app server to AWS S3. Use Kubernetes Secrets for storing AWS credentials securely. Validate the file upload process from the app interface to the S3 bucket and verify files in the cloud storage.

Expected Task Outcomes
• Build and containerize a file-upload application using a language/framework of your choice
• Deploy the app on Minikube with AWS credentials injected via Kubernetes Secrets
• Successfully upload a file from the app UI/CLI and verify it appears in the S3 bucket
• Integrate all Level 1 concepts: Docker, Kubernetes, IAM, S3, and Secrets into one working pipeline

Resource Links
• AWS SDK for Python (boto3): https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
• AWS SDK for Node.js: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/
• Kubernetes Secrets in Pods: https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/


CY - Cybersecurity

Welcome to the Marvel Cybersecurity Module.
Level 1 of this module is designed to build a strong foundation by covering the essentials of computer networking, protocols, Windows, Linux, and core cybersecurity principles. These fundamentals are crucial— cybersecurity is not just about tools, but about understanding how systems work.
At its core, cybersecurity follows simple logic:
You can’t protect what you can’t see (or don’t understand), and you can’t break what you don’t know.
That’s why mastering these basics is the first step toward becoming skilled in both defending and attacking systems.

Once you complete Level 1, we’ll move into the more exciting part—hands-on hacking and defense techniques. Stay tuned!

Getting Started
To begin, you’ll need access to a platform called TryHackMe, where all course materials are hosted. Please follow the steps below to create your account:
Step 1: Go to https://tryhackme.com/
Step 2: Click on “Join for FREE” (top-right corner)

Step 3: Sign up using your Google, LinkedIn, or email account
Step 4: Complete any required details (password, captcha, etc.)
Step 5: Finish the introductory tour on the platform
Step 6: Access the Level 1 module using the link below: https://tryhackme.com/jr/uvce_marvel_level1


Level 3


TASK 1: AWS Lambda

AWS Lambda is an event-driven, serverless Function as a Service (FaaS) provided by Amazon as a part of Amazon Web Services. It is designed to enable developers to run code without provisioning or managing servers. It executes code in response to events and automatically manages the computing resources required by that code. From this task, you will learn the basics of running code on AWS Lambda without provisioning or managing servers.

Task Outcome: Deploy the chat app using AWS Lambda.
Resource Links:
Run Serverless Code - AWS

TASK 2: CI/CD (Continuous Integration & Continuous Delivery) - Intro to Jenkins

In this task, you will explore the concept of Continuous Integration and Continuous Delivery (CI/CD) and gain an introduction to Jenkins, a popular open-source tool for automating CI/CD pipelines.

Task Outcome:

  • Create a Jenkinsfile which contains the scripts for your pipeline.
  • Define the stages in your pipeline. A stage is a group of tasks that are executed together.
  • Define the tasks within each stage. A task is a specific action that is performed in your pipeline, such as building code or running tests.
  • Explore various stages of a CI/CD pipeline (checkout, build, test, deploy).
  • Save the Jenkinsfile to your repository.

Resource Links:
Jenkins Full Course | Jenkins Tutorial For Beginners | Jenkins Tutorial | Simplilearn Jenkins User Documentation

TASK 3: SSH

Secure Shell (SSH) is a network communication protocol that enables two computers to communicate.

Task Outcome: Write a script to SSH into a server, search the entire server for public/private keys, and upload them to another server.

Resource Links:
SSH Copy ID
How to Configure SSH Key-based Authentication on Linux
Retrieve the Public Key from a Private Key
Shell Script for Logging into SSH Server

TASK 4: Terraform

Terraform creates and manages resources on cloud platforms and other services through their application programming interfaces (APIs). Providers enable Terraform to work with virtually any platform or service with an accessible API.

Task Outcome: Build, change, and destroy AWS infrastructure using Terraform. Complete the step-by-step, command-line tutorials linked below which will walk you through the Terraform basics.
AWS Get Started

Resource Links:
Terraform Introduction

TASK 5: Wireshark

Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Learn about network trafficking, fundamentals of Wireshark Analysis, and identify potential security threats.

Task Outcome:

  • Diagnose problems like latency, packet loss, or retransmissions.
  • Look for packets marked with issues (e.g., retransmissions or duplicate acknowledgments).
  • Use tools like the "Statistics" menu to view summaries and graphs.

Resource Links:
Wireshark User Guide
Wireshark Tutorial
Using Wireshark to Diagnose Network Problems

TASK 6: Docker

Docker can package an application and its dependencies in a virtual container that can run on any Linux, Windows, or macOS computer. This enables the application to run in a variety of locations, such as on-premises, in public (see decentralized computing, distributed computing, and cloud computing) or private cloud.

Task Outcome: Learn about Docker containers, images, and Dockerfiles. Complete the below Docker getting started course.

Resource Links:
Docker Get Started
What is Docker?
Docker Containers Overview

TASK 7: Dockerize ( without using yaml file )

Contanarize the web application which is developed in level 0. Create backend dockerfile and pull the database image ( frontend dockerfile if needed ) mount all the containers to the same bridge network.

Task Outcome: Discover and learn about Docker networking, volumes and storage.

Resource Links:
Docker Networking
Docker Volumes

TASK 8: Web Scraping and Automation - Flight Ticket Price Analysis

While planning a vacation, we all desire to spend the minimum on flight tickets, but it is not always possible. Occasionally, the prices go significantly down at odd timings. If you could understand them, it would mean you will get the chance of booking your tickets near your travel date.

Task Outcome: For this task, pick a website like Expedia or Kayak, fill in your details using an automated fashion, and then crawl the website to extract the price information.

Recommended Web Scraping Tool: Python’s Selenium is suitable for performing web scraping in this project. Additionally, you can use Python’s smtplib package to send an email containing the information that you extracted from the website to yourself.

Resource Links:
Scraping Air Travel Websites
Scraping Flight Prices with Selenium

TASK 9: Hashing

Hashing is the practice of transforming a given key or string of characters into another value for the purpose of security. Unlike standard encryption, hashing is always used for one-way encryption, and hashed values are very difficult to decode.

Task Outcome:

  • Create a simple program to store and verify user passwords securely.
  • Use a library like hashlib to hash passwords.
  • Store the hashed passwords in a dictionary or file.
  • Allow users to input their passwords for authentication.

Resource Links:
Store Password in Database

TASK 10: NMap

Nmap (Network Mapper) is a powerful and widely used open-source tool for network discovery and security auditing.

Task Outcome:

  • Learn how NMap works.
  • Scan the ports, Host, and OS and output these details in a file.
  • Analyze the results and report what you have found.

Resource Links:
NMap Manual
Zenmap Results


Level 4


Task 1 - Encryption

What are ciphers? Learn about caesar, Vigenere and substitution cipher, Why is this different from encryption techniques like SHA256? Learn about symmetric and asymmetric keys(Public and Private keys) (Optional : How is prime numbers used in RSA)

Task 2 - Hashing

Learn about Hashing ex:SHA256 algorithm ,Salting, Hash Tables (optional: Learn about MD5)

Task 3 - SSH

Write a script to SSH: Secure shell(SSH) is a network communication protocol that enables two computers to communicate . Write a script to SSH into a server and search the whole server for public keys/private keys and upload them to another server.

Task 4 - NMap

Learn how NMap works and Scan the ports, Host and OS and output these details in a file (optional: Analyze the results and report what you have found)

Task 5 - NMap Continued

Find out the use cases Wireshark and its working, Capture and Analyze Data Packs, Work with the various filters and statistics and report what you have found Reference: https://nmap.org/book/man.html https://www.wireshark.org/docs/

UVCE,
K. R Circle,
Bengaluru 01