AI-Powered Microservices Platform for Non-Profit Operations

SupportHub

One platform.  Two AI agents.  Infinite impact.

SupportHub unifies TriageAgent and QuizBot into a single production-grade microservices platform — containerized with Docker, orchestrated with Kubernetes, provisioned with Terraform. Built to help non-profit teams triage communication faster, train staff smarter, and scale operations effortlessly.

Launch TriageAgent → Launch QuizBot →
2
AI Microservices
5
Docker Containers
AWS
EC2 Deployed
K8s
Kubernetes Orchestrated
IaC
Terraform Provisioned
// Platform Services

Two Intelligent Modules.
One Unified Platform.

Both services run in independent Docker containers, deployed together under a unified Nginx API gateway — independently scalable, together unstoppable.

:8000 · :3000
TriageAgent
Non-Profit Support Triage System

An AI-powered communication triage system that automatically classifies incoming messages by urgency and intent, extracts named entities, generates professional draft responses, and routes to the correct department — in under 10 seconds. Built with a multi-agent LangChain pipeline and real-time Firebase integration, it transforms chaotic inboxes into structured, actionable workflows for non-profit support teams.

  • AI message classification & urgency detection via multi-agent LangChain pipeline
  • Named Entity Recognition (NER) with spaCy — extracts people, orgs & key dates
  • 16 REST API endpoints across 4 route modules with JWT role-based auth
  • Real-time Firebase Firestore sync with live analytics dashboard
  • AI-generated professional draft responses with one-click send capability
FastAPILangChainGemini 2.5 FlashspaCy NERReact 19FirebaseFramer Motion
Open TriageAgent →
BackendFastAPI :8000
FrontendReact :3000
AI ModelMulti-Agent
DatabaseFirebase
:8001 · :3001
🧠
QuizBot
AI-Driven Educational Assessment Platform

An intelligent quiz generation platform that trains non-profit staff through AI-generated assessments. It parses real donor emails, builds 384-dimensional vector embeddings, and generates contextual MCQ questions using a full RAG architecture — then evaluates answers with deep explanations and tracks progress over time to identify skill gaps and continually improve team performance.

  • RAG pipeline with ChromaDB vector store and 384-dim Sentence Transformer embeddings
  • AI quiz generation directly from real donor email content for practical context
  • Deep answer evaluation with contextual explanations powered by Gemini 2.5 Flash
  • Progress tracking, performance analytics & Firebase authentication
  • Persistent SQLite + ChromaDB storage via Docker volume mounts
FastAPIChromaDBGemini 2.5 FlashSentence TransformersReact 19FirebaseSQLite
Open QuizBot →
BackendFastAPI :8001
FrontendReact :3001
Vector DBChromaDB
Embeddings384-dim
// System Architecture

Microservices.
Production-Grade.

Five independent containers connected through a shared Docker network, routed through Nginx, orchestrated by Kubernetes — all provisioned with a single Terraform command.

Container Topology — Live Data Flow
CLIENT BROWSER
🌐 supporthub-nginx :80
triage-backend :8000
⚛️ triage-frontend :3000
🧠 quiz-backend :8001
⚛️ quiz-frontend :3001
🔥 Firebase Cloud Auth + DB
supporthub-network bridge mode
🌐
Nginx API Gateway
Single entry point on port 80. Routes /triage/* to TriageAgent and /quiz/* to QuizBot. Root / serves this SupportHub portal.
🐳
Docker Containerization
All 5 services in isolated containers with multi-stage builds. One command — docker compose up — starts everything.
☸️
Kubernetes Orchestration
K8s deployments, services, and ingress defined for every container. Auto-restart, health probes, and horizontal scaling built in.
🏗️
Terraform IaC
Full infrastructure as code. terraform apply installs Docker, provisions the host, and deploys all containers — zero manual steps.
GitHub Actions CI/CD
Push to main → tests run → 5 Docker images built and pushed to Docker Hub → auto-deployed. Full pipeline in minutes.
// Technology Stack

Built with the right tools.

Every layer — from AI inference to infrastructure provisioning — purpose-selected for reliability and scale.

DevOps
Docker + Compose
Kubernetes (K8s)
Terraform 1.14
GitHub Actions CI/CD
Nginx API Gateway
AI / ML
Gemini 2.5 Flash
LangChain Agents
spaCy NER
ChromaDB Vectors
Sentence Transformers
Backend
Python 3.11
FastAPI + Uvicorn
Pydantic V2
Firebase Admin SDK
SQLite + SQLAlchemy
Frontend
React 19 + Vite 7
Tailwind CSS 3.4
Framer Motion
Zustand
Recharts
// CI/CD Pipeline

Push code.
Everything deploys.

GitHub Actions handles the entire pipeline automatically — from code commit to running containers, with zero manual intervention.

STEP 01 💻
Code Push
git push main
STEP 02 🧪
Run Tests
GitHub Actions
STEP 03 🐳
Build Images
docker build ×5
STEP 04 📦
Push to Hub
Docker Hub
STEP 05 🏗️
Terraform
IaC provisioning
STEP 06
Live!
Health checks pass
// Cloud Infrastructure

Production-Grade.
Cloud-Native.

Deployed on AWS EC2, provisioned by Terraform, orchestrated with Kubernetes — zero manual steps from code to cloud.

☁️
ap-south-1 · Mumbai Region
AWS EC2

SupportHub runs on a t3.small EC2 instance with Ubuntu 24.04 LTS — 2 vCPUs, 2 GiB RAM, 20 GB EBS storage, and a permanent Elastic IP. Reliable, cost-efficient, always reachable.

t3.small Ubuntu 24.04 ap-south-1 Elastic IP
vCPUs2 cores
RAM2 GiB
Storage20 GB EBS
Public IPElastic (static)
🏗️
Infrastructure as Code · v1.14
Terraform

One command creates the complete AWS environment — VPC, subnet, internet gateway, security group, EC2, and Elastic IP. Fully reproducible, zero-click provisioning from any machine.

8 resources terraform apply 3–5 min Idempotent
Resources8 AWS objects
Deploy time~3–5 minutes
StateLocal tfstate
Providerhashicorp/aws ~5.0
☸️
K3s · Lightweight K8s
Kubernetes

10 K8s manifests cover all 5 services with health probes, resource limits, and auto-restart. Scale TriageAgent to 3 replicas with one command. Runs via K3s lightweight distribution.

10 manifests K3s Auto-heal HPA ready
Manifests10 YAML files
DistributionK3s (lightweight)
Health probesLiveness + Readiness
Scalingkubectl scale ready
// Full System Architecture

From Browser to Cloud.
Every Layer Defined.

Every component, connection, and service — fully automated from a single git push.

Complete Infrastructure Topology — Live Data Flow
🖥️  CLIENT BROWSER
☁️  AWS EC2 t3.small  ·  ap-south-1  ·  Elastic IP13.206.179.67
🌐  supporthub-nginx:80
⚡  triage-backend:8000
⚛️  triage-frontend:3000
🧠  quiz-backend:8001
⚛️  quiz-frontend:3001
🔥  Firebase Cloud  ·  Auth + FirestoreCloud
supporthub-network — bridge mode — all containers connected
☸️  K3s Kubernetes · 10 manifests
🏗️  Terraform IaC · 8 resources
// Kubernetes Orchestration

Auto-Scaling.
Self-Healing.

K3s runs all 5 services as Kubernetes pods with health probes, resource limits, and live horizontal scaling.

🌐 ×1
nginx
ClusterIP :8080
healthlive
restarts0
×1
triage-backend
ClusterIP :8000
healthlive
liveness/health
⚛️ ×1
triage-frontend
ClusterIP :3000
healthlive
restarts0
🧠 ×1
quiz-backend
ClusterIP :8001
healthlive
liveness/health
⚛️ ×1
quiz-frontend
ClusterIP :3001
healthlive
restarts0
Live Scaling Command
$ kubectl scale deployment triage-backend --replicas=3
deployment.apps/triage-backend scaled  →  Rolling update in progress... ✓ 3 replicas running
💓
Health Probes
Liveness and readiness probes on every pod. Automatic restart on failure — zero downtime for end users.
📐
Resource Limits
CPU and memory requests/limits defined per container to ensure fair resource distribution across the node.
↔️
Horizontal Scaling
Scale any deployment instantly with kubectl scale. HPA-ready for load-based auto-scaling.
// Infrastructure as Code

One Command.
Entire AWS Stack.

terraform apply creates all 8 AWS resources automatically — VPC to EC2 — in under 5 minutes.

aws_vpc
SupportHub-vpc
10.0.0.0/16 network
aws_internet_gateway
SupportHub-igw
Internet access
aws_subnet
SupportHub-subnet
ap-south-1a public
aws_route_table
SupportHub-rt
Routes traffic
aws_security_group
SupportHub-sg
Ports 22,80,8000+
aws_key_pair
SupportHub-key
SSH access
aws_instance
SupportHub-server
t3.small Ubuntu
aws_eip
SupportHub-eip
Permanent public IP
terminal — terraform apply
$ terraform init  # downloads AWS provider
$ terraform plan  # previews 8 resources
$ terraform apply -auto-approve
Apply complete! Resources: 8 added, 0 changed, 0 destroyed.
supporthub_url = "http://13.206.179.67:8080"
kubernetes_url = "http://13.206.179.67:6443"
ssh_command = "ssh -i supporthub-key ubuntu@13.206.179.67"
✓ terraform init
✓ terraform plan
⟳ terraform apply
✓ Live on AWS 🎉
// Get Started

Choose your module.

Both services are live and ready.
Select a platform to begin.