Skip to content

Getting Started

Prerequisites

  • uv — Python package and environment manager
  • Python 3.12 (managed automatically by uv via .python-version)

Installation

# Clone the repo
git clone https://github.com/ranajoy-cosmo/munger-matics.git
cd munger-matics

# Install runtime + dev dependencies
make install

# Install pre-commit hooks
make hooks

Environment Variables

Create a .env file in the project root and fill in your values. Never commit .env.

Running the App

make run

This starts the Streamlit dashboard at http://localhost:8501.

Common Commands

Command Description
make install Install all dependencies
make hooks Install pre-commit hooks
make run Run the Streamlit dashboard
make test Run tests with coverage report
make lint Check code style
make typecheck Run mypy type checking
make format Auto-format code
make format-check Check formatting without modifying (used in CI)
make docs Serve documentation locally at http://127.0.0.1:8000

Dependency Groups

Dependencies are split into groups in pyproject.toml:

  • [project] dependencies — runtime deps, always installed
  • [dependency-groups] dev — development tools (pytest, ruff, mypy, mkdocs-material, pre-commit)
  • [dependency-groups] flows — Prefect orchestration, installed only when working on pipelines
# Add a runtime dependency
uv add some-package

# Add a dev-only dependency
uv add --group dev some-tool

# Install the flows group to work on Prefect pipelines
uv sync --group flows

Always commit uv.lock after adding or updating dependencies.