This repository contains a technical evaluation project for Analytics Engineering candidates at Jarvus. It provides a structured environment for working with data pipelines using dbt and DuckDB.
.
├── data/ # Data directory (gitignored except for .gitkeep)
│ └── raw/ # Raw data storage
├── models/ # dbt models
│ ├── staging/ # Staging models
│ ├── intermediate/ # Intermediate models
│ └── marts/ # Mart models
├── scripts/ # Data ingestion scripts
├── tests/ # dbt tests
└── macros/ # dbt macros
- Docker and Docker Compose
- Git
-
Clone the repository:
git clone https://github.com/your-org/analytics-engineer-interview.git cd analytics-engineer-interview
-
Start the development environment:
docker compose build docker compose run dev
-
Run the full pipeline:
docker compose run analytics
-
Data Ingestion:
docker compose run ingest
-
dbt Commands:
docker compose run dbt deps # Install dbt dependencies docker compose run dbt debug # Test connection docker compose run dbt build # Run models, tests, and snapshots
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes to the models, scripts, or configurations
-
Test your changes:
docker compose run analytics
-
Open a pull request on GitHub
The project includes a GitHub Actions workflow that:
- Runs on push to main branch and pull requests
- Executes the full pipeline
- Uploads the DuckDB database and dbt artifacts as workflow artifacts
- Downloads example data from public sources
- Loads data into a local DuckDB database
- Processes data through dbt models:
- Staging models for initial data cleaning
- Intermediate models for data transformation
- Mart models for final analysis
stg_bus_shelters
: Initial cleaning and column renamingint_shelter_locations
: Geographic clustering analysismart_shelter_distribution
: High-level shelter distribution metrics
pyproject.toml
: Python dependencies managed by Poetrydbt_project.yml
: dbt project configurationprofiles.yml
: dbt connection profilesdocker-compose.yml
: Container configurationDockerfile
: Development environment definition
See our Contributing Guidelines for development practices and standards.
If you encounter any issues or have questions, please:
- Check the existing GitHub issues
- Create a new issue if needed
- Comment on your assigned evaluation task
This project is proprietary and confidential. All rights reserved.