Django Tutorial: Prerequisites
Welcome to the Chanx Django tutorial! This hands-on tutorial will guide you through building a real-world chat application with Django Channels and Chanx, covering:
Real-time chat functionality
AI assistants/agent chat system
Notification system
Background task processing with WebSocket notifications
By the end of this tutorial, you'll understand how to use Chanx to create structured, type-safe WebSocket applications with automatic documentation.
What You'll Learn
Setting up Chanx with Django Channels
Creating WebSocket consumers with type-safe message handling
Using decorators for automatic message routing
Broadcasting messages to groups
Handling channel layer events
Generating AsyncAPI documentation
Testing WebSocket consumers
Prerequisites
Before starting this tutorial, you should have:
Required Knowledge:
Basic understanding of Python and async/await
Familiarity with Django web framework
Basic understanding of WebSockets (what they are and why they're useful)
Some knowledge of Django Channels (recommended but not required - you'll learn as you go)
Required Tools:
Docker - For running Redis (used by Django Channels for the channel layer)
uv - Python package installer (https://docs.astral.sh/uv/)
Git - For cloning the tutorial repository
Installing Prerequisites
If you don't have these tools installed:
Install Docker:
Visit https://docs.docker.com/get-docker/ and follow the instructions for your operating system.
Install uv:
# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Getting the Tutorial Code
The tutorial uses a Git repository with multiple branches representing different checkpoints. This allows you to:
Start from any checkpoint
Compare your code with the reference implementation
Reset to a checkpoint if you get stuck
Clone the Repository:
git clone https://github.com/huynguyengl99/chanx-django-tutorial.git
cd chanx-django-tutorial
Available Branches:
main- Full implementation (complete tutorial result)cp0- Starting point of tutorialcp1- Install and setup Chanx packagecp2- Implement chat WebSocketcp3- Implement assistants WebSocketcp4- Implement system WebSocket (notifications)cp5- Add integration tests for all WebSocket endpoints
Switching Between Checkpoints:
At any time during the tutorial, you can reset to a specific checkpoint:
# Reset to checkpoint 0 (starting point)
git checkout cp0
git reset --hard
# Reset to checkpoint 1
git checkout cp1
git reset --hard
# View the final result
git checkout main
Tutorial Structure
Each section of this tutorial corresponds to a checkpoint (branch) in the repository:
Part 1: Setup Chanx - Install Chanx, configure routing, and view AsyncAPI docs
Part 2: Chat WebSocket - Build a real-time chat room with broadcasting
Part 3: Assistants WebSocket - Create an AI chat system with streaming responses
Part 4: System WebSocket - Implement a notification system
Part 5: Integration Tests - Add comprehensive tests for all WebSocket endpoints
Next Steps
Ready to start? Head to Part 1 to begin setting up Chanx: