INFO253B Web Architecture Labs

This repository serves as the base for all the demo and practice code that we do in the Friday Labs

Lab 1 - Intro to Python Programming (I)

Topics we covered: 1. Basics about Python as a programming language 2. Variables and Operators 3. Conditionals 4. Loops and Iterators 5. Functions

Lab 2 - Intro to Python Programming (II) and Intro to Flask

Topics we covered: 1. Classes and Objects in Python 2. Setting up Flask, GitHub and VS Code 3. Creating our first server

Lab 3 - Deep dive into APIs and POSTMAN, Connecting SQL with Flask and customizing endpoints

Topics we covered: 1. Anatomy of an API and HTTP Methods - GET, PUT, POST, DELETE (CRUD) 2. Using POSTMAN for API development and testing 3. Connecting a SQLlite database with Flask 4. Creating a web server with 4a. POST endpoint - Insert data into the SQL db 4b. GET endpoint - Get all data from the SQL db 4c. GET BY ID endpoint - Get data based on a particular ID from the DB

Lab 4 - Understanding the various methods to get data using API requests

Topics we covered: 1. Get data using URL args/params 2. Get data using form input 3. Get data using file uploads

Lab 5 - We dive deeper into Docker and Docker Compose

Topics we covered: 1. VMs v Containers 2. Creating a Dockerfile for our Docker Image 3. Running multiple docker containers 4. Enabling the containers to talk to each other 5. Using the containers with POSTMAN

Lab 6 - Asynchronous Task Queues

Topics we covered: 1. Why do we need Async Queues? 2. What is under the hood? (High level brief) 3. Creating a Flask application that uses a Queue and runs it using Docker

Lab 7 - Basics of NoSQL Databases

Topics we covered: 1. Setting up a MongoDB cloud cluster on Atlas 2. Connecting to the cloud cluster using the webapp 3. Interacting with a NoSQL database using our webserver