Full-Stack 2.0 Series

Full-Stack Django + Next.js
Training — Islamabad

Master Django REST Framework, GraphQL with Strawberry, Celery, and Django Channels on the backend — paired with Next.js 15 App Router and TypeScript on the frontend. Build production-grade full-stack applications from architecture to AWS deployment.

Core Duration
5 Weeks
👥
Seats / Group
5 Maximum
🎓
Level
Intermediate
📍
Location
Islamabad + Online
💰
Fee
Contact for Pricing
Stack Python 3.12+ Django 5.x DRF Strawberry GraphQL Celery Django Channels Next.js 15 TypeScript Tailwind v4 shadcn/ui PostgreSQL Redis Docker

🐍 Course Overview

Django is the most battle-tested web framework in Python — powering Instagram, Pinterest, Mozilla, Eventbrite, and thousands of SaaS products worldwide. Its "batteries-included" philosophy means authentication, admin, ORM, migrations, and security come built-in, letting teams move from idea to production faster than almost any other stack.

This course teaches Django as senior engineers use it in production — with Django REST Framework for REST APIs, Strawberry for GraphQL, Celery for background tasks, and Django Channels for real-time features. The Next.js 15 frontend consumes the Django API with full TypeScript type safety and a polished deployment pipeline on AWS.

💡 Why Django + Next.js in 2026

Django's ORM, admin panel, and built-in security save weeks of setup — the most productive Python backend framework for full-featured applications

Django REST Framework remains the industry standard for Python REST APIs — mature, well-documented, and supported by a vast ecosystem of extensions

Python's dominance in AI and data science makes Django the natural choice when a web app needs to sit alongside ML models or LLM integrations

Next.js 15 App Router with React Server Components is the most capable frontend framework — server-side rendering, streaming, and static generation in one system

Strong remote demand: Django engineers with modern REST API and Next.js skills are highly sought after at international product companies

Expanded Python ecosystem in 2026 — FastAPI, Litestar, and Django Ninja alternatives covered as optional add-on modules

📚 Curriculum — Module Breakdown

0
Week 1
Python 3.12+ & Django Foundations
16 topics

Not a Python introduction. Covers modern Python language features that Django production code depends on, and Django's architecture from the ground up — the parts most tutorial courses skip over.

  1. Python 3.12+ features in production: type hints, TypedDict, Protocol, dataclasses, structural pattern matching, and the walrus operator
  2. Type annotations in depth: generics, Self type, ParamSpec, TypeVarTuple, and annotating complex data structures
  3. Pydantic v2: fastest Python data validation — models, validators, computed fields, serialisation, and Django integration
  4. Async Python: asyncio fundamentals, async/await, event loops, and Django's async support
  5. Python packaging with uv: the fast modern replacement for pip and virtualenv
  6. pyproject.toml: standard project configuration, replacing setup.py and requirements.txt
  7. Django project structure: apps, settings split by environment, BASE_DIR, and manage.py
  8. Django settings best practices: django-environ, separate dev/staging/prod settings, SECRET_KEY management
  9. Django's MVT architecture: models, views, templates, URL dispatcher, and the request/response cycle
  10. Django apps: modular app architecture — creating apps, AppConfig, and AppConfig.ready()
  11. Django signals: pre_save, post_save, pre_delete, post_delete, and custom signals
  12. Custom management commands: writing commands for maintenance tasks and data migrations
  13. Testing with pytest-django: fixtures, the Django test client, and database transaction isolation
  14. factory_boy: generating test data with factory classes — replacing manual fixture files
  15. Ruff: the Rust-powered Python linter and formatter replacing flake8, isort, and black in one tool
  16. mypy with Django stubs: static type checking for Django projects — django-stubs and djangorestframework-stubs
1
Week 1–2
Django ORM & Database Layer
15 topics
+

Django's ORM in production depth — the patterns that keep queries fast, migrations safe, and data models clean at scale.

  1. Model design: field types, field options, Meta class, verbose names, and model inheritance (abstract, proxy, multi-table)
  2. Relationships: ForeignKey, OneToOneField, ManyToManyField — related_name, related_query_name, and the reverse manager
  3. Custom model managers and querysets: encapsulating common query logic in reusable manager methods
  4. QuerySet API in depth: filter, exclude, annotate, aggregate, values, select_related, prefetch_related, defer, only
  5. The N+1 problem: identifying it with django-debug-toolbar and solving with select_related and prefetch_related
  6. F expressions and Q objects: database-level arithmetic, complex filters, and avoiding race conditions
  7. Annotations and aggregations: Count, Sum, Avg, Min, Max, and custom database expressions
  8. Raw SQL in Django: Manager.raw(), connection.cursor(), and when raw SQL is the right choice
  9. Django migrations: creating, squashing, running — data migrations with RunPython, handling team conflicts
  10. Database transactions: atomic(), select_for_update(), and handling deadlocks
  11. Soft deletes: implementing deleted_at pattern with a custom manager
  12. PostgreSQL-specific features with psycopg3: JSONField, ArrayField, HStoreField, and full-text search
  13. Django model constraints: UniqueConstraint, CheckConstraint, and database-level data integrity
  14. Connection pooling with PgBouncer: managing PostgreSQL connections for high-traffic applications
  15. Database performance: EXPLAIN ANALYZE from Django, django-silk for query profiling, and index strategy
2
Week 2
Django REST Framework — Production APIs
16 topics
+

DRF thoroughly — from serialisers and viewsets to JWT authentication, permissions, rate limiting, and the advanced patterns enterprise APIs require.

  1. DRF architecture: APIView, GenericAPIView, mixins, and ViewSets — the full inheritance hierarchy
  2. Serialisers: ModelSerializer, Serializer, nested serialisers, SerializerMethodField, writable nested serialisers
  3. Serialiser validation: field-level, object-level validation, and UniqueTogetherValidator
  4. Routers: DefaultRouter, SimpleRouter, and custom routes with @action
  5. Filtering: django-filter integration — FilterSet classes, search fields, and ordering fields
  6. Pagination: PageNumberPagination, LimitOffsetPagination, CursorPagination
  7. Authentication: SessionAuthentication, TokenAuthentication, and JWT with djangorestframework-simplejwt
  8. JWT in depth: access tokens, refresh tokens, token rotation, token blacklisting, and custom claims
  9. Permissions: IsAuthenticated, IsAdminUser, custom permission classes, and object-level permissions
  10. Throttling: AnonRateThrottle, UserRateThrottle, and custom throttle policies
  11. API versioning: URL path versioning, namespace versioning, and header versioning
  12. Content negotiation: supporting multiple response formats from the same endpoint
  13. Exception handling: custom exception handlers and consistent error response format
  14. drf-spectacular: generating OpenAPI 3 documentation — schema customisation and Swagger UI
  15. django-cors-headers: CORS configuration for the Next.js frontend client
  16. Testing DRF APIs with pytest-django: APIClient, force_authenticate(), testing every endpoint
3
Week 2–3
GraphQL with Strawberry & Advanced API Patterns
14 topics
+

Strawberry is the modern, type-annotation-first GraphQL library for Python — replacing the older Graphene library. Covers the full stack from schema design to subscriptions.

  1. GraphQL fundamentals: schema definition, queries, mutations, subscriptions, and the N+1 problem
  2. Strawberry: Python-first GraphQL using dataclasses and type annotations — no string-based schemas
  3. Strawberry types: @strawberry.type, @strawberry.input, @strawberry.enum, and @strawberry.interface
  4. Resolvers: field resolvers, root value resolvers, and the info object for accessing request context
  5. Django integration: strawberry-graphql-django for generating types and resolvers from Django models
  6. DataLoader: solving the N+1 problem in GraphQL — batching and caching database lookups per request
  7. Authentication in Strawberry: accessing Django request and validating JWT tokens in resolvers
  8. Permissions in Strawberry: the @strawberry.permission_class decorator for field-level authorisation
  9. Mutations: creating, updating, and deleting data — input validation and error handling
  10. GraphQL subscriptions with Django Channels: real-time data over WebSockets
  11. File uploads in GraphQL: the multipart request spec and handling uploads in Strawberry
  12. Relay-style pagination: cursor-based pagination with the Connection type
  13. Testing Strawberry GraphQL: using the Strawberry test client for unit and integration testing
  14. REST vs GraphQL decision framework: when to expose REST, when GraphQL adds value, running both
4
Week 3
Authentication, Authorisation & Security
12 topics
+

Multi-layered security for production Django applications — from social login to fine-grained object permissions to full security hardening.

  1. Django authentication system: User model, AbstractUser vs AbstractBaseUser, and custom user models
  2. django-allauth: email/password, social OAuth (Google, GitHub, Apple), email verification, password reset
  3. djangorestframework-simplejwt: JWT for DRF — access/refresh token flow, claims, and blacklisting
  4. Social authentication for APIs: connecting OAuth providers to DRF consumed by Next.js
  5. Role-based access control: django-guardian for per-object permissions and custom RBAC with Django groups
  6. Row-level security: filtering querysets based on the authenticated user — the ownership pattern
  7. Multi-factor authentication: TOTP-based 2FA with django-otp and QR code generation
  8. API key authentication: generating and managing long-lived API keys for programmatic access
  9. Django security checklist: DEBUG=False enforcement, ALLOWED_HOSTS, HTTPS settings, CSRF, clickjacking protection
  10. SQL injection prevention: Django ORM parameterisation and safe raw query patterns
  11. django-axes: login attempt throttling and brute force protection
  12. Content Security Policy: django-csp for setting CSP headers on API responses
5
Week 3–4
Next.js 15 Frontend
17 topics
+

The Next.js frontend consumes Django REST Framework and GraphQL APIs — with TypeScript type safety, auto-generated API clients, and the full App Router architecture.

App Router & Data Fetching
  1. App Router architecture: server components, client components, layouts, loading states, and error boundaries
  2. TypeScript API client generation from drf-spectacular OpenAPI spec using openapi-typescript — shared types between Django and Next.js
  3. Data fetching in server components: async/await directly in components, fetch with cache options, and revalidation
  4. TanStack Query for client-side data: fetching, caching, background refetch, and optimistic updates against the Django API
  5. Apollo Client for GraphQL: connecting to the Strawberry Django API — queries, mutations, and subscriptions
  6. Authentication with NextAuth.js v5: credentials provider connecting to Django JWT, session management, and protected routes
  7. Next.js Middleware: edge authentication guards and redirecting unauthenticated users
  8. Server Actions for mutations: calling Django API endpoints from Server Actions — progressive enhancement
  9. Form handling: React Hook Form with Zod validation, sharing validation logic with Pydantic schemas
UI & Advanced Patterns
  1. Tailwind CSS v4: utility-first styling, the new CSS-based configuration, and component variants with cva()
  2. shadcn/ui: accessible component library built on Radix UI — the standard Next.js component system
  3. TanStack Table: server-side sorted, filtered, and paginated tables backed by DRF's pagination and filtering
  4. Real-time with Django Channels: consuming Django WebSocket connections from Next.js client components
  5. File uploads: drag-and-drop UI with progress tracking connecting to the Django file upload endpoint
  6. Internationalisation with next-intl: multi-language Next.js applications backed by Django's translation
  7. Metadata API: dynamic SEO from server components — Open Graph, Twitter cards, and JSON-LD
  8. Playwright E2E testing: full browser tests covering the complete Django + Next.js stack
6
Week 4–5
Celery, Channels, Caching & Production Deployment
28 topics
+

Production infrastructure that takes Django from working locally to running reliably under real traffic — asynchronous task processing, real-time features, caching, observability, and deployment.

Celery — Async Task Processing
  1. Celery architecture: workers, brokers (Redis, RabbitMQ), result backends, and the task lifecycle
  2. Defining tasks: @shared_task, @app.task, task options — retry, max_retries, countdown, eta
  3. Task chaining: chain(), group(), chord(), and canvas primitives for complex task workflows
  4. Periodic tasks with Celery Beat: cron-style scheduled tasks with django-celery-beat
  5. Celery Flower: real-time monitoring dashboard for workers and tasks
  6. Error handling: automatic retries, exponential backoff, dead-letter handling, and failure notifications
  7. Task priority queues: routing tasks to dedicated workers for SLA-sensitive workloads
Django Channels — Real-Time
  1. Channels architecture: ASGI server (Daphne/Uvicorn), channel layers, consumers, and routing
  2. WebSocket consumers: AsyncWebsocketConsumer — connect, receive, send, and disconnect lifecycle
  3. Channel layers with Redis: broadcasting messages to groups of connected clients
  4. Authentication in Channels: authenticating WebSocket connections using JWT tokens
  5. Real-time notifications: pushing database changes to connected Next.js clients via WebSockets
  6. GraphQL subscriptions over WebSockets: Strawberry subscriptions with Django Channels transport
  7. Presence tracking: tracking which users are online with channel groups and Redis
Caching & Observability
  1. Django cache framework: cache API, backends (Redis, Memcached), and cache key versioning
  2. django-redis: Redis cache backend — configuration, connection pooling, and serialisation
  3. Low-level cache API and DRF response caching with conditional request support
  4. Structured logging with structlog: JSON log output, bound loggers, and context variables
  5. OpenTelemetry Python SDK: automatic instrumentation for Django, DRF, Celery — exporting to Jaeger/Tempo
  6. Sentry for Django: error tracking, performance monitoring, and release tracking
Deployment
  1. ASGI deployment: Uvicorn + Gunicorn for both HTTP and WebSocket support
  2. Docker for Django: multi-stage Dockerfile — separate images for web, Celery worker, and Celery Beat
  3. Docker Compose: full local stack — Django, Next.js, PostgreSQL, Redis, Celery, Flower, and Nginx
  4. Static files and media: WhiteNoise for static files, S3-compatible storage for media
  5. Django deployment checklist: collectstatic, ALLOWED_HOSTS, SECRET_KEY rotation, and HTTPS enforcement
  6. GitHub Actions CI/CD: Ruff, mypy, pytest, Next.js build, Docker push, and deployment pipeline

🔌 Optional Add-On Modules

ℹ️
Each add-on is 2 additional weeks with a separate fee. Can be taken individually or combined with the core program.
Add-On 1
🟠

AWS Deployment Track

ECS Fargate for Django, RDS PostgreSQL, ElastiCache Redis, SQS, S3 with django-storages, Lambda with Mangum, CloudFront CDN, CDK IaC in Python, and full GitHub Actions CI/CD pipeline.

Add-On 2
🟡

Google Cloud Deployment

Cloud Run for Django, Cloud SQL PostgreSQL, Memorystore Redis, Cloud Storage, Cloud Tasks as Celery alternative, Secret Manager, Terraform, and Cloud Build CI/CD.

Add-On 3
🔵

Azure Deployment Track

Azure Container Apps, Azure Database for PostgreSQL, Azure Cache for Redis, Service Bus, Blob Storage, Key Vault, Bicep IaC, and Azure DevOps Pipelines CI/CD.

Add-On 4
🤖

AI Integration Track

LLM APIs from Django (OpenAI, Anthropic, Gemini), streaming responses via SSE, Celery-based AI processing, pgvector embeddings, RAG pipelines, LangChain, LlamaIndex, and AI-powered Django Admin.

Add-On 5

FastAPI Alternative Track

FastAPI with SQLAlchemy 2.0 async, Alembic migrations, OAuth2 JWT, WebSockets, SSE, TestClient testing, and a practical Django-to-FastAPI migration walkthrough.

Add-On 6
🔧

Litestar & Django Ninja

Django Ninja for FastAPI-style APIs without leaving Django. Litestar as a high-performance ASGI framework — DTOs, dependency injection, SQLAlchemy plugin, and the decision framework for 2026.

🛠️ Core Tools & Technologies

Backend
Python 3.12+Django 5.xDRFStrawberry GraphQLPydantic v2
Database
PostgreSQLpsycopg3django-pgvectorRedisdjango-redis
Auth & Security
simplejwtdjango-allauthdjango-guardiandjango-axes
Async & Real-time
Django ChannelsCeleryCelery BeatDaphneUvicorn
Frontend
Next.js 15React 19TypeScriptTailwind v4shadcn/uiTanStack QueryApollo ClientNextAuth.js v5
DevOps & Testing
DockerGitHub Actionspytest-djangoPlaywrightRuffmypySentry

📅 Schedule & Timings

📌
Choose one group based on your availability. Maximum 5 candidates per group to ensure individual attention and hands-on support.

Weekday Groups

Group 1Mon–Wed · 10 AM – 1 PM
Group 2Mon–Wed · 4 PM – 7 PM

Weekend Groups

Group 3Sat & Sun · 10 AM – 2 PM
Group 4Sat & Sun · 4 PM – 8 PM

📍 Location: In-house training in Islamabad  ·  📱 Online option available for out-of-city participants

Prerequisites

Comfortable writing Python — functions, classes, decorators, and list comprehensions
Basic understanding of HTTP, REST APIs, and JSON
Familiar with SQL and relational database concepts
Basic JavaScript / TypeScript knowledge helpful for the Next.js sections
No prior Django or Next.js experience required

🎯 Who This Is For

Python developers transitioning into full-stack web development
Data engineers and ML engineers wanting to expose models via a web API and frontend
Developers moving from Flask or older Django versions to modern Django 5.x + DRF
Engineers targeting remote Python backend or full-stack roles
Developers building data-driven SaaS products with a Python backend