└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Django Roadmap: 2 | 3 | ------------------- 4 | 5 | ## Part 1 (Development Basics): 6 | - Python virtual environment (pipenv, virtualenv, pyenv, poetry, uv (https://github.com/astral-sh/uv)) 7 | 8 | - Effective Python Book 9 | 10 | - VCS (Version Control System): 11 | Git and Github (commits, branches, merges, conflicts, stashing, pull requests) 12 | 13 | - IDE/Text Editor: 14 | Pycharm Pro or VS Code (shortcuts, formatting, integrations, plugins) 15 | 16 | - Networks Basics: 17 | IPs, Ports, HTTP/HTTPS, FTP, Webservers, NATs, SSH, ...etc 18 | 19 | - Linux 20 | 21 | - Using The Terminal/CMD/PowerShell 22 | 23 | # Part 2 (Databases) 24 | - RDB (PostgreSQL, MySQL/MariaDB, SQLite) 25 | - NoSQL (MongoDB, Redis) 26 | - ORM (Object-Relational Mapper) 27 | 28 | ## Part 3 (Software Engineering) 29 | - Conventional Commits 30 | - Trunk-based Development (https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development) 31 | - Change Logs 32 | - README 33 | - Documentation 34 | - Clean Code 35 | - Design Principles (SOLID, KISS, YAGNI, ...etc) 36 | - Design Patterns 37 | - Testing (Unit, Integration, Functional) 38 | - Pytest 39 | - TDD (Test-Driven Development) 40 | - BDD (Behavior-Driven Development) 41 | - DDD (Domain-Driven Design) 42 | - Issue Tracking (GitHub issues, JIRA, Redmine) Learn how to mention issue number in commit message 43 | - Continues Integration ([GitHub Actions](https://github.com/features/actions), Jenkins, Travis-CI) 44 | - pre-commit hooks (black, flake) 45 | - .env files and environmental variables 46 | - Logs, and Logging (For Example Sentry) 47 | 48 | 49 | ## Part 4 (Web) 50 | - HTML, CSS, SASS, Javascript, Bootstrap and JQuery 51 | - REST API 52 | - Swagger 53 | - ngrok 54 | - GraphQL 55 | - Browser dev tools (elements tab, console, network tab, performance) 56 | 57 | 58 | ## Part 5 (Theory and Tools): 59 | - Security (XSS, SQL Injection, CSRF, CORS, ...etc) 60 | - Symmetric Encryption and Asymmetric Encryption 61 | - SSH (Connecting, Generating Keys, Adding Hosts, ...etc) 62 | - Authentication (session, basic, token and jwt token) 63 | - Docker, docker-compose 64 | - Postman 65 | - Authentication vs Authorization 66 | 67 | 68 | ## Part 6 (Django) 69 | - Good Resources: 70 | - Two-Scoops with Django 71 | - Code With Mosh - Ultimate Django Series 72 | - Documentation 73 | - Django App Architecture and Organization 74 | - Important Packages 75 | - django-split-settings (https://sobolevn.me/2017/04/managing-djangos-settings) 76 | - django-allauth (social auth) 77 | - django-rest-auth (for drf) 78 | - django-braces (mixins) 79 | - django-compressor (for static files) 80 | - django-countries (country fields) 81 | - django-crispy-forms (render forms) 82 | - django-db-mailer 83 | - django-el-pagination 84 | - django-extensions (shell_plus, jobs, ...etc) 85 | - drf-extra-fields (Base64Fields) 86 | - django-filters 87 | - django-fsm (state machine) 88 | - django-jet (admin styles and template) 89 | - django-modeltranslation 90 | - django-newsletter 91 | - django-phonenumber-field 92 | - django-push-notifications 93 | - django-solo 94 | - django-treebeard 95 | - PyJWT 96 | - django-redis 97 | - django-wkhtmltopdf 98 | - django-import-export 99 | - sentry-sdk 100 | - django-ckeditor 101 | - geopy (locating) 102 | - django-rest-knox (auth) 103 | - drf-spectacular (swagger) 104 | - easy-thumbnails 105 | - django-oscar 106 | - django-oscar-api 107 | - django-oscar-invoices 108 | - django-debug-toolbar 109 | - pytest-django 110 | - pytest-cov 111 | 112 | - custom management commands 113 | - custom migrations 114 | - permissions 115 | - Django cookie-cutter 116 | - Django Rest Framework 117 | - Wagtail 118 | - Django cms 119 | 120 | ## Part 7 (Advanced Concepts & Devops & Production): 121 | - Elastic Stack 122 | - Caching with redis 123 | - Asynchronous programming (celery, rabbit mq, django rq, Kafka) 124 | - Linux cron jobs 125 | - AWS Basics (S3, EC2, Networks) 126 | - Gunicorn 127 | - Nginx 128 | - Microservices 129 | - Hosting (PAAS, SAAS, IAAS) 130 | - System Design (a good book is System Design Interview - An Insider's Guide) 131 | 132 | 133 | ## Part 8 (Front-End Optional Miscellaneous) 134 | - NPM 135 | - Webpack 136 | - SPA (Vue and Nuxt.js/React and Next.js/Angular) 137 | - PWA 138 | - TypeScript 139 | - ...etc 140 | --------------------------------------------------------------------------------