Architecture

Repository to Architecture Mapping

This document maps each GitHub repository to the architectural components shown in the System Overview.

Quick Reference Table

GitHub Repo Architecture Component Tech Stack Primary Purpose
ThriveChurchOfficialAPI Global API C#/.NET 8, MongoDB, Redis, Docker Central hub for all sermon and configuration data
ThriveAPIMediaTool Admin Tool Angular 20, TypeScript, Docker/nginx Staff UI for uploading and managing content
ThriveChurchOfficialApp_CrossPlatform Mobile App React Native 0.81 / Expo, TypeScript, Zustand, React Query iOS and Android mobile app for attenders
Thrive-FL.org Public Website Next.js 16, TypeScript, Howler.js, AWS Amplify Public marketing site and sermon browsing
AWSLambdas AI Processing Pipeline Python 3.11, AWS Lambda, Azure Speech API, OpenAI Transcription, summarization, tagging, podcast generation
Sermon_Summarization_Agent AI Pipeline (LangGraph Agent) Python, LangGraph, OpenAI Future: advanced sermon analysis and enrichment
ThriveAPIMediaTool Media Storage & Serving AWS S3 Hosts sermon audio files and podcast RSS feeds
Thrive_Stream_Controller Livestream Control Dashboard C#/.NET, React, Docker One-click stream management UI
ProPresenter_Automations Livestream Graphics Automation Python, ProPresenter API Auto-triggers OBS scene changes and graphics during playback
Architecture Documentation Markdown, GitHub Pages Central source of truth for system architecture and relationships

Component Details

Global API

Repository: ThriveChurchOfficialAPI Stack: C#/.NET 8, MongoDB, Redis, Docker Endpoints: Swagger UI at /swagger (dev: localhost:8080)

Responsibilities:

Data Flow:

Admin Tool

Repository: ThriveAPIMediaTool Stack: Angular 20, TypeScript, Docker/nginx Dev URL: localhost:4200 (expects API at localhost:8080)

Responsibilities:

Data Flow:

Mobile App

Repository: ThriveChurchOfficialApp_CrossPlatform Stack: React Native 0.81 / Expo, TypeScript, Zustand (state), React Query (data fetching) Root folder: ThriveChurchExpo/

Responsibilities:

Data Flow:

Public Website

Repository: Thrive-FL.org Stack: Next.js 16, TypeScript, Howler.js (audio playback), AWS Amplify Dev URL: localhost:3000 (via npm run dev)

Responsibilities:

Data Flow:

AI Processing Pipeline

Repository: AWSLambdas Stack: Python 3.11, AWS Lambda, Azure Speech-to-Text, OpenAI API, AWS S3 Config: AWS SAM template at repo root

Responsibilities:

Lambda Functions:

  1. transcription_processor – Receives upload event, downloads audio, calls Azure Speech API, stores transcript
  2. sermon_processor – Generates summary, tags, waveform; updates MongoDB; conditionally invokes series_summary_processor
  3. podcast_rss_generator – Creates podcast descriptions, updates PodcastEpisodes collection, regenerates RSS XML
  4. series_summary_processor – Aggregates completed series, generates cohesive series summary, updates MongoDB

Data Flow:

Sermon Summarization Agent

Repository: Sermon_Summarization_Agent Stack: Python, LangGraph (AI orchestration), OpenAI, LangChain Purpose: Advanced multi-step sermon analysis (future expansion of AI pipeline)

Responsibilities:

Media Storage & Serving

Service: AWS S3 Hosted in: Global API configuration (S3 bucket paths and credentials)

Hosted on S3:

Access:

Livestream & Production

Primary Repository: Thrive_Stream_Controller Support Repository: ProPresenter_Automations Stack:

Responsibilities:

Data Flow:

See Livestream & Production for detailed signal flow.


Data Direction: Content Pipeline

Staff ──upload──> Admin Tool ──> Global API ──> MongoDB + S3
                                     |
                                invokes (when sermon created)
                                     |
                                     v
                        AI Processing Pipeline
                        (transcription → enrichment)
                                     |
                                     v
                          Enriched data back to MongoDB
                          (summaries, tags, waveform, RSS)
                                     |
                 ┌───────────────────┴──────────────────┐
                 v                                       v
         Mobile App & Website                   Podcast Platforms
         (read via Global API)              (Apple, Spotify, Google, etc.)

Tech Stack Summary

Layer Technology
Backend API C#/.NET 8, MongoDB, Redis, JWT
Frontend (Staff) Angular 20, TypeScript
Frontend (Attenders - Mobile) React Native 0.81 / Expo
Frontend (Attenders - Web) Next.js 16, TypeScript
AI & Processing Python 3.11, AWS Lambda, OpenAI API, Azure Speech
Media AWS S3
Cache & Sessions Redis (prod), in-memory (dev)
Database MongoDB (SermonSeries database)
Livestream OBS Studio, ProPresenter 7, Blackmagic ATEM, Python automations
Deployment Docker, AWS App Runner, AWS Amplify, AWS Lambda/SAM

Key Cross-Repo Integrations

Global API ↔ Admin Tool

Global API ↔ Mobile App / Website

Global API ↔ AI Pipeline

AI Pipeline ↔ S3

Stream Controller ↔ OBS / ProPresenter


Deployment Units

Each repo deploys independently:

See Deployment Order for safe update sequences.