
Build a secure python-based English chatbot and deploy via CI/CD with Docker, integrating Sonarqube and OVS dependency check on AWS EC2 in a secure DevOps workflow.
Embed security from the first commit by integrating SDLC with a CI/CD pipeline using Jenkins, SonarQube, dependency checks, Docker, Streamlit and Bedrock-backed Python chatbot.
Master secure coding to protect user data and prevent code injection by applying security early in planning and development, including input validation, file type checks, and safe file handling.
Understand why secure coding matters in Python projects through the secure software development life cycle, and learn to validate input and prevent SQL injection with tools like Bandit.
Develop an AI spoken English chatbot that listens to speech and provides grammar corrected responses. Begin with the waterfall model and move to ci/cd devops with GitHub, Jenkins, AWS.
Explore the waterfall lifecycle for building a Python ai chatbot, covering requirement gathering, system design, implementation, testing, deployment, and maintenance, including drawbacks and ci/cd improvements.
Explain the drawbacks of the waterfall model, including no flexibility, late testing, high risk, no early feedback, and expensive fixes.
Integrate code frequently with GitHub and Jenkins, automate testing and security checks with SonarQube and OVS Dependency Check, and deploy to AWS, modernizing waterfall model into a secure, automated pipeline.
Develop a Python-based spoken chatbot with Streamlit frontend, featuring voice input capture, grammar correction, and response generation. Push the code to a GitHub repository to enable CI/CD and DevOps workflows.
Install Git Bash on Windows and set up your environment to push the chatbot's Python code to a GitHub repository using standard git commands.
Clone the git repository locally, copy the scripts, configure your git name and email, then run git status, git add ., git commit -m added files, and git push origin main.
Launch an Ubuntu ec2 instance in aws, configure a key pair, security group, and 20 gb storage, then install python dependencies and deploy the chatbot.
Update the system, install the Python venv package, create and activate a fresh virtual environment with python -m venv venv, and install dependencies inside it.
Collect and install the chatbot’s Python dependencies in a virtual environment by freezing them to a requirements file, upgrading pip, and installing with pip install -r.
Clone the full GitHub repository onto a VM and organize the scripts in a chatbot directory. Install the AWS CLI and grant the VM access to S3 and Amazon Bedrock.
Install and verify the AWS CLI v2 on Linux. Create an AWS user and credentials to access the AWS CLI for secure deployment workflows.
Create an IAM user in AWS, attach permissions, generate access keys, and configure the AWS CLI with the access key id, secret access key, region us-east-1, and JSON output.
Prepare a python ai chatbot deployment by updating the system, installing needed packages, configuring the aws cli, securing permissions, and opening port 8501 for the Streamlit UI.
Run a spoken ai chatbot with a Streamlit front end and back end, accessible via the web on port 8501, and note the waterfall setup while previewing ci/cd devops improvements.
Explore upgrading a spoken ai chatbot from waterfall to devops with ci/cd pipelines, GitHub, Jenkins, SonarQube, OVS dependency checks, and AWS test deployments for early feedback.
Set up a ci cd pipeline to deploy a python-based spoken ai chatbot with Docker, Sonarqube, and OVS dependency check, deploying to a dedicated vm.
Install docker on ubuntu by updating the system and adding the docker apt repository. Verify installation, fix docker.sock permissions, and prepare to pull the sonar cube image from Docker Hub.
pull and run the sonar cube LTS community image in a docker container, log into docker hub, and map port 9000 to access the web interface.
Access the SonarQube dashboard by enabling port 9000 in the VM security group and logging in with admin credentials.
Provision an Ubuntu virtual machine on AWS EC2 for a Jenkins server to automate the CI/CD process, then access via SSH and run system updates.
Configure an Ubuntu VM as a Jenkins server by installing Java 17, installing Jenkins, and verifying it runs; install Docker and allow the Ubuntu user to run Docker without sudo.
Access the Jenkins server via a web browser, verify it is running, open port 8080 in security group, unlock Jenkins, install plugins, create the first admin user, and view dashboard.
Install and manage Jenkins plugins, including Sonarqube, Eclipse, and Docker, plus Pipeline stage, then configure tools like JDK 17 and Sonarqube scanner.
Configure a Jenkins server with JDK 17, SonarQube scanner, OWASP, dependency check, and Docker to enable building, analyzing, and deploying in a secure CI/CD pipeline.
Configure a secure Jenkins and sonar cube integration to perform automated code quality checks during CI/CD by generating a token on sonar cube and storing it as a Jenkins credential.
Configure a SonarQube server in Jenkins by adding SonarQube with a name, URL, and existing token, then save to enable automatic static code analysis in the pipeline.
Enable the Jenkins user to run apt-get and dpkg via sudo without a password by editing the sudoers file, to support pipelines that install dependencies and clone repositories.
Automate the CI/CD pipeline by cloning the GitHub repository in a Jenkins pipeline project, writing a pipeline script, and validating outcomes with console logs.
Create and activate a virtual environment, upgrade pip, and install dependencies from the requirements.txt file to prepare a Python app for deployment in a pipeline.
Create a requirements.txt file listing libraries and dependencies required to deploy the Python-based AI chatbot, using pip freeze and commit changes to the GitHub repository for CI/CD readiness.
Run the pipeline to clone repository and install dependencies from requirements.txt; the build fails as the virtual environment lacks ensure pip, so the next lecture installs the package and reruns.
Troubleshoot a Jenkins pipeline by manually creating and activating a Python virtual environment, installing missing packages via pip, and updating requirements.txt to capture exact dependencies.
Integrate SonarQube code analysis into the Jenkins CI/CD pipeline to scan the Python chatbot for smells, bugs, and security vulnerabilities. Configure sonar-project.properties and ensure scanner readiness.
Install and configure sonar scanner on the Jenkins server to trigger analyses from Jenkins to SonarQube, including environment setup, downloading the binary, and validating installation with the sonar token.
Add a SonarQube code analysis stage to a Jenkins pipeline after the Python installation, using a SonarQube token credential to run the sonar scanner with the project.properties file.
Run the Jenkins pipeline to execute a SonarQube code analysis stage, troubleshoot a Java out-of-memory error, and learn how to fix build failures in the next lecture.
Fix and re-run the Jenkins pipeline by excluding irrelevant files in sonar.properties, enabling sonar cube to analyze meaningful code and surface bugs, vulnerabilities, and code smells.
Identify vulnerabilities in third-party Python packages with Owaves dependency check, integrate it into CI/CD pipelines via Jenkins or GitHub actions, and prevent insecure libraries from reaching production.
Integrate OWASP scan prerequisites with Webb's dependency check in Jenkins alongside Sonarqube, ensuring internet access to download the NVD and preparing Python, Node.js, and Java dependencies for secure CI/CD.
Explore integrating OWASP dependency check into a Jenkins pipeline for a Python project, using the plugin to scan dependencies and publish an XML report for vulnerability analysis.
Configure a Jenkins pipeline with the DP dependency check tool, run the build, and generate a complete XML report from the Owaves dependency check, viewable in stage and console logs.
Review an XML based vulnerability scan from a CI/CD OS dependency check, identify CVEs via the NVD, and confirm no critical vulnerabilities in Streamlit JS assets for developer handoff.
Learn to build and securely deploy a Python-based AI Spoken English Chatbot using real-world DevOps tools! This hands-on course guides you from secure coding basics to setting up CI/CD pipelines with Git, Jenkins, SonarQube, Docker, and OWASP. You'll manually deploy your chatbot on AWS EC2, then automate the process using industry-standard practices.
Perfect for developers, DevOps learners, and AI enthusiasts - gain practical experience in secure coding, automation, and chatbot deployment in one complete project-based course.
Introduction and Secure Coding: Basics
Getting Started: Course Objectives & Structure
Introduction to Secure Coding
Secure Coding: Why it matters?
Development Lifecycle: Waterfall Model to CI/CD Tools
Overview of AI Spoken English Chatbot
Phases of the Waterfall Model
Drawbacks of the Waterfall Model
How CI/CD Tools Improve Waterfall Model
Getting Started: Build Your AI Chatbot and Set Up Git Workflow
Develop AI Chatbot with Python
Git Bash Setup with Repo for Chatbot Code
Push Code from Local to Repository Using Git Bash
Deployment of a Python-Based AI Chatbot Using a Manual Approach (Without DevOps)
Deploy an Ubuntu EC2 instance in AWS
Create a Python virtual environment using venv
Install project dependencies using pip
Clone Git Repo on VM
Install AWS CLI tool
Create IAM User with Permissions
Allow Port 8501 for Streamlit UI
Run Chatbot and Access via Web
SonarQube Setup for Python Chatbot CI/CD Pipeline
Overview of the Project
Set Up Virtual Machine for SonarQube
Docker Installation for SonarQube Deployment
Run SonarQube in a Docker Container
Access SonarQube Dashboard via Port 9000
Jenkins Setup for Python Chatbot CI/CD Pipeline
Provision an Ubuntu Virtual Machine for Jenkins
Install Java, Docker & Jenkins on the Server
Access the Jenkins Web UI via Browser
Configuring Jenkins for DevOps and Tool Integration
Install and Manage Jenkins Plugins
Jenkins Tool Setup: JDK, SonarQube, OWASP & Docker
Configure Jenkins Authentication with SonarQube
Configure SonarQube Server in Jenkins
Enable Sudo for Jenkins User
Python Project Setup via Jenkins Pipeline
Cloning the GitHub Repository via Pipeline
Pipeline Stage: Install Python Requirements
Add Python Dependencies File to Repo
Run Pipeline & Check Logs
Fix Issues & Re-execute Pipeline
Integrating SonarQube with Jenkins CI/CD Pipeline
Intro to SonarQube and Properties File
Install SonarScanner on Jenkins Server
Add SonarQube Analysis Stage in CI/CD Pipeline
Run the Jenkins Pipeline
Fix and Re-run Jenkins Pipeline
Integrating OWASP Dependency-Check into Jenkins CI/CD Pipeline
Overview of OWASP Dependency-Check Tool
OWASP Scan: Prerequisites Checklist
Understanding Jenkins Pipeline for OWASP Scan
Trigger the Pipeline Job
OWASP Dependency Check Report Summary
CI/CD Deployment of Chatbot with Docker
Add Pipeline Stage: Deploy Chatbot using Docker
Understanding the Dockerfile for Chatbot Deployment
Docker Access for Jenkins & Port 8501
Optimize Docker Build with .dockerignore
Trigger and Monitor Jenkins Pipeline
Access the Chatbot in Your Browser
Troubleshooting and Finalizing Chatbot Deployment
Validation Error Encountered
Create IAM User with Required Permissions
Configure AWS Credentials in Jenkins
Re-run Jenkins Pipeline and Access AI Chatbot
Last lecture