diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..1275a25 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,58 @@ +name: Deploy MkDocs to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'docs/**' + - 'mkdocs.yml' + - '.github/workflows/docs.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for git-revision-date-localized plugin + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install MkDocs and plugins + run: | + python -m pip install --upgrade pip + pip install mkdocs mkdocs-material mkdocs-mermaid2-plugin mkdocs-awesome-pages-plugin mkdocs-git-revision-date-localized-plugin + + - name: Build MkDocs site + run: mkdocs build --clean + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: site + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..e7b7b07 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,52 @@ +# Python Interview Algorithms Workbook + +[![CI](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ianlintner/python_dsa/actions/workflows/ci.yml) + +Clean, idiomatic Python implementations for senior/staff-level interview prep with complexity notes, pitfalls, demos, and tests. + +![Project overview screenshot](assets/visual.png) + +## Quick Navigation + +- [Engineering Study Plan](ENGINEERING_STUDY_PLAN.md) - Structured study guide from Intern to Principal level +- [Algorithms Portfolio](ALGORITHMS_PORTFOLIO.md) - Complete portfolio of algorithm implementations +- [Learning Path](LEARNING_PATH.md) - 2-3 week structured learning plan with checkpoints +- [Consistency Models](CONSISTENCY_MODELS.md) - Distributed systems consistency patterns +- [System Design Guide](INTERVIEW_SYSTEM_DESIGN.md) - Interview system design preparation +- [NeetCode Top 100](NEETCODE_TOP100.md) - Must-know LeetCode problems + +## Modules Overview + +- **algorithms/sorting** - Comparison (merge, quick, heap, insertion, selection, bubble) and non-comparison (counting, radix) +- **algorithms/searching** - Binary search family, advanced search, selection algorithms +- **data_structures** - Union-Find (DSU), Trie, LRU/LFU caches, Fenwick tree, Segment tree +- **graphs** - BFS/DFS, Topological sort, Dijkstra, A*, Bellman-Ford, Floyd-Warshall, MST, SCC +- **dp** - Fibonacci, coin change, LIS, knapsack, edit distance, bitmask TSP, LCS +- **strings** - KMP, Rabin-Karp, Z-algorithm, Manacher, suffix array/LCP +- **math_utils** - Sieve, GCD/LCM, modular arithmetic, prefix sums +- **patterns** - Sliding window, monotonic stack/queue, two pointers, backtracking +- **systems/concurrency** - Reservoir sampling, rate limiters, consensus notes + +## Getting Started + +Install (editable) and run tests: + +```bash +python -m pip install -U pip +python -m pip install -e . +pytest -q +``` + +Run demos: + +```bash +python src/main.py --list +python src/main.py --demo sorting.merge_sort +python src/main.py --demo searching.binary_search +python src/main.py --demo dp.lcs +python src/main.py --demo graphs.scc +``` + +## Repository + +For the full source code and contributions, visit the [GitHub repository](https://github.com/ianlintner/python_dsa). diff --git a/mkdocs.yml b/mkdocs.yml index 84d6cbd..a5ba105 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -43,9 +43,15 @@ markdown_extensions: - pymdownx.tilde nav: - Home: index.md - - Engineering Study Plan: docs/ENGINEERING_STUDY_PLAN.md - - Algorithms Portfolio: docs/ALGORITHMS_PORTFOLIO.md - - Learning Path: docs/LEARNING_PATH.md - - Consistency Models: docs/CONSISTENCY_MODELS.md - - System Design Guide: docs/INTERVIEW_SYSTEM_DESIGN.md - - NeetCode Top 100: docs/NEETCODE_TOP100.md + - Engineering Study Plan: ENGINEERING_STUDY_PLAN.md + - Algorithms Portfolio: ALGORITHMS_PORTFOLIO.md + - Learning Path: LEARNING_PATH.md + - Consistency Models: CONSISTENCY_MODELS.md + - System Design Guide: INTERVIEW_SYSTEM_DESIGN.md + - NeetCode Top 100: NEETCODE_TOP100.md + - System Design Interviews: + - AI System Design Glossary: system_design_interviews/ai_system_design_glossary.md + - Bitly Clone: system_design_interviews/bitly_clone.md + - Facebook Clone: system_design_interviews/facebook_clone.md + - Twitter Clone: system_design_interviews/twitter_clone.md + - WhatsApp Clone: system_design_interviews/whatsapp_clone.md