obsidian/01 Projects/modcomms/Mod Comms.md
2026-04-15 11:36:28 +01:00

4 KiB
Raw Blame History

name client status tech local_path deploy url server tags created last_commit commits
Mod Comms Barclays active
Python
FastAPI
React
Vite
TypeScript
PostgreSQL
Gemini
Docker
/Volumes/SSD/Projects/Oliver/modcomms docker compose up --build GCP (Google Cloud Platform)
barclays
ai
compliance
proof-review
multi-agent
gcp
2026-04-14 2026-04-15 203

Overview

AI-powered proof review tool for Barclays marketing materials. Multi-agent system analyzes uploaded proofs (images/PDFs) for:

  • Legal compliance
  • Brand adherence
  • Tone of voice
  • Channel suitability

4 specialist AI agents run in parallel, lead agent synthesizes the final verdict. Real-time WebSocket streaming (switched to REST polling due to GCP LB 30s timeout).

Backup: modcomms_backup/

Tech Stack

  • Frontend: React 18 + Vite + TypeScript (port 3000)
  • Backend: Python + FastAPI + Uvicorn (port 8000)
  • Database: PostgreSQL 16 (Alembic migrations)
  • AI: Google Gemini Pro (primary) + Flash (fallback)
  • Auth: Azure AD (MSAL)
  • Infrastructure: Docker + docker-compose
  • Deployed on: GCP (Google Cloud Platform)

Architecture

Frontend (React/Vite :3000)
    ↓ REST polling (switched from WebSocket due to GCP 30s LB timeout)
Backend (FastAPI :8000)
    ↓
4 AI Agents (Gemini) → Lead Agent → Final Verdict
    ↓
PostgreSQL + File Storage

Deployment

  • Run: docker compose up --build
  • Local: Frontend :3000, Backend :8000
  • Server: GCP (Google Cloud Platform)
  • Local path: /Volumes/SSD/Projects/Oliver/modcomms

Environment Variables

Frontend (frontend/.env.local)

GEMINI_API_KEY=
VITE_BACKEND_WS_URL=ws://localhost:8000/ws/analyze
VITE_BACKEND_URL=http://localhost:8000

Backend (backend/.env)

GEMINI_API_KEY=
DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/modcomms
AZURE_TENANT_ID=
AZURE_CLIENT_ID=
CORS_ORIGINS=http://localhost:3000
DISABLE_AUTH=true  # local dev only

Dev Commands

# Frontend
cd frontend && npm install && npm run dev

# Backend
cd backend && uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# Database migrations
cd backend && alembic upgrade head

Timeline / Git History

Date Change
2026-04-15 Replace logo SVG with PNG v6 in Sidebar and PDF Report
2026-04-15 Add deploy-dev.sh for dev server (sudo docker, fix dist permissions)
2026-04-14 Replace logo with v6 SVG across Sidebar and PDF Report
2026-03-19 Add CSV export of campaign data for super_admin and oversight_admin
2026-03-18 Critical: Switch WebSocket → REST polling (GCP LB 30s timeout fix)
2026-03-18 Switch AI model: Pro primary, Flash fallback
2026-03-18 Fix WebSocket keepalive + 25s→10s heartbeat
2026-03-16 Fix PDF logo URL with Vite base path in production
2026-03-16 Fix LlamaParse 401 + update logo to v5

Sessions

2026-04-15 Replace logo with file from /Volumes/SSD/Downloads/BAR-ModComms-logos-v6.png

Asked: Replace logo with file from /Volumes/SSD/Downloads/BAR-ModComms-logos-v6.png and set up server deployment process. Done: Created deploy-dev.sh script with dev-specific configurations (sudo docker compose, port 8001, dev project name) and successfully deployed changes.

2026-04-14 Project catalogued

Done: Added to Obsidian second brain with full details from CLAUDE.md and git history.


Change Log

Date Requested Changed Files
2026-04-15 Logo replacement, deployment scripts Added deploy-dev.sh with sudo docker compose and dev port 8001, configured git pull workflow deploy-dev.sh, deploy.sh
2026-04-14 Logo update Replace logo with v6 SVG Sidebar, PDF Report
2026-03-18 Fix dropped connections on GCP WebSocket → REST polling backend, frontend