https://github.com/pedrosfaria2/what_the_feed
An app to manage and share RSS feeds
https://github.com/pedrosfaria2/what_the_feed
api-rest ddd-architecture fastapi pydantic python tdd uv uvicorn webapp
Last synced: 3 months ago
JSON representation
An app to manage and share RSS feeds
- Host: GitHub
- URL: https://github.com/pedrosfaria2/what_the_feed
- Owner: pedrosfaria2
- License: mit
- Created: 2025-04-26T20:02:37.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-27T00:20:19.000Z (6 months ago)
- Last Synced: 2025-06-15T00:36:38.565Z (4 months ago)
- Topics: api-rest, ddd-architecture, fastapi, pydantic, python, tdd, uv, uvicorn, webapp
- Language: Python
- Homepage:
- Size: 88.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# What The Feed
A programmable RSS Feed Mixer application that allows users to blend multiple RSS feeds into custom streams using rules for filtering, tagging, and transforming content.
## System Requirements
- Python 3.13 or higher
- Docker (optional, for containerized deployment)
- UV## Project Overview
What The Feed is a flexible RSS feed aggregation and transformation system built with FastAPI. It enables users to:
- Aggregate content from multiple RSS feeds
- Apply custom filtering rules to feed items
- Transform content using various rule types
- Generate custom mixed feeds in different formats## Key Features
- **Feed Management**: Add, update, and remove RSS feed sources
- **Mixer Creation**: Create custom feed mixers that combine multiple sources
- **Rule Engine**: Define rules for filtering and transforming feed content
- **Custom Transformations**: Apply various transformations to feed items
- **Multiple Output Formats**: Generate mixed feeds in different formats (RSS, JSON)## How to Run the Project
### Setup
```bash
# Install dependencies using UV
make setup
```This command creates a virtual environment, installs dependencies, and sets up pre-commit hooks.
### Run the Application
```bash
# Run the application locally
make run
```The application will start on http://0.0.0.0:8001 with auto-reload enabled.
### Docker Deployment
```bash
# Run using Docker
make run-docker# Run using Docker Compose
make run-compose
```### Development Commands
```bash
# Update dependencies
make update# Generate UV lock file
make lock# Run tests
make test# Run tests with coverage report
make test-coverage# Lint the code
make lint# Format the code
make format# Clean the project
make clean# Run database migrations
make migrate
```## Makefile Commands
- `setup`: Install dependencies using UV
- `run`: Run the application locally
- `run-docker`: Run the application using Docker
- `run-compose`: Run the application with Docker Compose
- `update`: Update dependencies using UV
- `lock`: Generate UV lock file
- `test`: Run tests
- `test-coverage`: Run tests with coverage report
- `lint`: Lint the code using flake8
- `format`: Format the code using black
- `clean`: Clean the project (remove cache files, build artifacts, etc.)
- `migrate`: Run database migrations