├── .gitignore ├── LICENSE ├── README.md ├── dbt ├── .gitignore ├── README.md ├── analyses │ └── .gitkeep ├── dbt_project.yml ├── macros │ └── .gitkeep ├── models │ ├── launches.sql │ ├── rockets.sql │ └── schema.yml ├── seeds │ └── .gitkeep ├── snapshots │ └── .gitkeep └── tests │ └── .gitkeep ├── logs └── dbt.log ├── pyproject.toml ├── requirements.txt ├── sql ├── check_data.sql └── sql_queries.sql ├── src ├── data_manipulation.py ├── hello.py ├── spacex_api.py ├── tap_spacex.py └── variables.py └── uv.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Python-generated files 2 | __pycache__/ 3 | *.py[oc] 4 | build/ 5 | dist/ 6 | wheels/ 7 | *.egg-info 8 | 9 | # Virtual environments 10 | .venv 11 | target 12 | 13 | # Pipeline config 14 | config.json 15 | 16 | # dbt artifacts 17 | dbt/target 18 | dbt/logs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Yordan Ivanov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SpaceX Missions Data Pipeline 2 | 3 | This is the code behind my free email data engineering course. 4 | 5 | Want to learn more? 6 | 7 | https://datagibberish.com/p/free-data-engineering-course 8 | 9 | ## Run 10 | 11 | This is an opinionated setup. You might not need to do it the way I do. 12 | We use a single virtual environment to keep track of all the dependencies. 13 | 14 | The only requirement to run this project is uv. 15 | To install uv, run: 16 | 17 | ```sh 18 | brew install uv 19 | uv sync 20 | ``` 21 | 22 | ## Running Scripts 23 | 24 | To run Python scripts, run: 25 | 26 | ```sh 27 | uv run -- src/