
- Instructor: GKP
- Students: 2
- Duration: 60 hours
Course Syllabus
This 60-hour course is designed to provide participants with the necessary skills to become a proficient Full Stack Python Developer. The course covers both front-end and back-end development, focusing on Python programming, web development using HTML/CSS/JavaScript, and building robust server-side applications using Python frameworks like Django and Flask. Participants will also learn to work with databases, version control systems, and deploy applications.
Introduction to Full Stack Development
- Overview of Full Stack Development: Understanding the role of a Full Stack Developer, Overview of the development process, Tools and technologies used in full stack development.
- Introduction to Python Programming: History and evolution of Python, Setting up the development environment (Python, IDE), Basic syntax, Data types, and control structures in Python.
Core Python Fundamentals
- Object-Oriented Programming (OOP) in Python: Principles of OOP (Encapsulation, Inheritance, Polymorphism, Abstraction), Classes and Objects, Constructors, Methods, and Access Modifiers.
- Exception Handling and File I/O: Introduction to exceptions, try-except-finally, Creating custom exceptions, Working with files (open, read, write, with statement).
- Python Collections and Iteration: Working with lists, tuples, sets, dictionaries, List comprehensions, and generator expressions, Iterators and generators.
- Python Modules and Packages: Creating and importing modules, Working with Python packages, Python Package Index (PyPI), Virtual environments.
Introduction to Front-End Development
- HTML and CSS: Structure of an HTML document, HTML5 features, Styling with CSS3, Responsive design principles, Introduction to CSS frameworks (e.g., Bootstrap).
- JavaScript and DOM Manipulation: Basics of JavaScript (Variables, Operators, Control Structures), DOM manipulation, Event handling, Introduction to ES6+ features (let/const, arrow functions, promises).
- Front-End Frameworks: Introduction to modern JavaScript frameworks (React or Angular), Components, Props, State management, Routing, and handling forms.
Building Web Applications with Python
- Introduction to Web Applications: Understanding web architecture, Introduction to HTTP and RESTful services, Role of server-side programming.
- Flask Framework: Introduction to Flask, Setting up a Flask project, Routing, Handling HTTP requests and responses, Templates and Jinja2, Form handling and validation.
- Django Framework: Introduction to Django, Setting up a Django project, Django project structure, Working with Django models, views, and templates, Django admin interface.
- MVC Architecture: Understanding the Model-View-Controller (MVC) pattern, Implementing MVC with Flask and Django, Integrating front-end and back-end.
Database Management and ORM
- Introduction to Databases: Basics of relational databases, SQL fundamentals (DDL, DML, Joins, Aggregations), Introduction to MySQL/PostgreSQL.
- SQLAlchemy and ORM: Introduction to Object-Relational Mapping (ORM) with SQLAlchemy, Setting up SQLAlchemy in Flask, CRUD operations, Relationships (One-to-One, One-to-Many, Many-to-Many).
- Django ORM: Introduction to Django’s ORM, QuerySets and Managers, Performing CRUD operations, Working with Django migrations, Database relationships in Django.
RESTful Web Services
- Building RESTful Services with Flask and Django: Introduction to REST, RESTful principles, Building RESTful APIs with Flask and Django, Handling HTTP methods (GET, POST, PUT, DELETE), Content negotiation, Exception handling in REST services.
- Flask-RESTful and Django REST Framework: Introduction to Flask-RESTful, Creating REST APIs with Flask-RESTful, Introduction to Django REST Framework (DRF), Serializers, ViewSets, and Routers in DRF.
- Securing RESTful Services: Implementing authentication and authorization, JWT (JSON Web Tokens) for secure APIs, Role-based access control.
Testing and Debugging
- Unit Testing with PyTest and Unittest: Introduction to testing in Python, Writing unit tests with PyTest and Unittest, Test-driven development (TDD) principles, Mocking with unittest.mock.
- Integration Testing: Writing integration tests for web applications, Testing RESTful APIs, Testing database interactions.
- Debugging Techniques: Common debugging practices, Using IDE tools for debugging, Analyzing and fixing common errors in Python applications.
Version Control and Collaboration
- Introduction to Git: Understanding version control systems, Setting up Git, Basic Git commands (clone, commit, push, pull, branch).
- Collaboration with GitHub/GitLab: Working with remote repositories, Branching and merging strategies, Pull requests and code reviews, Git workflows in team environments.
Deployment and Cloud
- Introduction to DevOps and CI/CD: Overview of Continuous Integration and Continuous Deployment, Setting up CI/CD pipelines with tools like Jenkins or GitHub Actions.
- Deploying Python Applications: Introduction to deployment, Deploying Flask and Django applications on servers (Gunicorn, Nginx), Introduction to containerization with Docker.
- Cloud Deployment: Overview of cloud platforms (AWS, Azure, Google Cloud), Deploying Python applications to the cloud, Introduction to cloud-native Python applications.
Final Project
- Capstone Project: Designing and developing a full-stack Python application, Integrating front-end and back-end, Implementing database interactions, Deploying the application to a live server or cloud platform, Presenting the project.