Skip to content

GScandelari/python_projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Python Projects

Python Projects Banner

Python License Last Commit Stars GitHub Pages

🌐 gscandelari.github.io/python_projects

A structured learning repository covering Python from beginner to advanced level β€” with exercises, solutions, mini-projects, and Jupyter Notebooks for every concept.


Table of Contents


About

This repository is a curated collection of Python concepts, exercises, and projects organized by difficulty level. Whether you are just starting or looking to sharpen your advanced skills, you will find practical, well-documented content here.

Each topic follows a consistent structure:

  • A README with explanation and examples
  • A Jupyter Notebook for interactive learning
  • Exercises β€” easy β†’ medium β†’ challenge
  • Solutions with detailed explanations

Repository Structure

python_projects/
β”‚
β”œβ”€β”€ beginner/
β”‚   β”œβ”€β”€ 01-fundamentals/          # Variables, types, operators
β”‚   β”œβ”€β”€ 02-control-flow/          # if/elif/else, while, for, break/continue
β”‚   β”œβ”€β”€ 03-data-structures/       # Lists, dicts, tuples, sets
β”‚   β”œβ”€β”€ 04-functions/             # def, args, kwargs, lambda, scope
β”‚   β”œβ”€β”€ 05-string-manipulation/   # Formatting, methods, regex basics
β”‚   └── mini-projects/
β”‚       β”œβ”€β”€ 01-number-guessing-game/
β”‚       β”œβ”€β”€ 02-contact-book/
β”‚       └── 03-text-analyzer/
β”‚
β”œβ”€β”€ intermediate/
β”‚   β”œβ”€β”€ 01-oop/                   # Classes, inheritance, dunder methods
β”‚   β”œβ”€β”€ 02-modules-packages/      # import, __init__.py, stdlib tour
β”‚   β”œβ”€β”€ 03-file-handling/         # open, pathlib, CSV, JSON
β”‚   β”œβ”€β”€ 04-error-handling/        # try/except, custom exceptions, context managers
β”‚   β”œβ”€β”€ 05-comprehensions/        # List, dict, set, generator expressions
β”‚   └── mini-projects/
β”‚       β”œβ”€β”€ 01-grade-manager/
β”‚       β”œβ”€β”€ 02-finance-tracker/
β”‚       └── 03-file-organizer/
β”‚
β”œβ”€β”€ advanced/
β”‚   β”œβ”€β”€ 01-decorators-generators/ # functools.wraps, args, class-based, yield, send
β”‚   β”œβ”€β”€ 02-concurrency-async/     # threading, asyncio, multiprocessing
β”‚   β”œβ”€β”€ 03-testing/               # pytest, fixtures, parametrize, Mock, coverage
β”‚   β”œβ”€β”€ 04-design-patterns/       # Singleton, Factory, Observer, Strategy, Command…
β”‚   └── projects/
β”‚       β”œβ”€β”€ 01-task-queue/        # threading + PriorityQueue + Observer
β”‚       β”œβ”€β”€ 02-test-suite/        # Full pytest suite for a Bank system
β”‚       └── 03-pattern-library/   # Builder + Observer + generator pipeline
β”‚
β”œβ”€β”€ data-science/
β”‚   β”œβ”€β”€ 01-numpy/                 # Arrays, broadcasting, linear algebra
β”‚   β”œβ”€β”€ 02-pandas/                # DataFrame, groupby, merge, time series
β”‚   └── 03-matplotlib/            # Line, bar, scatter, subplots, heatmap
β”‚
β”œβ”€β”€ web-development/
β”‚   β”œβ”€β”€ 01-fastapi/               # REST API, Pydantic, deps, async, routers
β”‚   └── 02-flask/                 # Routes, blueprints, middleware, app factory
β”‚
β”œβ”€β”€ automation/
β”‚   β”œβ”€β”€ 01-requests-beautifulsoup/ # HTTP requests, scraping, pagination
β”‚   └── 02-automation/             # pathlib, shutil, subprocess, logging, schedule
β”‚
β”œβ”€β”€ assets/                       # SVG banner + 7 concept diagrams (PNG)
β”‚   β”œβ”€β”€ banner.svg
β”‚   β”œβ”€β”€ roadmap.png
β”‚   β”œβ”€β”€ generate_diagrams.py
β”‚   └── *.png
β”‚
β”œβ”€β”€ docs/                         # Cheatsheets, interview prep, setup guides
β”‚   β”œβ”€β”€ cheatsheets/              # python-core, oop, async, pandas, git
β”‚   β”œβ”€β”€ interview-prep/           # python-basics, oop-questions, algorithms
β”‚   └── guides/                   # venv-setup, pytest-guide, jupyter-guide
β”‚
β”œβ”€β”€ website/                      # GitHub Pages landing page source
β”‚   └── index.html
β”‚
β”œβ”€β”€ exercises/                    # Standalone cross-topic exercise sets (backlog)
β”‚   β”œβ”€β”€ beginner/
β”‚   β”œβ”€β”€ intermediate/
β”‚   └── advanced/
β”œβ”€β”€ notebooks/                    # Standalone thematic notebooks (backlog)
└── solutions/                    # Standalone cross-topic solutions (backlog)

Roadmap

Learning Roadmap

Beginner

  • 01 - Fundamentals (variables, types, operators)
  • 02 - Control Flow (if/else, loops)
  • 03 - Data Structures (lists, dicts, tuples, sets)
  • 04 - Functions
  • 05 - String Manipulation
  • Mini-Projects (Number Guessing Game, Contact Book, Text Analyzer)

Intermediate

  • 01 - Object-Oriented Programming (OOP)
  • 02 - Modules & Packages
  • 03 - File Handling
  • 04 - Error Handling & Exceptions
  • 05 - List/Dict/Set Comprehensions
  • Mini-Projects (Grade Manager, Finance Tracker, File Organizer)

Advanced

  • 01 - Decorators & Generators
  • 02 - Concurrency & Async
  • 03 - Testing (pytest)
  • 04 - Design Patterns
  • Capstone Projects (Task Queue, Test Suite, Pattern Library)

Extras

  • Data Science (NumPy, Pandas, Matplotlib)
  • Web Development (FastAPI, Flask)
  • Automation & Scraping (Requests, BeautifulSoup, pathlib, schedule)

Assets & Docs

  • assets/ β€” SVG banner + 7 concept diagrams (roadmap, data types, OOP, concurrency, design patterns, data science, web API)
  • docs/cheatsheets/ β€” Python Core, OOP, Async, Pandas, Git
  • docs/interview-prep/ β€” Python Basics, OOP Questions, Algorithms & DS
  • docs/guides/ β€” Virtual Environments, pytest, Jupyter
  • website/ β€” GitHub Pages landing page (auto-deployed via Actions)

Backlog

  • exercises/ β€” cross-topic standalone exercise sets
  • notebooks/ β€” thematic standalone notebooks (algorithms, interview problems)
  • solutions/ β€” cross-topic standalone solutions

Docs & Resources

Category Files
Cheatsheets Python Core Β· OOP Β· Async Β· Pandas Β· Git
Interview Prep Python Basics Β· OOP Questions Β· Algorithms
Guides Venv & pip Β· pytest Β· Jupyter

How to Use

  1. Clone the repository

    git clone git@github.com:GScandelari/python_projects.git
    cd python_projects
  2. Create a virtual environment (recommended)

    python -m venv .venv
    source .venv/bin/activate      # Linux/macOS
    .venv\Scripts\activate         # Windows
  3. Install dependencies

    pip install -r requirements.txt
  4. Navigate to any topic folder and follow the local README.

  5. Try the exercises before looking at the solutions.


Dependencies

Section Packages
Core Python 3.10+
Notebooks jupyter
Testing pytest pytest-cov pytest-asyncio
Data Science numpy pandas matplotlib
Web Development fastapi uvicorn[standard] flask
Automation requests beautifulsoup4 lxml schedule watchdog

Install everything at once:

pip install jupyter pytest pytest-cov pytest-asyncio \
            numpy pandas matplotlib \
            fastapi uvicorn[standard] flask \
            requests beautifulsoup4 lxml schedule watchdog

Contributing

Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.

  1. Fork the project
  2. Create your branch: git checkout -b feature/your-topic
  3. Commit your changes: git commit -m "Add: your-topic module"
  4. Push to the branch: git push origin feature/your-topic
  5. Open a Pull Request

License

This project is licensed under the MIT License. See LICENSE for details.


Built with focus and consistency. One concept at a time.

Releases

No releases published

Packages

 
 
 

Contributors