Overview
This project is an API-driven service that turns online reputation monitoring data into structured reports. It supports multiple brands and sources, with metrics covering sentiment, trends, comparisons, and source-level breakdowns.
Challenge
The challenge is to generate consistent reports from different metrics, sources, and time periods while keeping the data, visualization, and document-generation layers modular. This allows new metrics and chart types to be introduced without restructuring the entire reporting pipeline.
Methodology
FastAPI handles asynchronous requests and Pydantic provides schema validation. Matplotlib generates reusable visualizations for sentiment, trends, comparisons, and source breakdowns. Jinja2 templates assemble the reports using a modular page structure, while WeasyPrint converts the resulting HTML into PDF. Generated files are streamed through the API and cleaned up through background tasks.