Backend Development
Server-side development with Node.js, NestJS, Spring Boot, Python backends, sockets, Nginx and payment integration.
Module 2: Flask & Jinja2 - Lightweight Web Apps
Flask is a "micro-framework" that provides the essentials for building web applications. Combined with Jinja2 templates, it's perfect for server-side rendered websites.
Read article →Module 0.5: Jinja2 - The Python Template Engine
Jinja2 is a fast, expressive, and extensible templating engine for Python. It is the default engine for Flask and can be used with many other frameworks (including FastAPI and Django).
Read article →Advanced Jinja2 Features
Take your templating skills to the next level with these advanced concepts.
Read article →Module 0: Understanding RESTful APIs
Before diving into code, it is essential to understand the architectural style that powers most of the modern web: REST (Representational State Transfer).
Read article →RESTful API Best Practices & Examples
This guide provides practical examples and advanced concepts for building high-quality REST APIs.
Read article →Introduction to Networks
A network is a collection of interconnected devices (computers, servers, routers, etc.) that can communicate with each other and share resources. Networks enable data exchange between devices regardless of their physical
Read article →OSI Model and TCP/IP Stack
The OSI model is a 7-layer conceptual framework that standardizes the functions of a telecommunication or computing system.
Read article →IP Addresses and Ports
An IP (Internet Protocol) address uniquely identifies a device on a network. It's like a postal address for your computer.
Read article →Network Protocols Overview
A protocol is a set of rules that defines how devices communicate over a network. It specifies: How to format data How to establish connections How to handle errors How to terminate communication
Read article →What are Sockets?
A socket is an endpoint for communication between two programs running on a network. It's a software abstraction that provides an interface between an application and the network protocol stack (TCP/IP).
Read article →Socket Types and Domains
The domain (also called address family) specifies the address format and communication scope.
Read article →Socket API Functions
The Socket API provides a set of functions to create, configure, and use sockets. This module covers the core functions used in socket programming.
Read article →Socket Lifecycle
Understanding the socket lifecycle is crucial for writing robust network applications. This module explains the complete lifecycle from creation to termination.
Read article →TCP Server Implementation
TCP servers are connection-oriented and provide reliable, ordered communication. This module teaches you how to build a TCP server from scratch.
Read article →TCP Client Implementation
TCP clients initiate connections to servers and communicate over reliable, ordered connections. This module covers building TCP clients.
Read article →Handling Multiple Clients
A basic TCP server handles only one client at a time. Real-world servers need to handle multiple clients concurrently. This module covers different approaches.
Read article →TCP Error Handling
Robust error handling is crucial for production socket applications. This module covers common errors and how to handle them properly.
Read article →UDP Server Implementation
UDP (User Datagram Protocol) is connectionless and provides fast, low-overhead communication. This module covers building UDP servers.
Read article →UDP Client Implementation
UDP clients are simpler than TCP clients since no connection is required. This module covers building UDP clients.
Read article →UDP vs TCP Comparison
Understanding when to use UDP vs TCP is crucial for effective socket programming. This module provides a detailed comparison.
Read article →Byte Ordering (Endianness)
Byte ordering, or endianness, determines how multi-byte values are stored in memory. This is crucial for network communication where different systems may use different byte orders.
Read article →Address Structures
Socket addresses are represented differently in different languages and APIs. This module explains address structures and how to work with them.
Read article →Exercise 1: Echo Server
Build a TCP echo server that receives messages from clients and sends them back.
Read article →Exercise 2: Chat Application
Build a multi-user chat server where clients can send messages that are broadcast to all connected clients.
Read article →