Victor-Kipruto-Rop/victor-kipruto-rop-portfolio

GitHub: Victor-Kipruto-Rop/victor-kipruto-rop-portfolio

面向肯尼亚金融领域的端到端数据工程作品集,整合 ETL、实时流处理、欺诈检测与财务分析并提供交互式仪表盘。

Stars: 26 | Forks: 1

# Victor Kipruto Rop — 数据工程作品集 **端到端数据工程作品集,涵盖 M-Pesa、KCB、Equity Group、Absa 和 KRA 的 ETL、实时流处理、欺诈检测和财务分析——配备实时 Streamlit 仪表盘和生产级基础设施。** [![CI/CD](https://static.pigsec.cn/wp-content/uploads/repos/cas/b4/b4baa63501ef0c3991c51c782e08ab6eb56e017f4c97e618da98e8684de71746.svg)](https://github.com/Victor-Kipruto-Rop/victor-kipruto-rop-portfolio/actions) [![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=flat-square&logo=python&logoColor=white)](https://python.org) [![dbt](https://img.shields.io/badge/dbt-1.7-FF694B?style=flat-square&logo=dbt&logoColor=white)](https://getdbt.com) [![License: MIT](https://img.shields.io/badge/License-MIT-green?style=flat-square)](./LICENSE) [![Last Commit](https://img.shields.io/github/last-commit/Victor-Kipruto-Rop/victor-kipruto-rop-portfolio?style=flat-square)](https://github.com/Victor-Kipruto-Rop/victor-kipruto-rop-portfolio/commits/main) [![Stars](https://img.shields.io/github/stars/Victor-Kipruto-Rop/victor-kipruto-rop-portfolio?style=flat-square)](https://github.com/Victor-Kipruto-Rop/victor-kipruto-rop-portfolio/stargazers)
## 目录 - [实时仪表盘](#-live-dashboards) - [架构](#️-architecture) - [项目](#-projects) - [工程标准](#-engineering-standards) - [基础设施与 IaC](#-infrastructure--iac) - [数据源](#️-data-sources) - [技术栈](#️-tech-stack) - [路线图](#-roadmap) - [联系方式](#-contact) ## 📊 实时仪表盘 | 仪表盘 | 链接 | 描述 | |---|---|---| | **高管财务摘要** | [🚀 查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 汇总 2025 年 KCB、Absa Kenya 和 Equity Group 的已审计 KPI | | **Absa Bank Kenya** | [🔴 查看](https://kipruto45-victor-kipruto-rop-portfolio-cc6ye8wlqrt2vtpsdndigd.streamlit.app/) | 财务 KPI、风险/资本比率以及 Open Banking API 采用指标 | | **Equity Group 泛非** | [🌍 查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 区域盈利能力、移动端普及率及肯尼亚交易矩阵 | | **KCB Group 综合** | [🦁 查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 合并业绩跟踪与 M-Pesa 贷款账簿分析 | | **KRA 收入与贸易** | [🇰🇪 查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 税务收入监控、海关贸易流向及经济指标 | ## 🏗️ 架构 ``` graph LR subgraph Sources["Data Sources"] A[CBK / NSE / KNBS Reports] B[M-Pesa / Safaricom APIs] C[KRA Revenue Data] D[Real-Time Kafka Streams] end subgraph Ingestion["Ingestion Layer"] E[Python ETL Scripts] F[Kafka Consumers] G[PDF / API Parsers] end subgraph Orchestration["Orchestration"] H[Apache Airflow DAGs] end subgraph Storage["Bronze Layer — Raw"] I[(PostgreSQL 15)] end subgraph Transform["Silver → Gold — dbt"] J[Staging Models] K[Intermediate Models] L[Mart Models] end subgraph Output["Output Layer"] M[Streamlit Dashboards] N[Isolation Forest — Fraud ML] O[Float Liquidity Forecasting] end subgraph Infra["Infrastructure"] P[Terraform — IaC] Q[Kubernetes — k8s/] R[GitHub Actions — CI/CD] end Sources --> Ingestion Ingestion --> H H --> Storage Storage --> J --> K --> L L --> M L --> N L --> O P --> Storage P --> Q R --> H R --> J ``` 详细架构信息请见 [ARCHITECTURE.md](./ARCHITECTURE.md)。 ## 📂 项目 | 项目 | 领域 | 关键指标 | 技术栈 | 仪表盘 | 状态 | |---|---|---|---|---|---| | [mpesa_safaricom](./mpesa_safaricom) | 旗舰级流处理与分析 | 处理约 120 万笔交易 | Kafka, Spark, Airflow, dbt | [查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 🟢 运行中 | | [absa_bank_kenya](./absa_bank_kenya) | 银行业 ETL 与 Open Banking | 5 年财务 KPI 历史 | Python, dbt, PostgreSQL | [查看](https://kipruto45-victor-kipruto-rop-portfolio-cc6ye8wlqrt2vtpsdndigd.streamlit.app/) | 🟢 运行中 | | [equity_group_etl](./equity_group_etl) | 泛非业务合并 | 7 国子公司汇总 | Airflow, PostgreSQL, dbt | [查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 🟢 运行中 | | [kcb_group_etl](./kcb_group_etl) | 财务与贷款分析 | KCB Group 及 6 家子公司 | Python, SQL, dbt | [查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 🔵 稳定 | | [kra_data_engineering](./kra_data_engineering) | 财政与贸易情报 | 12 个月收入时间序列 | Python, SQL, dbt | [查看](https://kipruto45-victor-kipruto-rop-portfolio-g8pspygfpttsbfggjaadwy.streamlit.app/) | 🔵 稳定 | | [safaricom_pipeline](./safaricom_pipeline) | 电信服务分析 | 订阅者与 ARPU 指标 | Python, Spark, SQL | — | 🔵 稳定 | | [kenya_banking_sector](./kenya_banking_sector) | 宏观金融稳定性 | 全行业 CBK 汇总数据 | Python, BI, Analytics | — | 🔵 稳定 | | [mpesa_loan_book_analytics](./mpesa_loan_book_analytics) | 信贷与 Vintage 分析 | 贷款集群 vintage 曲线 | Python, SQL, dbt | — | 🔵 稳定 | | [fraud_anomaly_detection](./mpesa_safaricom/fraud_anomaly_detection) | ML 欺诈监控 | ~94% 欺诈召回率 (Isolation Forest) | Python, Scikit-learn, PostgreSQL | — | 🔵 稳定 | | [float_liquidity_forecasting](./mpesa_safaricom/float_liquidity_forecasting) | 时间序列预测 | 7 天流动性需求预测 | Python, Prophet, dbt | — | 🔵 稳定 | | [agent_network_analytics](./mpesa_safaricom/agent_network_analytics) | 代理人流动性与业绩 | 10.5 万+ 代理人网络覆盖 | Python, SQL, dbt | — | 🔵 稳定 | | [remittance_analytics](./mpesa_safaricom/remittance_analytics) | 跨境汇款跟踪 | 东非侨民走廊 | Python, SQL, dbt | — | 🔵 稳定 | | [merchant_intelligence_platform](./mpesa_safaricom/merchant_intelligence_platform) | 商户 RFM 细分 | 跨商户层级的 RFM 评分 | Python, SQL, dbt | — | 🔵 稳定 | | [financial_performance_tracker](./financial_performance_tracker) | 多银行 KPI 跟踪 | 3 家银行合并视图 | Python, PostgreSQL, Streamlit | — | 🔵 稳定 | | [mpesa_enterprise_projects](./mpesa_enterprise_projects) | 泛非 Lakehouse | Medallion 架构 (青铜→黄金) | dbt, PostgreSQL, Terraform | — | 🟡 进行中 | ## ⚙️ 工程标准 | 标准 | 实施方式 | 覆盖范围 | |---|---|---| | **CI/CD** | GitHub Actions — SQL lint (SQLFluff)、dbt 编译、K8s manifest lint | 所有推送到 `main` 的操作 | | **数据质量** | dbt schema 测试 — 空值检查、唯一性、接受值、范围约束 | 所有 mart 模型 | | **单元测试** | Pytest — 数据接入逻辑、转换函数、schema 验证 | ~80%(估计值) | | **代码风格** | Black (Python)、isort、SQLFluff (SQL)、pre-commit hooks | 提交时强制执行 | | **欺诈检测** | 对 M-Pesa 交易流进行 Isolation Forest 异常评分 | ~94% 召回率(估计值) | | **密钥管理** | `.env` 文件通过 `.gitignore` 排除,代码库中无硬编码凭证 | 所有项目 | | **容器化** | 每个项目使用 Docker Compose 实现与生产环境对等的本地环境 | 所有项目 | | **编排** | Apache Airflow DAG,具备 SLA 监控、重试和补录支持 | 所有批处理 pipeline | ## 🏗️ 基础设施与 IaC Terraform (HCL) 为所有项目配置核心基础设施: - **PostgreSQL 15** — 用于原始数据接入和 dbt 转换输出的托管数据库 - **Streamlit 部署** — 带有环境变量注入的仪表盘托管 - **Kubernetes manifests** (`k8s/`) — PostgreSQL 和 Streamlit pod 的部署与扩缩容配置 - **GitHub Actions runners** — 用于 lint、测试和部署的 CI/CD pipeline 自动化 请查看每个项目目录中的 `k8s/` 以获取 Kubernetes manifests 和 Terraform 配置。 ## 🛰️ 数据源 | 来源 | 数据类型 | 更新频率 | |---|---|---| | **Central Bank of Kenya (CBK)** | 银行监管报告、移动信贷统计、审慎监管指引 | 每年 / 每季度 | | **Kenya Revenue Authority (KRA)** | 月度收入报告、海关原产地规则 | 每月 | | **Kenya National Bureau of Statistics (KNBS)** | 主要经济指标 — 通货膨胀、贸易量、GDP | 每月 | | **International Trade Centre (ITC)** | TradeMap 贸易基准和公司目录 | 每季度 | | **Safaricom / M-Pesa** | Open API 规范、可持续发展报告、GSMA 移动货币数据集 | 每年 / 实时 | | **Nairobi Securities Exchange (NSE)** | 已上市商业银行的审计财务报告 | 每年 | ## 🛠️ 技术栈
Ingestion & Processing
Orchestration & Transformation
Storage & Lakehouse
Infrastructure & DevOps
Analytics & Visualisation
ML & Data Quality
## 🗺️ 路线图 | 时间线 | 项目 | 状态 | |---|---|---| | 2026 年第三季度 | 迁移至 Apache Flink 以实现低于 100ms 的流处理延迟 | 🟡 计划中 | | 2026 年第三季度 | 集成 OpenLineage 实现端到端数据血缘跟踪 | 🟡 计划中 | | 2026 年第三季度 | 为每个项目提供独立的 Streamlit URL — 修复共享仪表盘链接 | 🟡 计划中 | | 2026 年第四季度 | 在所有数据接入层集成 Great Expectations | 🟡 计划中 | | 2026 年第四季度 | 通过 Kafka Streams 进行实时欺诈评分(替换批处理 Isolation Forest) | 🟡 计划中 | | 2027 年第一季度 | 迁移至 Apache Iceberg 以支持 lakehouse 上的时间旅行查询 | 🟡 计划中 | | 2027 年第一季度 | dbt Semantic Layer + MetricFlow 实现统一的业务指标 | 🟡 计划中 | ## 📬 联系方式 **Victor Kipruto Rop** — 数据工程师,肯尼亚内罗毕 🇰🇪 [![GitHub](https://img.shields.io/badge/GitHub-Victor--Kipruto--Rop-181717?style=flat-square&logo=github)](https://github.com/Victor-Kipruto-Rop) [![LinkedIn](https://img.shields.io/badge/LinkedIn-victor--rop-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/victor-rop-4920b4399) [![作品集](https://img.shields.io/badge/Portfolio-victor--kipruto--rop.github.io-0e75b6?style=flat-square)](https://victor-kipruto-rop.github.io/victor-resum-web/) [![电子邮件](https://img.shields.io/badge/Email-kiprutovictor39@gmail.com-D14836?style=flat-square&logo=gmail&logoColor=white)](mailto:kiprutovictor39@gmail.com) 📞 +254 723 484 552 ## 📜 许可证 MIT 许可证 — 详情请见 [LICENSE](./LICENSE)。
在肯尼亚内罗毕构建 🇰🇪 · 作品集 · LinkedIn
标签:ETL, JavaCC, Kubernetes, PMD, Streamlit, 子域名突变, 实时流处理, 搜索引擎查询, 数据工程, 测试用例, 访问控制, 请求拦截, 软件成分分析, 逆向工具, 金融数据分析