🌐 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.
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
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)
- 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)
- 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)
- 01 - Decorators & Generators
- 02 - Concurrency & Async
- 03 - Testing (pytest)
- 04 - Design Patterns
- Capstone Projects (Task Queue, Test Suite, Pattern Library)
- Data Science (NumPy, Pandas, Matplotlib)
- Web Development (FastAPI, Flask)
- Automation & Scraping (Requests, BeautifulSoup, pathlib, schedule)
-
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)
-
exercises/— cross-topic standalone exercise sets -
notebooks/— thematic standalone notebooks (algorithms, interview problems) -
solutions/— cross-topic standalone solutions
| Category | Files |
|---|---|
| Cheatsheets | Python Core · OOP · Async · Pandas · Git |
| Interview Prep | Python Basics · OOP Questions · Algorithms |
| Guides | Venv & pip · pytest · Jupyter |
-
Clone the repository
git clone git@github.com:GScandelari/python_projects.git cd python_projects -
Create a virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
-
Navigate to any topic folder and follow the local README.
-
Try the exercises before looking at the solutions.
| 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 watchdogContributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
- Fork the project
- Create your branch:
git checkout -b feature/your-topic - Commit your changes:
git commit -m "Add: your-topic module" - Push to the branch:
git push origin feature/your-topic - Open a Pull Request
This project is licensed under the MIT License. See LICENSE for details.
Built with focus and consistency. One concept at a time.
