# damklis/DataEngineeringProject

Example end to end data engineering project.

Repository: https://github.com/damklis/DataEngineeringProject
Canonical: https://ross.abutalabs.com/products/dataengineeringproject
Language: Python
License: MIT
License Family: permissive
Topics: big-data, scraping, mongodb, elasticsearch, data-engineering, kafka, kafka-connect, debezium, django-rest-framework, redis, airflow, minio, s3, python, data-pipeline, hacktoberfest
Last push: 2022-12-08T11:28:55+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 2255, "days_push": 1364, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1429, forks 278 (observed 2026-08-28T04:04:42.157602+00:00)

## What it is
An end-to-end data engineering project that scrapes news from RSS feeds via Airflow-scheduled Python scrapers and streams them through Kafka, MongoDB, Debezium, and Elasticsearch with MinIO for persistence. It exposes the collected news through a Django REST API, demonstrating a CQRS-style pipeline built entirely from open-source components.

## Use cases
- build an end-to-end data pipeline with kafka and airflow
- scrape news from rss feeds into a searchable store
- learn how debezium cdc syncs mongodb to elasticsearch
- example of cqrs with mongodb and elasticsearch
- set up kafka connect sinks for mongo, elasticsearch, and s3
- serve scraped data through a rest api
- reference architecture for a data engineering portfolio project

## When to choose
- you want a working reference implementation of a streaming data pipeline
- you're learning kafka, kafka connect, debezium, and airflow together
- you need a template for scraping plus serving data via an API

## When to avoid
- you need a production-grade, actively maintained product rather than a demo
- your stack doesn't include kafka, mongodb, or elasticsearch
- you need a lightweight pipeline without heavy infrastructure

## Facets
- artifact type: application
- maturity: maintenance
- function: web-scraping, streaming, etl, search-engine, api-framework, scheduling, caching
- domain: big-data, crawlers, apis
- platform: python, self-hosted
- tags: kafka, airflow, debezium, elasticsearch, mongodb, minio, redis, cqrs, rss-feeds, data-pipeline, example-project, data-engineering, search, automation, docker, web-server

## Member repositories
- damklis/DataEngineeringProject (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:42.157602+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:37:14.953770+00:00, confidence not recorded.
  - readme: https://github.com/damklis/DataEngineeringProject (fetched 2026-08-28T04:04:42.157602+00:00, sha 19dc6b792688)
- Data as of 2026-08-30T08:39:29.467469+00:00.
