cover photo

COURSEWORK

Jitha's CL-CY-001 course work. Lv 3

Jitha JayeshAUTHORACTIVE
work cover photo
This Report is yet to be approved by a Coordinator.

JITHA'S CL-CY LEVEL 2 REPORT

26 / 10 / 2025


TASK 1 : AWS Lambda

Objective: learn the basics of running code on AWS Lambda without provisioning or managing servers; further deploy a chat app using AWS Lambda

Work done:

Objective: To create a real-time chat application using AWS services, allowing multiple users to communicate through a WebSocket connection.
Steps Performed:

1)AWS WebSocket API Setup (API Gateway)

  • Created a WebSocket API in API Gateway.
  • Defined multiple routes: $connect, $disconnect, setName, sendMessage, $default.
  • Integrated each route with a single Lambda function (chatapp) (Lambda Proxy Integration enabled). 1 2)Lambda Function (chatapp) - server-side
  • Written in Node.js, using the AWS SDK for DynamoDB and ApiGatewayManagementApi.
  • This is the backend logic.
  • Responsibilities: Handle $connect and $disconnect to manage connections; Store active users in DynamoDB (ChatConnections); Handle setName to register user names; receive messages from one client and broadcast to all connected clients by handling sendMessage.
  • Implemented broadcast logic to send messages to all active WebSocket connections.
  • Error handling included for disconnected clients (GoneException) and invalid input. backend code 2 3)DynamoDB Table (ChatConnections)
  • Used to store active WebSocket connections and associated usernames.
  • Partition Key: connectionId (string).
  • Updated on connect, disconnect, and when a user sets their name. 3 4)HTML+CSS+JS - client-side
  • This is the frontend—what the user actually sees in the browser.
  • Responsibilities: Connect to the Lambda WebSocket endpoint; Let users type messages and send them; Display messages received from the backend.
  • Without this, users would have no interface to type messages, see chat, or set their names. frontend code 4 5)S3 Hosting
  • To make the client accessible on multiple devices: uploaded the HTML file to an S3 bucket (chats), enabled static website hosting and then Configured a bucket policy to allow public read access to objects.

6)Testing

  • Used multiple tabs on the same device to verify messaging functionality.
  • Verified connection and disconnection events are reflected in DynamoDB.
  • Used wscat CLI to simulate WebSocket connections and debug messages.
Outcome:
  • Successfully built a real-time chat app using AWS Lambda, DynamoDB, and API Gateway WebSocket API.
  • Real-time messaging works within the same network; S3 hosting allows access across devices.
  • Messages are properly broadcast to all connected clients, with user names displayed. 5 Jitha's AWS Chat App

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

Work done: Firstly I created a Pipeline job in Jenkins linked to a GitHub repository; Added a Jenkinsfile in the repo containing a simple pipeline code: Jenkinsfile code
Outcome: Pipeline ran successfully, demonstrating CI/CD workflow with version-controlled code.

1

Then I created another Pipeline job without linking to any repository; Pasted the Groovy pipeline script directly under Pipeline → Definition → Pipeline script.

2


Task 3 - SSH

In this task, firstly I studied the fundamental concepts of SSH, including its purpose, working mechanism, security features etc. To know the basics of ssh click here. Then to understand SSH practically, I set up a local test environment by configuring my sister's laptop as a remote system. This helped me gain hands-on experience with SSH key generation, SSH agent usage, secure remote login, execution of basic SSH operations like transferring file from one system to another etc. sshin sshout


TASK 4: Terraform

Objective:

To understand the basics of Terraform and to build, change, and destroy AWS infrastructure using Terraform.

Work Done:

Terraform is an open-source infrastructure-as-code (IaC) tool that enables you to create, manage, and update resources across cloud providers using configuration files. Terraform uses providers, which are plugins that allow it to communicate with the APIs of different cloud platforms. With Terraform, infrastructure can be provisioned, modified, and destroyed in a reproducible and automated manner.

In this task, I first set up the AWS provider, then created an S3 bucket and configured a security group. Next, I fetched the latest Amazon Linux 2 AMI and launched an EC2 instance using it. Finally, I executed the Terraform commands:

  • terraform init – to initialize the working directory,
  • terraform plan – to preview the changes Terraform would make in the infrastructure,
  • terraform apply – to apply the changes and create the resources, and
  • terraform destroy – to clean up all created resources and avoid ongoing charges. tf Full code

This task provided hands-on experience in managing AWS infrastructure using Terraform and understanding its workflow.


TASK 5: Wireshark

Wireshark is a free, open-source network protocol analyzer used to capture and inspect data packets traveling through a network. It helps in network troubleshooting, performance analysis, and detecting security issues by providing a detailed look at live or recorded network traffic.

Work Done:
Firstly I installed and configured Wireshark on my system, then chose my home Wi-Fi interface and captured live traffic. 1 Further I observed various protocols like TCP, UDP, HTTP etc.,6 used filters (tcp.analysis.retransmission, icmp, dns, etc.) to isolate key traffic, 2 diagnosed for packet retransmissions, duplicate ACKs, and checked latency (RTT), 5 created and analyzed an I/O Graph under Statistics → I/O Graphs to visualize data flow 3 4 and explored Statistics menus to study protocol hierarchy, conversations and endpoints.

Task 6 - Docker

Task objective - learn the Docker basics-containers, images, Dockerfiles etc.

Learnings and outcome - Docker basics

docker 1 2 3 4 5


Task 7 - Dockerize (without using yaml file)

Task objective - learn about Docker networking, volumes and storage; Contanarize the web application developed in level 0

Learnings and outcome - click here

71 72 73 74 75


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

Objective: pick a website like Google flights, fill in our details in an automated fashion, and then crawl the website to extract the price information using Selenium; further use Python’s smtplib package to send an email containing the extracted information
Work done:
Initially I tried with Kayak, Expedia, Agoda etc, but they didn't work. Finally I could scrape Google Flights with my tested code flightscrape.py

1 The extracted information was then saved in a csv file and also shared to my gmail 2 result 3


TASK 9: Hashing

The objective of this task was to understand the concept of hashing — the process of converting data (such as passwords) into a fixed-length string of characters (known as a hash value) using mathematical algorithms called hash functions. Unlike encryption, hashing is a one-way process, meaning that once data is hashed, it cannot be reversed to retrieve the original value.

The practical goal of this task was to build a simple program that securely stores and verifies user passwords using hashing.

My code - password_manager.py

The program demonstrates how hashing can be applied for basic user authentication and secure password management.

Key functionalities :

  • User Registration :

Allows a new user to register with a username and password.

The password is hashed using the hashlib library before being stored.

  • Secure Storage :

User credentials are saved in a JSON file (users.json), ensuring persistence across runs.

Only the hashed version of the password is stored — not the original text.

  • Login Verification :

When a user attempts to log in, the entered password is hashed again and compared with the stored hash to verify identity.

  • Delete User Option :

Provides the ability to remove a registered user’s data from the JSON file.

  • Exit Functionality :

Users can safely quit the program from the terminal. 1 2


Task 10 : NMap

The objective of this task was to learn the fundamentals of Nmap (Network Mapper) — a powerful and widely used open-source tool for network discovery, port scanning, and security auditing.

This task focused on understanding how Nmap operates, performing scans on hosts to identify open ports, services, and operating systems, and analyzing the collected data to interpret the network’s security posture.

1 2 3know about nmap scans


THANK YOU!!

UVCE,
K. R Circle,
Bengaluru 01