Data Science TemplateΒΆ
The data-science template is the core of this meta-project. It follows a modular structure inspired by best industry practices.
Folder StructureΒΆ
βββ .github/ # GitHub Actions CI/CD workflows
βββ .gitlab/ # GitLab CI/CD pipelines
βββ app/ # Streamlit dashboard
βββ api/ # FastAPI model serving
βββ data/ # Local data storage (Git ignored)
β βββ external/
β βββ interim/
β βββ processed/
β βββ raw/
βββ dockerfiles/ # Optimized Docker images
βββ models/ # Trained models (Git ignored)
βββ notebooks/ # Jupyter notebooks for EDA and experimentation
βββ src/ # Main project source code
β βββ {{ package_name }}/
β βββ core/ # Core logic and utilities
β βββ model/ # Model training and prediction
β βββ ...
βββ tests/ # Pytest test suite
βββ Makefile # Automation tasks
βββ pyproject.toml # Dependency management
βββ README.md # Project documentation
Core ConceptsΒΆ
Separation of Concerns: Logic is in src/, UI is in app/, API is in api/.
Reproducible Environment: uv.lock ensures every developer uses the exact same versions.
Docker Ready: Multi-stage Dockerfiles for optimized production builds.
The MakefileΒΆ
The Makefile is your main entry point for automation:
make dev-install: Setup virtual env and project dirs.
make check: Run Ruff (lint) and Mypy (types).
make test: Run all tests with coverage.
make api: Launch the FastAPI server.
make app: Launch the Streamlit dashboard.