Skip to content

Latest commit

 

History

History
247 lines (201 loc) · 8.98 KB

File metadata and controls

247 lines (201 loc) · 8.98 KB

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.