https://github.com/HHHMHA/django-roadmap
A complete roadmap for learning django backend
https://github.com/HHHMHA/django-roadmap
django django-rest-framework learn python resources roadmap testing
Last synced: 3 months ago
JSON representation
A complete roadmap for learning django backend
- Host: GitHub
- URL: https://github.com/HHHMHA/django-roadmap
- Owner: HHHMHA
- Created: 2022-02-24T20:23:22.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-19T17:02:38.000Z (over 1 year ago)
- Last Synced: 2024-08-08T23:20:39.042Z (about 1 year ago)
- Topics: django, django-rest-framework, learn, python, resources, roadmap, testing
- Homepage:
- Size: 19.5 KB
- Stars: 643
- Watchers: 10
- Forks: 117
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Django Roadmap:
-------------------
## Part 1 (Development Basics):
- Python virtual environment (pipenv, virtualenv, pyenv, poetry, uv (https://github.com/astral-sh/uv))- Effective Python Book
- VCS (Version Control System):
Git and Github (commits, branches, merges, conflicts, stashing, pull requests)
- IDE/Text Editor:
Pycharm Pro or VS Code (shortcuts, formatting, integrations, plugins)
- Networks Basics:
IPs, Ports, HTTP/HTTPS, FTP, Webservers, NATs, SSH, ...etc
- Linux- Using The Terminal/CMD/PowerShell
# Part 2 (Databases)
- RDB (PostgreSQL, MySQL/MariaDB, SQLite)
- NoSQL (MongoDB, Redis)
- ORM (Object-Relational Mapper)
## Part 3 (Software Engineering)
- Conventional Commits
- Trunk-based Development (https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development)
- Change Logs
- README
- Documentation
- Clean Code
- Design Principles (SOLID, KISS, YAGNI, ...etc)
- Design Patterns
- Testing (Unit, Integration, Functional)
- Pytest
- TDD (Test-Driven Development)
- BDD (Behavior-Driven Development)
- DDD (Domain-Driven Design)
- Issue Tracking (GitHub issues, JIRA, Redmine) Learn how to mention issue number in commit message
- Continues Integration ([GitHub Actions](https://github.com/features/actions), Jenkins, Travis-CI)
- pre-commit hooks (black, flake)
- .env files and environmental variables
- Logs, and Logging (For Example Sentry)## Part 4 (Web)
- HTML, CSS, SASS, Javascript, Bootstrap and JQuery
- REST API
- Swagger
- ngrok
- GraphQL
- Browser dev tools (elements tab, console, network tab, performance)## Part 5 (Theory and Tools):
- Security (XSS, SQL Injection, CSRF, CORS, ...etc)
- Symmetric Encryption and Asymmetric Encryption
- SSH (Connecting, Generating Keys, Adding Hosts, ...etc)
- Authentication (session, basic, token and jwt token)
- Docker, docker-compose
- Postman
- Authentication vs Authorization## Part 6 (Django)
- Good Resources:
- Two-Scoops with Django
- Code With Mosh - Ultimate Django Series
- Documentation
- Django App Architecture and Organization
- Important Packages
- django-split-settings (https://sobolevn.me/2017/04/managing-djangos-settings)
- django-allauth (social auth)
- django-rest-auth (for drf)
- django-braces (mixins)
- django-compressor (for static files)
- django-countries (country fields)
- django-crispy-forms (render forms)
- django-db-mailer
- django-el-pagination
- django-extensions (shell_plus, jobs, ...etc)
- drf-extra-fields (Base64Fields)
- django-filters
- django-fsm (state machine)
- django-jet (admin styles and template)
- django-modeltranslation
- django-newsletter
- django-phonenumber-field
- django-push-notifications
- django-solo
- django-treebeard
- PyJWT
- django-redis
- django-wkhtmltopdf
- django-import-export
- sentry-sdk
- django-ckeditor
- geopy (locating)
- django-rest-knox (auth)
- drf-spectacular (swagger)
- easy-thumbnails
- django-oscar
- django-oscar-api
- django-oscar-invoices
- django-debug-toolbar
- pytest-django
- pytest-cov- custom management commands
- custom migrations
- permissions
- Django cookie-cutter
- Django Rest Framework
- Wagtail
- Django cms## Part 7 (Advanced Concepts & Devops & Production):
- Elastic Stack
- Caching with redis
- Asynchronous programming (celery, rabbit mq, django rq, Kafka)
- Linux cron jobs
- AWS Basics (S3, EC2, Networks)
- Gunicorn
- Nginx
- Microservices
- Hosting (PAAS, SAAS, IAAS)
- System Design (a good book is System Design Interview - An Insider's Guide)## Part 8 (Front-End Optional Miscellaneous)
- NPM
- Webpack
- SPA (Vue and Nuxt.js/React and Next.js/Angular)
- PWA
- TypeScript
- ...etc