RETURN // PORTFOLIOSYSTEM // CASE STUDY: NEWSLETTER_HERALD
FEATURED SYSTEM SHOWCASE•PRODUCTION WORKLOAD

Newsletter Herald

An automated newsletter summarization and distribution system designed for parish communities. It parses weekly publications, extracts liturgical calendar details, standardizes naming structures, and schedules email deliveries—supported by an interactive Admin Console with Google Contacts syncing and validation override workflows.

01 // SYSTEM TOPOLOGY

SERVERLESS PIPELINE
TIER 1 // WEB PANEL

Next.js 15 Client

Renders a public archive feed, subscriber signup portals, and a locked down Admin Console with validation audit tables, editable metadata modals, and subscriber directory sync.

Stack: Next.js 15, Clerk Auth, Material UI (MUI)
TIER 2 // API GATEWAY

FastAPI Gateway

Manages uploads, coordinates prompt generation, interfaces with database schemas, logs ingestion stack traces, and proxies PDF download files directly from secure storage.

Stack: Python 3.12, FastAPI, SQLAlchemy
TIER 3 // ARCHIVE STORAGE

Database & Assets

Maintains transactional records, delivery outcomes, and subscriber tables on Neon Serverless Postgres. Stores compressed assets and thumbnails in Cloudflare R2 / Google Drive.

Stack: Neon Postgres, Cloudflare R2, Google Drive API

02 // INGESTION GATES & VALIDATION

HUMAN IN THE LOOP
VALIDATION ERROR

AI extracts target Sunday date that mismatch next Sunday criteria. File is locked under the "failed_validation" status for audit log review.

MANUAL DRAFT REVIEW

Admin overrides metadata errors using the correction modal, choosing to either "Schedule Email Delivery" or mark as "Archive Only".

PRODUCTION DELIVERY

Cron triggers the asynchronous delivery worker. Scheduled newsletters are emailed to active subscribers, creating tracking logs in Postgres.

03 // PIPELINE SERVICE MAP

PIPELINE STAGETECHNOLOGYARCHITECTURE ROLE
PDF Extraction & CompressionPyMuPDF & PDF CompressorStandardizes and shrinks multi-megabyte church bulletins down to web-optimized sizes for fast loading.
Dual LLM RoutingGroq (Llama 3.1) & Local Llama 3.1Intelligently routes requests to Groq Cloud APIs and delegates bulk historical cataloging to local Ollama nodes to prevent API rate limiting.
Validation Audit LogsUpload AuditorRecords all manual and batch imports, capturing stack traces and LLM parsing errors to display in the Admin Console.
Google Contacts SyncSubscribers Sync EngineParses Gmail CSV contact structures, mapping and updating subscriber names, emails, and phone numbers in Postgres.