Comprehensive Internship Coursework (Python-Django)

Introduction

At Periwin, we aim to train our interns from the ground up, ensuring they acquire proficiency in Python, virtual environments, Django, Django Rest Framework (DRF), and Git. This detailed coursework will serve as a structured roadmap for interns to follow, incorporating hands-on exercises, real-world projects, and resources to accelerate their learning.


Phase 1: Mastering Python Basics

Objective: Become proficient in Python fundamentals.

Topics to Cover:

  1. Introduction to Python

    • Installing Python (Windows, Mac, Linux)
    • Writing and executing Python scripts
    • Understanding Python syntax
    • Using Jupyter Notebook and VS Code
  2. Data Types and Variables

    • Strings, Numbers, Lists, Tuples, Sets, Dictionaries
    • Type casting and type checking
  3. Control Structures

    • Conditional statements (if-else)
    • Loops (for, while)
    • List comprehensions
  4. Functions and Modules

    • Defining and calling functions
    • Arguments and return values
    • Built-in functions
    • Creating and using modules
  5. Object-Oriented Programming (OOP)

    • Classes and objects
    • Inheritance and polymorphism
    • Encapsulation
  6. File Handling

    • Reading and writing files
    • Working with CSV and JSON
  7. Error Handling and Debugging

    • Try-except blocks
    • Logging and debugging tools

Recommended Resources:


Phase 2: Understanding Virtual Environments

Objective: Learn how to manage Python dependencies using virtual environments.

Topics to Cover:

  1. What are Virtual Environments?

    • Importance of virtual environments
    • Avoiding dependency conflicts
  2. Setting up Virtual Environments

    • Installing venv and virtualenv
    • Creating a virtual environment
    • Activating and deactivating virtual environments
    • Installing and managing dependencies using pip
  3. Using requirements.txt

    • Exporting installed packages
    • Installing dependencies from a file

Recommended Resources:


Phase 3: Mastering Django and Django Rest Framework (DRF)

Objective: Develop web applications using Django and build APIs using Django Rest Framework.

Topics to Cover:

  1. Django Basics

    • Introduction to Django
    • Setting up a Django project
    • Django project structure
  2. Models and Databases

    • Understanding Django ORM
    • Defining models
    • Running migrations
    • Using SQLite/PostgreSQL
  3. Views and Templates

    • Creating views
    • Rendering templates
    • URL routing
  4. Forms and User Authentication

    • Creating Django forms
    • Implementing user authentication
    • Using Django’s built-in user model
  5. Django Rest Framework (DRF)

    • Introduction to REST APIs
    • Serializers and ViewSets
    • API authentication and permissions
    • Testing APIs with Postman
  6. Deployment Basics

    • Setting up a Django project on a cloud server
    • Using Gunicorn and Nginx
    • Deploying using Docker (basic understanding)

Recommended Resources:


Phase 4: Learning Git and Version Control

Objective: Become proficient in Git for source code management.

Topics to Cover:

  1. Introduction to Git

    • What is version control?
    • Installing Git and setting up a GitHub account
  2. Basic Git Commands

    • Initializing a repository (git init)
    • Cloning repositories (git clone)
    • Adding and committing changes (git add, git commit)
  3. Branching and Merging

    • Creating and switching branches (git branch, git checkout)
    • Merging branches (git merge)
  4. Working with Remote Repositories

    • Pushing and pulling changes (git push, git pull)
    • Resolving merge conflicts
  5. Collaborative Git Workflows

    • Forking and Pull Requests
    • Code reviews and best practices

Recommended Resources:


Capstone Project: Full-Stack Django Application

Objective: Apply all skills learned in a real-world project.

Project Idea: Develop a Task Management System with the following features:

  • User authentication (Django Authentication System)
  • Task creation, editing, and deletion
  • API for task management (Django Rest Framework)
  • Frontend integration (optional React/HTML & CSS)
  • Deployment on Heroku or DigitalOcean

Project Resources:


Conclusion

By following this structured coursework, the intern will gain hands-on experience and confidence in Python, Django, REST APIs, Git, and deployment techniques. The intern is encouraged to build multiple projects, contribute to open-source, and participate in coding challenges to reinforce learning.

Happy coding at Periwin!