- 1. Introduction to Backend Development ›
- 2. How the Web Works ›
- 3. Development Environment ›
- 4. Programming Fundamentals ›
- 5. Python for Backend Development ›
- 6. Introduction to Web Backends ›
- 7. REST APIs ›
- 8. FastAPI ›
- 9. Databases ›
- 10. SQL ›
- 11. PostgreSQL ›
- 12. ORM and Database Integration ›
- 13. Authentication ›
- 14. Authorization ›
- 15. Backend Security ›
- 16. Caching ›
- 17. Background Processing ›
- 18. Email ›
- 19. Testing ›
- 20. Logging and Monitoring ›
- 21. Docker ›
- 22. Web Servers and Reverse Proxies ›
- 23. Deployment ›
- 24. CI/CD ›
- 25. Backend Architecture ›
- 26. Performance and Scalability ›
- 27. Advanced API Development ›
- 28. Production Backend Engineering ›
- 29. Project 1: Task Management API ›
- 30. Project 2: Authentication System ›
- 31. Project 3: E-Commerce Backend ›
- 32. Final Project: Production Backend ›
- 33. Backend Developer Roadmap ›
29. Project 1: Task Management API
Views: 12
Where to Move
Move chapter:
- β° 1. Introduction to Backend Development
- β° 1.1. What Is Backend Development?
- β° 1.2. Frontend vs Backend
- β° 1.3. How Web Applications Work
- β° 1.4. Client-Server Architecture
- β° 1.5. Request-Response Cycle
- β° 1.6. Static vs Dynamic Websites
- β° 1.7. Backend Developer Responsibilities
- β° 1.8. Backend Development Roadmap
-
- β° 2. How the Web Works
- β° 2.1. The Internet and the Web
- β° 2.2. IP Addresses
- β° 2.3. Domain Names
- β° 2.4. DNS
- β° 2.5. Ports
- β° 2.6. TCP/IP Basics
- β° 2.7. HTTP and HTTPS
- β° 2.8. HTTP Requests
- β° 2.9. HTTP Responses
- β° 2.10. HTTP Methods
- β° 2.11. HTTP Status Codes
- β° 2.12. HTTP Headers
- β° 2.13. Cookies
- β° 2.14. Sessions
- β° 2.15. What Happens When You Enter a URL?
-
- β° 3. Development Environment
- β° 3.1. Choosing an Operating System
- β° 3.2. Linux Basics for Backend Developers
- β° 3.3. Command Line Basics
- β° 3.4. Environment Variables
- β° 3.5. Installing Development Tools
- β° 3.6. Code Editors and IDEs
- β° 3.7. Git
- β° 3.8. GitHub and GitLab
- β° 3.9. Creating Your First Repository
- β° 3.10. Branches and Commits
- β° 3.11. Basic Git Workflow
-
- β° 4. Programming Fundamentals
- β° 4.1. Variables and Data Types
- β° 4.2. Operators
- β° 4.3. Conditions
- β° 4.4. Loops
- β° 4.5. Functions
- β° 4.6. Data Structures
- β° 4.7. Error Handling
- β° 4.8. Modules and Packages
- β° 4.9. File Handling
- β° 4.10. Object-Oriented Programming
- β° 4.11. Classes and Objects
- β° 4.12. Inheritance and Composition
- β° 4.13. Clean Code Principles
-
- β° 5. Python for Backend Development
- β° 5.1. Introduction to Python
- β° 5.2. Installing Python
- β° 5.3. Virtual Environments
- β° 5.4. pip and Package Management
- β° 5.5. Python Project Structure
- β° 5.6. Functions and Type Hints
- β° 5.7. Classes and Dataclasses
- β° 5.8. Exceptions
- β° 5.9. Working with Files
- β° 5.9.1. File Downloads
- β° 5.9.2. File Validation
- β° 5.9.3. Image Uploads
- β° 5.9.4. Local File Storage
- β° 5.9.5. Object Storage
- β° 5.9.6. S3-Compatible Storage
- β° 5.9.7. Presigned URLs
- β° 5.9.8. Secure File Handling
-
- β° 5.10. JSON
- β° 5.11. Date and Time
- β° 5.12. Logging
- β° 5.13. Configuration
- β° 5.14. Environment Variables
- β° 5.15. Async Programming
- β° 5.16. Python Backend Best Practices
-
- β° 6. Introduction to Web Backends
- β° 6.1. Building a Simple Web Server
- β° 6.2. Routing
- β° 6.3. URL Parameters
- β° 6.4. Query Parameters
- β° 6.5. Request Bodies
- β° 6.6. Form Data
- β° 6.7. JSON Requests
- β° 6.8. Returning Responses
- β° 6.9. Templates
- β° 6.10. Static Files
- β° 6.11. Middleware
- β° 6.12. Application Configuration
-
- β° 7. REST APIs
- β° 7.1. What Is an API?
- β° 7.2. What Is REST?
- β° 7.3. Resources and Endpoints
- β° 7.4. RESTful URL Design
- β° 7.5. HTTP Methods in REST
- β° 7.6. GET Requests
- β° 7.7. POST Requests
- β° 7.8. PUT Requests
- β° 7.9. PATCH Requests
- β° 7.10. DELETE Requests
- β° 7.11. Request Validation
- β° 7.12. Response Models
- β° 7.13. HTTP Status Codes
- β° 7.14. Error Responses
- β° 7.15. Pagination
- β° 7.16. Filtering
- β° 7.17. Sorting
- β° 7.18. Searching
- β° 7.19. API Versioning
- β° 7.20. API Documentation
- β° 7.21. OpenAPI and Swagger
-
- β° 8. FastAPI
- β° 8.1. Introduction to FastAPI
- β° 8.2. Routes and Path Operations
- β° 8.3. Path Parameters
- β° 8.4. Pydantic Models
- β° 8.5. Data Validation
- β° 8.6. Dependency Injection
- β° 8.7. Exception Handling
- β° 8.8. Background Tasks
- β° 8.9. File Uploads
- β° 8.10. Async Endpoints
- β° 8.11. FastAPI Project Structure
- β° 8.12. Building a Complete REST API
-
- β° 9. Databases
- β° 9.1. Introduction to Databases
- β° 9.2. Relational vs NoSQL Databases
- β° 9.3. Tables, Rows, and Columns
- β° 9.4. Primary Keys
- β° 9.5. Foreign Keys
- β° 9.6. Relationships
- β° 9.7. One-to-One Relationships
- β° 9.8. One-to-Many Relationships
- β° 9.9. Many-to-Many Relationships
- β° 9.10. Database Schema Design
- β° 9.11. Normalization
- β° 9.12. Indexes
- β° 9.13. Transactions
- β° 9.14. ACID Properties
-
- β° 10. SQL
- β° 10.1. Introduction to SQL
- β° 10.2. CREATE
- β° 10.3. INSERT
- β° 10.4. SELECT
- β° 10.5. UPDATE
- β° 10.6. DELETE
- β° 10.7. WHERE
- β° 10.8. ORDER BY
- β° 10.9. GROUP BY
- β° 10.10. Aggregate Functions
- β° 10.11. JOINs
- β° 10.12. Subqueries
- β° 10.13. Constraints
- β° 10.14. Indexes
- β° 10.15. Transactions
- β° 10.16. Common Table Expressions
- β° 10.17. SQL Performance Basics
-
- β° 11. PostgreSQL
- β° 11.1. Introduction to PostgreSQL
- β° 11.2. Installing PostgreSQL
- β° 11.3. Creating Databases
- β° 11.4. Users and Roles
- β° 11.5. Permissions
- β° 11.6. PostgreSQL Data Types
- β° 11.7. Constraints
- β° 11.8. Indexes
- β° 11.9. Transactions
- β° 11.10. JSON Data
- β° 11.11. Backup and Restore
- β° 11.12. PostgreSQL Performance Basics
-
- β° 12. ORM and Database Integration
- β° 12.1. What Is an ORM?
- β° 12.2. SQLAlchemy
- β° 12.3. Models
- β° 12.4. Database Sessions
- β° 12.5. Creating Records
- β° 12.6. Reading Records
- β° 12.7. Updating Records
- β° 12.8. Deleting Records
- β° 12.9. Relationships
- β° 12.10. Queries
- β° 12.11. Transactions
- β° 12.12. Connection Pooling
- β° 12.13. Database Migrations
- β° 12.14. Alembic
- β° 12.15. Repository Pattern
-
- β° 13. Authentication
- β° 13.1. Authentication vs Authorization
- β° 13.2. Password Storage
- β° 13.3. Password Hashing
- β° 13.4. Registration
- β° 13.5. Login
- β° 13.6. Tokens
- β° 13.7. JSON Web Tokens
- β° 13.8. Access Tokens
- β° 13.9. Refresh Tokens
- β° 13.10. OAuth 2.0
- β° 13.11. OpenID Connect
- β° 13.12. Social Login
- β° 13.13. Logout
- β° 13.14. Password Reset
- β° 13.15. Email Verification
- β° 13.16. Multi-Factor Authentication
-
- β° 14. Authorization
- β° 14.1. Users and Permissions
- β° 14.2. Role-Based Access Control
- β° 14.3. Permission-Based Access Control
- β° 14.4. Protecting API Endpoints
- β° 14.5. Admin Permissions
- β° 14.6. Resource Ownership
- β° 14.7. Authorization Best Practices
-
- β° 15. Backend Security
- β° 15.1. Introduction to Web Security
- β° 15.2. HTTPS and TLS
- β° 15.3. SQL Injection
- β° 15.4. Cross-Site Scripting
- β° 15.5. Cross-Site Request Forgery
- β° 15.6. CORS
- β° 15.7. Authentication Attacks
- β° 15.8. Brute-Force Protection
- β° 15.9. Rate Limiting
- β° 15.10. Input Validation
- β° 15.11. Secure Password Storage
- β° 15.12. Secrets Management
- β° 15.13. Secure Cookies
- β° 15.14. Security Headers
- β° 15.15. File Upload Security
- β° 15.16. Dependency Vulnerabilities
- β° 15.17. OWASP Top 10
-
- β° 16. Caching
- β° 16.1. Why Caching Matters
- β° 16.2. Application Caching
- β° 16.3. Redis
- β° 16.3.1. Introduction to Redis
- β° 16.3.2. Installing Redis
- β° 16.3.3. Keys and Values
- β° 16.3.4. Expiration
- β° 16.3.5. Distributed Locks
-
- β° 16.4. Cache Keys
- β° 16.5. Cache Invalidation
- β° 16.6. Caching Database Queries
- β° 16.7. Distributed Caching
-
- β° 17. Background Processing
- β° 17.1. Synchronous vs Asynchronous Tasks
- β° 17.2. Background Jobs
- β° 17.3. Message Queues
- β° 17.4. Celery
- β° 17.5. Redis as a Message Broker
- β° 17.6. Scheduled Tasks
- β° 17.7. Retry Strategies
- β° 17.8. Handling Failed Jobs
- β° 17.9. Email Jobs
- β° 17.10. Long-Running Tasks
-
- β° 18. Email
- β° 18.1. How Email Works
- β° 18.2. SMTP
- β° 18.3. Sending Emails
- β° 18.4. HTML Emails
- β° 18.5. Transactional Emails
- β° 18.6. Password Reset Emails
- β° 18.7. Background Email Delivery
- β° 18.8. Email Delivery Best Practices
-
- β° 19. Testing
- β° 19.1. Why Backend Testing Matters
- β° 19.2. Unit Testing
- β° 19.3. Integration Testing
- β° 19.4. API Testing
- β° 19.5. pytest
- β° 19.6. Fixtures
- β° 19.7. Mocking
- β° 19.8. Testing Databases
- β° 19.9. Testing Authentication
- β° 19.10. Testing FastAPI
- β° 19.11. Test Coverage
- β° 19.12. Automated Testing
-
- β° 20. Logging and Monitoring
- β° 20.1. Application Logging
- β° 20.2. Log Levels
- β° 20.3. Structured Logging
- β° 20.4. Request Logging
- β° 20.5. Error Logging
- β° 20.6. Metrics
- β° 20.7. Health Checks
- β° 20.8. Monitoring
- β° 20.9. Prometheus
- β° 20.10. Grafana
- β° 20.11. Alerting
- β° 20.12. Error Tracking
- β° 20.13. Observability Basics
-
- β° 21. Docker
- β° 21.1. Introduction to Containers
- β° 21.2. Docker Architecture
- β° 21.3. Images
- β° 21.4. Containers
- β° 21.5. Dockerfiles
- β° 21.6. Building Images
- β° 21.7. Running Containers
- β° 21.8. Volumes
- β° 21.9. Networks
- β° 21.10. Docker Compose
- β° 21.11. FastAPI with Docker
- β° 21.12. PostgreSQL with Docker
- β° 21.13. Redis with Docker
- β° 21.14. Multi-Container Applications
- β° 21.15. Production Docker Best Practices
-
- β° 22. Web Servers and Reverse Proxies
- β° 22.1. Application Servers
- β° 22.2. Uvicorn
- β° 22.3. Gunicorn
- β° 22.4. Reverse Proxies
- β° 22.5. Nginx
- β° 22.6. Traefik
- β° 22.7. HTTPS
- β° 22.8. TLS Certificates
- β° 22.9. Let's Encrypt
- β° 22.10. Load Balancing
-
- β° 23. Deployment
- β° 23.1. Development vs Production
- β° 23.2. Preparing an Application for Production
- β° 23.3. Linux Server Setup
- β° 23.4. Deploying with Docker
- β° 23.5. Environment Configuration
- β° 23.6. Managing Secrets
- β° 23.7. HTTPS Configuration
- β° 23.8. Production Logging
- β° 23.9. Backups
- β° 23.10. Zero-Downtime Deployment
- β° 23.11. Rollbacks
-
- β° 24. CI/CD
- β° 24.1. Introduction to CI/CD
- β° 24.2. Continuous Integration
- β° 24.3. Continuous Delivery
- β° 24.4. Continuous Deployment
- β° 24.5. CI/CD Pipelines
- β° 24.6. GitHub Actions
- β° 24.7. GitLab CI/CD
- β° 24.8. Building Docker Images
- β° 24.9. Container Registries
- β° 24.10. Deployment Pipelines
- β° 24.11. Staging Environments
- β° 24.12. Production Environments
- β° 24.13. Rollback Strategies
-
- β° 25. Backend Architecture
- β° 25.1. Monolithic Architecture
- β° 25.2. Modular Monoliths
- β° 25.3. Microservices
- β° 25.4. Layered Architecture
- β° 25.5. Service Layer
- β° 25.6. Separation of Concerns
- β° 25.7. Domain-Driven Design Basics
- β° 25.8. Event-Driven Architecture
- β° 25.9. Choosing an Architecture
-
- β° 26. Performance and Scalability
- β° 26.1. Understanding Backend Performance
- β° 26.2. CPU-Bound vs I/O-Bound Work
- β° 26.3. Asynchronous Programming
- β° 26.4. Database Optimization
- β° 26.5. Query Optimization
- β° 26.6. Indexing
- β° 26.7. Load Balancing
- β° 26.8. Horizontal Scaling
- β° 26.9. Vertical Scaling
- β° 26.10. Stateless Applications
- β° 26.11. Performance Testing
- β° 26.12. Load Testing
-
- β° 27. Advanced API Development
- β° 27.1. WebSockets
- β° 27.2. Server-Sent Events
- β° 27.3. GraphQL
- β° 27.4. Webhooks
- β° 27.5. Idempotency
- β° 27.6. API Rate Limiting
- β° 27.7. API Keys
- β° 27.8. API Gateways
- β° 27.9. Distributed APIs
- β° 27.10. Real-Time Applications
-
- β° 28. Production Backend Engineering
- β° 28.1. Configuration Management
- β° 28.2. Database Backups
- β° 28.3. Disaster Recovery
- β° 28.4. Graceful Shutdown
- β° 28.5. Fault Tolerance
- β° 28.6. Circuit Breakers
- β° 28.7. High Availability
- β° 28.8. Monitoring Production Systems
- β° 28.9. Incident Response
-
- β° 29. Project 1: Task Management API
- β° 29.1. Project Requirements
- β° 29.2. Project Structure
- β° 29.3. Database Design
- β° 29.4. CRUD Operations
- β° 29.5. Validation
-
- β° 30. Project 2: Authentication System
- β° 30.1. User Registration
- β° 30.2. JWT Authentication
- β° 30.3. Role-Based Authorization
- β° 30.4. Security Testing
-
- β° 31. Project 3: E-Commerce Backend
- β° 31.1. Architecture
- β° 31.2. User Management
- β° 31.3. Product Management
- β° 31.4. Categories
- β° 31.5. Shopping Cart
- β° 31.6. Orders
- β° 31.7. Inventory
- β° 31.8. Payments
- β° 31.9. Admin API
-
- β° 32. Final Project: Production Backend
- β° 32.1. Planning the Application
- β° 32.2. Designing the Architecture
- β° 32.3. Designing the Database
- β° 32.4. Building the REST API
- β° 32.5. Authentication and Authorization
- β° 32.6. PostgreSQL Integration
- β° 32.7. Redis Integration
- β° 32.8. Background Workers
- β° 32.9. File Storage
- β° 32.10. Dockerizing the Application
- β° 32.11. CI/CD Pipeline
- β° 32.12. Production Deployment
- β° 32.13. HTTPS and Domain Setup
- β° 32.14. Performance Optimization
- β° 32.15. Security Review
- β° 32.16. Documentation
-
- β° 33. Backend Developer Roadmap
- β° 33.1. What You Should Know Now
- β° 33.2. Building a Portfolio
- β° 33.3. Creating Backend Projects
- β° 33.4. Contributing to Open Source
- β° 33.5. Preparing for Backend Interviews
- β° 33.6. Backend Interview Questions
- β° 33.7. Database Interview Questions
- β° 33.8. API Interview Questions
- β° 33.9. Linux and Docker Interview Questions
- β° 33.10. Where to Go Next
-
KAHIBARO