Skip to content

Commit d03aaa7

Browse files
committed
Plan
1 parent 5e1f899 commit d03aaa7

13 files changed

Lines changed: 1022 additions & 0 deletions

.DS_Store

0 Bytes
Binary file not shown.

00_README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Python SME Plan (Automation + Dashboards + Excel/SQL/SolarWinds)
2+
3+
Generated: **Monday, February 16, 2026, 2:11 PM (America/Detroit)**
4+
5+
This folder is a **self-contained learning program** that starts at **zero experience** and takes you to **Python Subject Matter Expert (SME)** for:
6+
- **Automation scripting** (files, ETL, scheduled jobs)
7+
- **Reporting** (Excel + SQL + SolarWinds)
8+
- **Web GUIs / dashboards** (internal tools people can use)
9+
10+
All links are **relative**. Keep these files together in the same folder and the links will work anywhere.
11+
12+
## Start here (in order)
13+
1. **[01_ROADMAP.md](./01_ROADMAP.md)** — the full program (phases, timelines, deliverables)
14+
2. **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)** — step-by-step setup from scratch
15+
3. **[02_GLOSSARY.md](./02_GLOSSARY.md)** — terms (CI/CD, PyPI, venv, pip, etc.)
16+
4. Work through the phase docs as referenced in the roadmap.
17+
18+
## Satellite docs
19+
- Foundations: **[04_FOUNDATIONS.md](./04_FOUNDATIONS.md)**
20+
- Quality/tooling: **[09_QUALITY_TOOLING.md](./09_QUALITY_TOOLING.md)**
21+
- Files + Excel: **[05_AUTOMATION_FILES_EXCEL.md](./05_AUTOMATION_FILES_EXCEL.md)**
22+
- SQL: **[06_SQL.md](./06_SQL.md)**
23+
- SolarWinds Orion: **[07_SOLARWINDS_ORION.md](./07_SOLARWINDS_ORION.md)**
24+
- Dashboards: **[08_DASHBOARDS.md](./08_DASHBOARDS.md)**
25+
- Capstones: **[10_CAPSTONE_PROJECTS.md](./10_CAPSTONE_PROJECTS.md)**
26+
- Checklists: **[11_CHECKLISTS.md](./11_CHECKLISTS.md)**
27+
28+
## Source references used to build this plan
29+
This plan is grounded in primary documentation and well-known references, including:
30+
- Python official docs (venv, tutorial): https://docs.python.org/3/ citeturn0search1turn0search5
31+
- Python Packaging User Guide (pip/venv, pyproject.toml): https://packaging.python.org/ citeturn0search9turn2search1turn2search3
32+
- Automate the Boring Stuff (3rd edition): https://automatetheboringstuff.com/3e/ citeturn0search12turn0search19
33+
- Ruff docs: https://docs.astral.sh/ruff/ citeturn0search2
34+
- pytest docs: https://docs.pytest.org/ citeturn2search2
35+
- Streamlit docs: https://docs.streamlit.io/ citeturn1search0turn1search14
36+
- Dash docs: https://dash.plotly.com/ citeturn1search1
37+
- FastAPI docs: https://fastapi.tiangolo.com/ citeturn1search2
38+
- Orion SDK / Python client repos: https://github.com/solarwinds/OrionSDK and https://github.com/solarwinds/orionsdk-python citeturn0search23turn0search3
39+
40+
(You don’t need to open those URLs to proceed; everything you need is in these markdown guides.)

01_ROADMAP.md

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
# 01 — Roadmap: Zero → Python SME (Automation + Dashboards + Excel/SQL/SolarWinds)
2+
3+
Generated: **Monday, February 16, 2026, 2:11 PM (America/Detroit)**
4+
5+
## What “Python SME” means (concrete outcomes)
6+
By the end, you can:
7+
- Build **reliable automation tools** that run unattended (scheduled tasks) and are safe to rerun.
8+
- Build **repeatable reporting pipelines**: Excel → transform → SQL → dashboard/report.
9+
- Integrate with **SolarWinds Orion** via API (read metrics, alerts; write/ack where permitted).
10+
- Ship **internal web GUIs / dashboards** for non-technical teammates.
11+
- Use modern team standards: **virtual environments, dependency pinning, formatting, linting, tests, logging, packaging**.
12+
- Teach others: docs, examples, code reviews, patterns, “pitfall” guidance.
13+
14+
## The optimal learning order (why this order)
15+
1. **Foundations**: logic + reading code + debugging (otherwise everything else is random memorization).
16+
2. **Professional workflow**: venv/pip, git, lint/format, tests, logging (so you don’t build fragile scripts).
17+
3. **Data + IO**: files + Excel (fastest path to real business value).
18+
4. **SQL**: data persistence + reporting pipeline.
19+
5. **SolarWinds**: apply APIs + query language + auth + data modeling.
20+
6. **Dashboards**: UI + data access patterns + caching + security basics.
21+
7. **CI/CD + packaging**: how you ship repeatably (even if corporate is locked down, you will understand it).
22+
23+
## Time model (flexible)
24+
- Baseline: **6–8 hours/week**
25+
- Typical: **9–12 months** to “team-trusted SME” if you consistently ship small tools.
26+
- Faster path: 10–12 hours/week + weekly capstone increments.
27+
28+
You progress by **deliverables**, not by time spent.
29+
30+
---
31+
32+
# Phase 0 — Setup (Week 1)
33+
**Goal:** Your environment is predictable and professional.
34+
35+
Do: **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)** (exact steps)
36+
37+
Deliverables:
38+
- A folder called `python_sme/` with:
39+
- `templates/` (project template)
40+
- `notes/` (your learning notes)
41+
- `projects/` (each project gets its own folder)
42+
- You can:
43+
- create a venv
44+
- install packages with pip
45+
- run a script
46+
- run tests
47+
48+
---
49+
50+
# Phase 1 — Foundations (Weeks 2–6)
51+
**Goal:** You can read and write basic programs without copying blindly.
52+
53+
Study backbone:
54+
- **Automate the Boring Stuff (3rd ed)** (Ch. 1–11) citeturn0search12turn0search19
55+
- Python tutorial for reinforcement (esp. functions, modules) citeturn0search1
56+
57+
What you must master:
58+
- Types: int/float/str/bool/None
59+
- Data structures: list/dict/set/tuple
60+
- Control: if/elif/else, for/while, break/continue
61+
- Functions: parameters, return values, “small composable functions”
62+
- Debugging: reading tracebacks, printing, using VS Code debugger
63+
- Files: read/write text safely (encoding), paths, directories
64+
65+
Deliverables:
66+
- 12–20 “micro scripts” (each 30–120 lines) that do one thing well
67+
- A personal “pitfalls” note (truthiness, mutability, off-by-one)
68+
69+
Guide: **[04_FOUNDATIONS.md](./04_FOUNDATIONS.md)**
70+
71+
---
72+
73+
# Phase 2 — Professional workflow (Weeks 7–10)
74+
**Goal:** Your code is usable by others (consistent, tested, logged).
75+
76+
Core:
77+
- `venv` + `pip` + dependency pinning citeturn0search5turn0search9
78+
- `pyproject.toml` as the single config hub citeturn2search1
79+
- Lint/format: Ruff + Black citeturn0search2
80+
- Tests: pytest citeturn2search2
81+
- Logging: Python logging module
82+
83+
Deliverables:
84+
- A reusable **tool template**:
85+
- `src/` layout
86+
- CLI entrypoint
87+
- config loading
88+
- structured logging
89+
- tests
90+
- lint/format scripts
91+
92+
Guide: **[09_QUALITY_TOOLING.md](./09_QUALITY_TOOLING.md)** + **[02_GLOSSARY.md](./02_GLOSSARY.md)**
93+
94+
---
95+
96+
# Phase 3 — Files + Excel reporting (Weeks 11–16)
97+
**Goal:** Immediate business value: repeatable reporting from spreadsheets.
98+
99+
Tools:
100+
- `pathlib`, `csv`, `json`
101+
- `openpyxl` (Excel) and optionally `pandas` (transformations)
102+
103+
Capstone Project A: **Excel Merger + Validator + Report**
104+
- Input: folder of Excel files
105+
- Output: `Master_Report.xlsx` + `Master_Report.csv`
106+
- Features:
107+
- schema validation (required columns)
108+
- normalization (header mismatches)
109+
- highlight “Critical” rows
110+
- separate “Critical” tab
111+
- logs + error summary
112+
- safe reruns (versioned output)
113+
114+
Guide: **[05_AUTOMATION_FILES_EXCEL.md](./05_AUTOMATION_FILES_EXCEL.md)**
115+
116+
---
117+
118+
# Phase 4 — SQL integration (Weeks 17–22)
119+
**Goal:** Build “data pipelines” rather than “one-off reports”.
120+
121+
Tools:
122+
- SQL basics: SELECT/JOIN/GROUP BY
123+
- Python DB access (pyodbc and/or SQLAlchemy)
124+
- Migrations concept (optional early, important later)
125+
126+
Capstone Project B: **Ingest + Transform + Load**
127+
- Read Excel/CSV → validate → write to SQL staging → promote to reporting table
128+
- Idempotency key (reruns don’t duplicate)
129+
- Reject file output (bad rows)
130+
131+
Guide: **[06_SQL.md](./06_SQL.md)**
132+
133+
---
134+
135+
# Phase 5 — SolarWinds Orion integration (Weeks 23–28)
136+
**Goal:** Automate monitoring/reporting workflows using Orion data.
137+
138+
You will learn:
139+
- Orion platform API basics (SWIS, SWQL concepts)
140+
- Read nodes/interfaces/alerts/events
141+
- Produce “daily health” reports
142+
- (If allowed) acknowledge/annotate alerts
143+
144+
References:
145+
- Orion SDK repo citeturn0search23
146+
- orionsdk-python client citeturn0search3
147+
148+
Capstone Project C: **SolarWinds Daily Ops Report**
149+
- Pull top alerts, down interfaces, capacity metrics
150+
- Output: Excel + HTML dashboard page
151+
- Optional: push summary to email/Teams webhook
152+
153+
Guide: **[07_SOLARWINDS_ORION.md](./07_SOLARWINDS_ORION.md)**
154+
155+
---
156+
157+
# Phase 6 — Web GUIs / Dashboards (Weeks 29–38)
158+
**Goal:** Put your reports behind a usable internal UI.
159+
160+
Recommended order for beginners:
161+
1. **Streamlit** (fastest to working dashboards) citeturn1search0turn1search14
162+
2. **Dash** (more “app-like” dashboards; strong data grids) citeturn1search1
163+
3. **FastAPI** (when you need a real backend API) citeturn1search2
164+
165+
Capstone Project D: **Ops Dashboard**
166+
- Tabs: Excel reports, SQL summaries, SolarWinds health
167+
- Filters: customer/site, date range, severity
168+
- Caching to avoid hammering SolarWinds/SQL
169+
- Auth strategy appropriate for your environment (documented)
170+
171+
Guide: **[08_DASHBOARDS.md](./08_DASHBOARDS.md)**
172+
173+
---
174+
175+
# Phase 7 — Shipping: CI/CD + Packaging + Governance (Weeks 39+)
176+
**Goal:** Make your work easy to run, update, audit, and hand off.
177+
178+
You will learn (plain-English definitions in glossary):
179+
- CI/CD (automate test/build/release) citeturn1search3turn1search10
180+
- PyPI and “internal package indexes” citeturn2search0turn2search7
181+
- Packaging and distribution options citeturn2search3
182+
183+
Deliverables:
184+
- A “release checklist”
185+
- A “deployment modes” guide: zip deploy vs wheel vs internal index
186+
- A “security baseline”: secrets, least privilege, dependency hygiene
187+
188+
Guide: **[11_CHECKLISTS.md](./11_CHECKLISTS.md)** + **[02_GLOSSARY.md](./02_GLOSSARY.md)**
189+
190+
---
191+
192+
# How you will be evaluated (by your team)
193+
You become the SME when you can consistently:
194+
- take ambiguous automation/reporting requests
195+
- clarify requirements
196+
- deliver tools with:
197+
- good defaults
198+
- safe behavior
199+
- logs + tests
200+
- docs
201+
- predictable deploy/run steps
202+
203+
Next: **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)**

02_GLOSSARY.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# 02 — Glossary (Zero-Experience Friendly)
2+
3+
This file explains common terms used throughout the plan.
4+
5+
## Python, scripts, programs
6+
- **Python**: a programming language used to write instructions for computers.
7+
- **Script**: usually a small program meant to automate a task.
8+
- **Program**: any set of instructions that runs to do work (scripts are programs too).
9+
10+
## Packages, libraries, pip, PyPI
11+
- **Library / package**: reusable code someone else wrote so you don’t have to reinvent it.
12+
- Example: `openpyxl` (read/write Excel) or `requests` (HTTP calls).
13+
- **pip**: the tool that installs packages into your Python environment.
14+
- Example: `python -m pip install openpyxl`
15+
- **PyPI (Python Package Index)**: the public “app store” for Python libraries/packages. citeturn2search0
16+
- When you run `pip install <something>`, pip usually downloads it from PyPI by default.
17+
- **Internal PyPI**: many companies run a private mirror/index so installs are controlled and audited.
18+
19+
## Virtual environments (venv)
20+
- A **virtual environment** is an isolated Python “bubble” per project so projects don’t break each other. citeturn0search5turn0search9
21+
- `venv` is the built-in tool that creates that bubble.
22+
- Create: `python -m venv .venv`
23+
- Activate (PowerShell): `.\.venv\Scripts\Activate.ps1`
24+
25+
## Dependencies and pinning
26+
- **Dependency**: a package your project needs.
27+
- **Pinning**: locking versions so “it works today” still works next month.
28+
- Common approach: `requirements.txt` with exact versions.
29+
- Modern approach: `pyproject.toml` plus a lock file (tool-dependent).
30+
31+
## Source control (Git)
32+
- **Git**: tracks changes in files over time so you can revert, compare, collaborate.
33+
- **Repository (repo)**: a folder tracked by Git.
34+
- **Commit**: a saved snapshot of changes.
35+
36+
## Linting, formatting
37+
- **Formatter**: rewrites code to consistent style (example: **Black**).
38+
- **Linter**: finds suspicious code patterns and potential bugs (example: **Ruff**). citeturn0search2
39+
40+
## Tests (pytest)
41+
- **Test**: code that checks your code behaves correctly.
42+
- **pytest**: popular Python testing framework. citeturn2search2
43+
44+
## Logging
45+
- **Log**: a record of what a program did (for troubleshooting, auditing).
46+
- Good automation scripts always log: start/end, counts, warnings, errors.
47+
48+
## APIs and JSON
49+
- **API**: a structured way to request data or perform actions in another system.
50+
- **REST API**: common web API style using HTTP.
51+
- **JSON**: common data format APIs return (like a structured text object).
52+
53+
## SQL and databases
54+
- **Database**: stores data reliably for querying/reporting.
55+
- **SQL**: query language for databases.
56+
- **SQL Server**: Microsoft’s database platform (common in enterprises).
57+
- **ETL**: Extract → Transform → Load (pipeline pattern).
58+
59+
## SolarWinds Orion terms (high level)
60+
- **Orion**: SolarWinds platform (NPM/SAM/etc.) which exposes data via APIs/SDK.
61+
- **SWIS**: Orion “information service” API concept used to query/manage data.
62+
- **SWQL**: query language used with Orion data (like SQL, but Orion-specific).
63+
64+
## Web GUIs / Dashboards
65+
- **Dashboard**: a web page/app that shows data and allows filtering/drill-down.
66+
- **Streamlit**: fastest path to dashboards using only Python. citeturn1search0turn1search14
67+
- **Dash**: dashboard framework for interactive web apps in Python. citeturn1search1
68+
- **FastAPI**: backend API framework (when you need a real service layer). citeturn1search2
69+
70+
## CI/CD (Continuous Integration / Continuous Delivery or Deployment)
71+
- **CI**: every code change is automatically built + tested.
72+
- **CD**: automatically prepares releases and/or deploys them.
73+
- Purpose: fewer “works on my machine” problems; repeatable releases. citeturn1search3turn1search10
74+
- Even if you never run CI/CD at work initially, understanding it helps you structure projects correctly.
75+
76+
Next: **[03_SETUP_WINDOWS11.md](./03_SETUP_WINDOWS11.md)**

0 commit comments

Comments
 (0)