Skip to content

Commit 7e0ba8a

Browse files
travisjneumanclaude
andcommitted
feat: add modules 05/11/12, concept docs, and curriculum integration
- Module 05: Async Python (5 projects — asyncio, aiohttp, queues, async server) - Module 11: Package Publishing (3 projects — pyproject.toml, build, TestPyPI) - Module 12: Cloud Deployment (3 projects — Railway, Postgres, production checklist) - Module infrastructure README with index of all 12 modules - 8 new concept docs: imports, classes, async, HTTP, venvs, decorators, APIs, terminal - Updated README.md with expansion modules section - Updated PROGRESS.md with all 56 module project checkboxes - Updated CLAUDE.md with module structure - Updated projects/README.md and concepts/README.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 97e886e commit 7e0ba8a

72 files changed

Lines changed: 4457 additions & 8 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
55
## What This Repo Is
66

7-
A comprehensive Python curriculum: zero tech experience to world-class full-stack mastery. Contains 50+ sequenced documents, 175+ hands-on projects across 12 levels, CI validation tooling, and a personalized study plan generator.
7+
A comprehensive Python curriculum: zero tech experience to world-class full-stack mastery. Contains 50+ sequenced documents, 175+ hands-on projects across 12 levels, 56 expansion module projects across 12 technology domains, CI validation tooling, and a personalized study plan generator.
88

99
## Learner Context
1010

@@ -58,6 +58,24 @@ projects/ (hands-on practice):
5858
level-00-absolute-beginner/ → 15 exercises (no imports, no tests)
5959
level-0/ through level-10/ → 15 projects each (full structure)
6060
elite-track/ → 10 advanced projects
61+
modules/ → 12 technology modules, 56 projects
62+
01-web-scraping/ → requests, BeautifulSoup, CSV
63+
02-cli-tools/ → click, typer, rich
64+
03-rest-apis/ → requests, JSON, API clients
65+
04-fastapi-web/ → FastAPI, Pydantic, JWT auth
66+
05-async-python/ → asyncio, aiohttp, queues
67+
06-databases-orm/ → SQLAlchemy, Alembic, sqlite3
68+
07-data-analysis/ → pandas, matplotlib
69+
08-testing-advanced/ → parametrize, mocking, hypothesis
70+
09-docker-deployment/ → Docker, docker-compose, GitHub Actions
71+
10-django-fullstack/ → Django, DRF, templates
72+
11-package-publishing/ → pyproject.toml, build, TestPyPI
73+
12-cloud-deploy/ → Railway, Postgres, production config
74+
75+
concepts/ (reference docs):
76+
Core: variables, loops, functions, collections, files, errors, types
77+
Intermediate: imports, classes, decorators, virtual environments, terminal
78+
Advanced: HTTP, APIs, async/await
6179
```
6280

6381
## Session Workflow
@@ -73,10 +91,12 @@ When starting a learning session:
7391
- **level-00:** Single `exercise.py` + `TRY_THIS.md`, no tests, no imports
7492
- **level-0 through level-10:** Full structure (README, project.py, tests/, data/, notes.md)
7593
- **Elite track:** Advanced structure with architecture docs
94+
- **Expansion modules:** README, project.py (or app.py), requirements.txt, notes.md, tests/ where applicable
7695

7796
## Tech Stack
7897

7998
- Python 3.11+
8099
- pytest (testing, from Level 0 onward)
81100
- Ruff (linting, from Level 0 onward)
82101
- Black (formatting, from Level 0 onward)
102+
- Expansion module libraries: requests, BeautifulSoup, click, typer, FastAPI, aiohttp, SQLAlchemy, pandas, matplotlib, Django, Docker

PROGRESS.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,87 @@ Check off items as you complete them. This is your personal tracker.
138138
- [ ] Docs 36-45: Elite engineering track
139139
- [ ] Docs 46-50: Adaptive learning layer
140140
- [ ] Elite Track Projects (10 projects)
141+
142+
---
143+
144+
## Expansion Modules — Full-Stack Python
145+
146+
### Module 01 — Web Scraping (after Level 2)
147+
- [ ] 01 Fetch a Webpage
148+
- [ ] 02 Parse HTML
149+
- [ ] 03 Extract Structured Data
150+
- [ ] 04 Multi-Page Scraper
151+
- [ ] 05 Save to CSV
152+
153+
### Module 02 — CLI Tools (after Level 2)
154+
- [ ] 01 Click Basics
155+
- [ ] 02 Multi-Command CLI
156+
- [ ] 03 Interactive Prompts
157+
- [ ] 04 File Processor CLI
158+
- [ ] 05 Typer Migration
159+
160+
### Module 03 — REST APIs: Consuming (after Level 2)
161+
- [ ] 01 First API Call
162+
- [ ] 02 Query Parameters
163+
- [ ] 03 POST and Auth
164+
- [ ] 04 Error Handling
165+
- [ ] 05 API Client Class
166+
167+
### Module 04 — FastAPI Web Apps (after Level 3 + Module 03)
168+
- [ ] 01 Hello FastAPI
169+
- [ ] 02 CRUD API
170+
- [ ] 03 Database-Backed
171+
- [ ] 04 Authentication
172+
- [ ] 05 Full App
173+
174+
### Module 05 — Async Python (after Level 3)
175+
- [ ] 01 Async Basics
176+
- [ ] 02 Concurrent Requests
177+
- [ ] 03 Async File Processing
178+
- [ ] 04 Producer-Consumer
179+
- [ ] 05 Async Web Server
180+
181+
### Module 06 — Databases & ORM (after Level 3)
182+
- [ ] 01 SQLite Basics
183+
- [ ] 02 SQLAlchemy Models
184+
- [ ] 03 CRUD Operations
185+
- [ ] 04 Migrations with Alembic
186+
- [ ] 05 Query Optimization
187+
188+
### Module 07 — Data Analysis (after Level 2)
189+
- [ ] 01 Pandas Basics
190+
- [ ] 02 Filtering and Grouping
191+
- [ ] 03 Data Cleaning
192+
- [ ] 04 Visualization
193+
- [ ] 05 Analysis Report
194+
195+
### Module 08 — Advanced Testing (after Level 3)
196+
- [ ] 01 Parametrize
197+
- [ ] 02 Mocking
198+
- [ ] 03 Fixtures Advanced
199+
- [ ] 04 Property-Based Testing
200+
- [ ] 05 Integration Testing
201+
202+
### Module 09 — Docker & Deployment (after Level 5)
203+
- [ ] 01 First Dockerfile
204+
- [ ] 02 Multi-Stage Build
205+
- [ ] 03 Docker Compose
206+
- [ ] 04 CI with GitHub Actions
207+
- [ ] 05 Production Config
208+
209+
### Module 10 — Django Full-Stack (after Module 04 + Module 06)
210+
- [ ] 01 Django Setup
211+
- [ ] 02 Views and Templates
212+
- [ ] 03 Forms and Auth
213+
- [ ] 04 REST Framework
214+
- [ ] 05 Complete App
215+
216+
### Module 11 — Package Publishing (after Level 3)
217+
- [ ] 01 Package Structure
218+
- [ ] 02 Build and Test
219+
- [ ] 03 Publish to PyPI
220+
221+
### Module 12 — Cloud Deployment (after Module 04 + Module 09)
222+
- [ ] 01 Deploy to Railway
223+
- [ ] 02 Deploy with Database
224+
- [ ] 03 Production Checklist

README.md

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# Python SME Plan (Zero Experience -> Enterprise Python Builder)
1+
# Python Mastery Plan (Zero Experience -> World-Class Full-Stack Developer)
22
Home: [README](./README.md)
33

44
Last updated: **February 24, 2026**
55

6-
This repository is a complete beginner-to-advanced Python learning system designed for a real enterprise environment:
7-
- SolarWinds Orion
8-
- SolarWinds DPA
9-
- Custom MSSQL reporting backend
10-
- Browser-based dashboard delivery
6+
This repository is a complete beginner-to-expert Python learning system. It covers two tracks:
7+
8+
**Enterprise Operations Track**SolarWinds Orion, MSSQL, Excel automation, dashboards (the original core).
9+
10+
**Full-Stack Expansion Modules** — Web scraping, CLI tools, REST APIs, FastAPI, async Python, databases/ORM, data analysis, advanced testing, Docker, Django, package publishing, and cloud deployment.
1111

1212
The plan is hands-on first. You will learn by building, breaking, fixing, and explaining.
1313

@@ -177,6 +177,21 @@ Exact click path if you follow `Next` in each file:
177177
- Elite extension projects live in [`./projects/elite-track`](./projects/elite-track) for top-tier architecture and systems depth.
178178
- Project index: [`./projects/README.md`](./projects/README.md)
179179

180+
## Expansion modules (full-stack Python)
181+
12 technology modules with 56 hands-on projects covering the full Python ecosystem. Each module is self-contained with real libraries, not simulations.
182+
183+
**After Level 2:** Web Scraping, CLI Tools, REST APIs, Data Analysis
184+
**After Level 3:** FastAPI, Async Python, Databases/ORM, Advanced Testing, Package Publishing
185+
**After Level 5:** Docker & Deployment, Django Full-Stack, Cloud Deployment
186+
187+
Full module index: [`./projects/modules/README.md`](./projects/modules/README.md)
188+
189+
## Concept reference docs
190+
Plain-language explanations of Python concepts at [`./concepts/README.md`](./concepts/README.md):
191+
- Core: variables, loops, functions, collections, files, errors, types
192+
- Intermediate: imports, classes, decorators, virtual environments, terminal
193+
- Advanced: HTTP, APIs, async/await
194+
180195
## Second-pass support packs
181196
- Screenshot checkpoints and study prompts:
182197
- [12_SCREENSHOT_CHECKPOINTS.md](./12_SCREENSHOT_CHECKPOINTS.md)

concepts/README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
Plain-language explanations of Python concepts. Use these when you need to understand something a project introduces.
44

5-
## Core Concepts
5+
## Core Concepts (start here)
6+
67
- [What is a Variable?](./what-is-a-variable.md)
78
- [How Loops Work](./how-loops-work.md)
89
- [Functions Explained](./functions-explained.md)
@@ -11,7 +12,22 @@ Plain-language explanations of Python concepts. Use these when you need to under
1112
- [Errors and Debugging](./errors-and-debugging.md)
1213
- [Types and Conversions](./types-and-conversions.md)
1314

15+
## Intermediate Concepts (after Level 2)
16+
17+
- [How Imports Work](./how-imports-work.md) — modules, packages, `__init__.py`
18+
- [Classes and Objects](./classes-and-objects.md) — OOP basics, `self`, inheritance
19+
- [Decorators Explained](./decorators-explained.md)`@` syntax, wrapping functions
20+
- [Virtual Environments](./virtual-environments.md) — venv, pip, requirements.txt
21+
- [The Terminal — Going Deeper](./the-terminal-deeper.md) — pipes, redirects, env vars
22+
23+
## Advanced Concepts (after Level 3)
24+
25+
- [HTTP Explained](./http-explained.md) — requests, responses, status codes, headers
26+
- [API Basics](./api-basics.md) — REST, JSON, endpoints, authentication
27+
- [Async Explained](./async-explained.md) — async/await, event loops, concurrency
28+
1429
## How to use these
30+
1531
- Read the concept page before or during a project
1632
- Each page has: explanation, code example, common mistakes
1733
- Come back to these whenever you forget how something works

concepts/api-basics.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# API Basics
2+
3+
An **API** (Application Programming Interface) is a way for programs to talk to each other. When people say "API" in web development, they usually mean a web API — a server that accepts HTTP requests and returns data (usually JSON).
4+
5+
## How APIs work
6+
7+
```
8+
Your Python script The API server
9+
| |
10+
|-- GET /posts ----------->|
11+
| | (looks up posts in database)
12+
|<-- 200 OK + JSON --------|
13+
| |
14+
```
15+
16+
Your script is the **client**. The API is the **server**. The conversation happens over HTTP.
17+
18+
## REST — the most common API style
19+
20+
REST (Representational State Transfer) is a set of conventions for designing APIs:
21+
22+
| Action | HTTP Method | URL | Example |
23+
|--------|------------|-----|---------|
24+
| List all | GET | `/users` | Get all users |
25+
| Get one | GET | `/users/42` | Get user #42 |
26+
| Create | POST | `/users` | Create a new user |
27+
| Update | PUT | `/users/42` | Replace user #42 |
28+
| Delete | DELETE | `/users/42` | Delete user #42 |
29+
30+
The URL identifies the **resource** (what you're working with). The HTTP method identifies the **action** (what you're doing to it).
31+
32+
## Making API calls with Python
33+
34+
```python
35+
import requests
36+
37+
# GET — read data.
38+
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
39+
post = response.json()
40+
print(post["title"])
41+
42+
# POST — create data.
43+
new_post = {"title": "My Post", "body": "Content here", "userId": 1}
44+
response = requests.post(
45+
"https://jsonplaceholder.typicode.com/posts",
46+
json=new_post,
47+
)
48+
print(response.status_code) # 201 Created
49+
```
50+
51+
## Building APIs with Python
52+
53+
FastAPI lets you create APIs:
54+
55+
```python
56+
from fastapi import FastAPI
57+
58+
app = FastAPI()
59+
60+
@app.get("/hello/{name}")
61+
def hello(name: str):
62+
return {"message": f"Hello, {name}!"}
63+
```
64+
65+
Run with `uvicorn app:app` and visit `http://localhost:8000/hello/Alice`.
66+
67+
## Authentication
68+
69+
Most APIs require you to prove who you are:
70+
71+
**API Key** — a secret string you include in the request:
72+
```python
73+
response = requests.get(url, headers={"X-API-Key": "your-key-here"})
74+
```
75+
76+
**Bearer Token (JWT)** — a token you get by logging in:
77+
```python
78+
response = requests.get(url, headers={"Authorization": "Bearer eyJ..."})
79+
```
80+
81+
## Common public APIs for practice
82+
83+
| API | URL | What it provides |
84+
|-----|-----|-----------------|
85+
| JSONPlaceholder | jsonplaceholder.typicode.com | Fake posts, users, comments |
86+
| Open Meteo | open-meteo.com | Weather data |
87+
| PokéAPI | pokeapi.co | Pokémon data |
88+
| REST Countries | restcountries.com | Country information |
89+
90+
These are free, require no API key, and are safe to practice with.
91+
92+
## Common mistakes
93+
94+
**Not handling errors:**
95+
```python
96+
# Bad — crashes if the API is down.
97+
data = requests.get(url).json()
98+
99+
# Good — check the response first.
100+
response = requests.get(url, timeout=10)
101+
response.raise_for_status() # Raises an exception for 4xx/5xx
102+
data = response.json()
103+
```
104+
105+
**Hardcoding API URLs:**
106+
```python
107+
# Bad
108+
requests.get("https://api.example.com/v2/users")
109+
110+
# Good — use a variable or config.
111+
BASE_URL = "https://api.example.com/v2"
112+
requests.get(f"{BASE_URL}/users")
113+
```
114+
115+
## Related exercises
116+
117+
- [Module 03 — REST APIs: Consuming](../projects/modules/03-rest-apis/)
118+
- [Module 04 — FastAPI Web Apps](../projects/modules/04-fastapi-web/)
119+
- [concepts/http-explained.md](./http-explained.md)

0 commit comments

Comments
 (0)