Proyecto · Desarrollador fullstack

Plataforma de recaudación de fondos para organizaciones sin fines de lucro

Plataforma SaaS multiinquilino para que universidades y organizaciones sin fines de lucro gestionen campañas de recaudación de fondos con seguimiento de donaciones en tiempo real, programas de embajadores, personalización de marca y escalabilidad de nivel empresarial en Kubernetes.

🔒 Trabajo privado / de cliente — el sitio en vivo y el código están bajo NDA. Con gusto explico la arquitectura y mi rol en una llamada.

Plataforma de recaudación de fondos para organizaciones sin fines de lucro
Stack tecnológico
PythonDjangoWagtailFastAPIRustSSEMySQLRedisCeleryDockerKubernetesHelmTailwind CSSPlaywrightDjango REST Framework

Descripción general del proyecto

Una plataforma de recaudación de fondos con todas las funciones que permite a las organizaciones lanzar y gestionar campañas de recaudación. El sistema admite aislamiento multiinquilino con bases de datos por organización, feeds de donaciones en tiempo real mediante Server-Sent Events, páginas de recaudación de embajadores, retos configurables y marca blanca, todo gestionado a través de un panel de administración de Wagtail CMS.

Características principales

  • Arquitectura multiinquilino con una base de datos principal compartida y bases de datos de donaciones por organización
  • Feed de donaciones en tiempo real impulsado por microservicios SSE (FastAPI y Rust/Axum) con pub/sub de Redis
  • Programa de embajadores: páginas de recaudación personales con objetivos individuales y tablas de clasificación
  • Termómetros de campaña, retos con tiempo limitado y designaciones de causas
  • Marca blanca por organización (logotipos, colores, tipografías, dominios personalizados)
  • Autenticación SSO mediante OIDC (Google, Azure AD, Okta)
  • Tareas en segundo plano con Celery para la agregación de estadísticas y el precalentamiento de la caché
  • Detección de bots y limitación de velocidad en las conexiones SSE
  • Trazabilidad distribuida con OpenTelemetry y Jaeger
  • Conjunto de pruebas de extremo a extremo con Playwright

Arquitectura

Pila multiservicio: Django/Gunicorn para la capa web, FastAPI/Hypercorn y Rust/Axum para el streaming SSE asíncrono sobre HTTP/2, workers de Celery para el procesamiento en segundo plano, MySQL para el almacenamiento multiinquilino y Redis para la caché y el pub/sub. Los archivos multimedia se sirven desde Azure Blob Storage detrás de una CDN. Desplegada en Kubernetes mediante Helm con autoescalado, presupuestos de interrupción de pods y sondas de estado. Rendimiento optimizado de más de 70 consultas a solo 9 en páginas de campaña complejas mediante la eliminación de N+1 y el almacenamiento en caché multicapa.

Contacto →