3.5 KiB
DTP Base Architecture
This document presents an overview and explanation of the DTP Base system architecture. The system is made of a core library, models, services, controllers, views, processes and workers.
Directory Structure
. ├── assets ├── data ├── docs ├── logs ├── src │ ├── app │ │ ├── controllers │ │ │ └── lib │ │ ├── models │ │ │ └── lib │ │ ├── services │ │ │ └── lib │ │ ├── templates │ │ │ ├── common │ │ │ │ ├── html │ │ │ │ └── text │ │ │ ├── html │ │ │ ├── layouts │ │ │ │ ├── html │ │ │ │ └── text │ │ │ └── text │ │ └── views │ │ ├── announcement │ │ │ └── components │ │ ├── components │ │ ├── layouts │ │ ├── load-test │ │ ├── user │ │ │ └── components │ │ └── welcome │ │ └── components │ ├── client │ │ ├── fonts │ │ ├── img │ │ │ ├── icon │ │ │ │ └── newsroom.digitaltelepresence.com │ │ │ └── screenshots │ │ ├── js │ │ │ └── lib │ │ └── less │ │ └── site │ ├── config │ ├── lib │ │ ├── core │ │ └── web │ └── workers │ └── newsroom ├── ssl ├── supervisord └── types
Models
Services
Controllers
Views
Processes
Web Application Server
The Newsroom Web Application Server implements the ExpressJS-based HTTPS interface for the application. It provides the newsroom to the end user in a browser.
Workers
. ├── src │ └── workers
Workers are processes intended to always run and provide various services to the platform. They use cron and job queues to trigger jobs, do the work required, then sleep. The workers in this system are rendering videos, generating images and audio, sending emails and notifications, and delivering other compute solutions.
Newsroom Worker
The Newsroom Worker Process has two modes of operation: Orchestration and Factory.
Orchestration mode performs the high-level work of fetching RSS feeds and creating item-ingest
jobs on the newsroom
queue.
Factory mode binds to the newsroom
job queue and provides a processor for ingest jobs. An ingest job will:
- Fetch the linked article
- Extract the text content (story) to feed the narration script generation process
- Extract images from the article to be used in the video
- Feed the text story content to AI to generate a text summary to be used as a narration script
- Feed each paragraph of the text story content to AI to generate images to be used in the video
- Feed each paragraph of the text story content to AI to generate text-to-speech audio to be used in the video
- Generate an MLT script to render the video
- Render the video
- Upload the video to storage
- Publish the video