Skip to content

Explore Example Project

This is a complete Bruin project that ingests chess data from the Chess.com API into a local DuckDB database and builds a player summary report. Browse the files below to see how a real project is structured.

chess-project/
.bruin.yml
.gitignore
chess-pipeline
pipeline.yml
assets
raw
games.asset.yml
profiles.asset.yml
reports
player_summary.sql

What's Inside

The project has two root config files and a pipeline with assets organized by layer:

  • .bruin.yml — Project-level configuration: DuckDB and Chess.com connections.
  • chess-pipeline/pipeline.yml — Pipeline definition using ingestr to pull from Chess.com into DuckDB.
  • assets/raw/ — Ingestion assets that land source data as-is:
    • games.asset.yml — Chess game data.
    • profiles.asset.yml — Player profile data.
  • assets/reports/ — Transformed assets that build on raw data:
    • player_summary.sql — Joins games and profiles to produce win rates by color.

Setup

Fill in .bruin.yml with your connections. You can read more about connections here.

The template comes pre-configured with 10 popular Chess.com players. You can modify the players list in your chess connection to track different players.

Running the Pipeline

Run the whole pipeline:

shell
bruin run chess-pipeline/pipeline.yml

Or run a single asset:

shell
bruin run chess-pipeline/assets/reports/player_summary.sql

You can optionally pass a --downstream flag to run an asset with all of its downstreams.