项目 · 全栈开发工程师

非营利筹款平台

面向高校和非营利组织的多租户 SaaS 平台,用于开展筹款活动,具备实时捐款追踪、大使计划、可定制品牌形象,以及基于 Kubernetes 的企业级可扩展能力。

🔒 私人 / 客户项目——线上站点和代码受 NDA 保护。乐意在通话中介绍架构和我的角色。

非营利筹款平台
技术栈
PythonDjangoWagtailFastAPIRustSSEMySQLRedisCeleryDockerKubernetesHelmTailwind CSSPlaywrightDjango REST Framework

项目概述

一个功能完备的筹款平台,使各类组织能够发起和管理筹款活动。该系统支持多租户隔离,为每个组织提供独立数据库,通过 Server-Sent Events 实现实时捐赠动态,支持大使筹款页面、可配置的挑战活动以及白标品牌——全部通过 Wagtail CMS 后台进行管理。

核心功能

  • 多租户架构,共享主数据库并为每个组织提供独立的捐赠数据库
  • 由 SSE 微服务(FastAPI 和 Rust/Axum)配合 Redis pub/sub 驱动的实时捐赠动态
  • 大使计划——设有个人目标和排行榜的个人筹款页面
  • 活动进度温度计、限时挑战和公益指定项目
  • 为每个组织提供白标品牌定制(logo、配色、字体、自定义域名)
  • 通过 OIDC 实现 SSO 身份验证(Google、Azure AD、Okta)
  • 使用 Celery 后台任务进行统计聚合和缓存预热
  • 对 SSE 连接进行机器人检测和速率限制
  • 通过 OpenTelemetry 和 Jaeger 实现分布式追踪
  • 使用 Playwright 的端到端测试套件

架构

多服务技术栈:Web 层采用 Django/Gunicorn,异步 SSE 流则通过 FastAPI/Hypercorn 和 Rust/Axum 基于 HTTP/2 提供,Celery worker 负责后台处理,MySQL 用于多租户存储,Redis 用于缓存和 pub/sub。媒体文件由 Azure Blob Storage 经 CDN 提供。通过 Helm 部署至 Kubernetes,支持自动扩缩容、Pod 中断预算和健康探针。通过消除 N+1 查询和多层缓存,将复杂活动页面的查询从 70 多次优化至 9 次,实现了性能调优。

联系我 →