Проєкт · Fullstack-розробник

Платформа для збору коштів для некомерційних організацій

Мультитенантна SaaS-платформа для університетів і некомерційних організацій для проведення фандрайзингових кампаній із відстеженням пожертв у реальному часі, амбасадорськими програмами, налаштовуваним брендингом і масштабованістю корпоративного рівня на Kubernetes.

🔒 Приватна / клієнтська робота — робочий сайт і код під NDA. Радо розповім про архітектуру та свою роль під час дзвінка.

Платформа для збору коштів для некомерційних організацій
Технологічний стек
PythonDjangoWagtailFastAPIRustSSEMySQLRedisCeleryDockerKubernetesHelmTailwind CSSPlaywrightDjango REST Framework

Огляд проєкту

Повнофункціональна платформа для збору коштів, що дає організаціям змогу запускати та керувати фандрейзинговими кампаніями. Система підтримує ізоляцію мультитенантності з окремими базами даних для кожної організації, стрічки пожертв у реальному часі через Server-Sent Events, сторінки амбасадорів для збору коштів, налаштовувані челенджі та white-label брендинг — усе це керується через адмінку Wagtail CMS.

Ключові можливості

  • Мультитенантна архітектура зі спільною основною БД та окремими базами даних пожертв для кожної організації
  • Стрічка пожертв у реальному часі на базі SSE-мікросервісів (FastAPI та Rust/Axum) із pub/sub через Redis
  • Програма амбасадорів — персональні сторінки збору коштів з індивідуальними цілями та таблицями лідерів
  • Термометри кампаній, обмежені в часі челенджі та призначення на конкретні цілі
  • White-label брендинг для кожної організації (логотипи, кольори, шрифти, кастомні домени)
  • SSO-автентифікація через OIDC (Google, Azure AD, Okta)
  • Фонові завдання Celery для агрегації статистики та прогрівання кешу
  • Виявлення ботів та обмеження частоти на SSE-з'єднаннях
  • Розподілене трасування за допомогою OpenTelemetry та Jaeger
  • Набір наскрізних тестів на Playwright

Архітектура

Багатосервісний стек: Django/Gunicorn для веб-рівня, FastAPI/Hypercorn та Rust/Axum для асинхронного SSE-стрімінгу через HTTP/2, воркери Celery для фонової обробки, MySQL для мультитенантного зберігання та Redis для кешування й pub/sub. Медіа надаються з Azure Blob Storage за CDN. Розгорнуто в Kubernetes через Helm з автомасштабуванням, бюджетами переривання подів (pod disruption budgets) та health-пробами. Продуктивність оптимізовано з 70+ запитів до 9 на складних сторінках кампаній завдяки усуненню N+1 та багаторівневому кешуванню.

Зв'язатися →