To run the application without any development setup (Docker required):
- Clone the repository and
cdinto it - Copy a sample config to the project root:
(Use
cp tests/sample_configs/full_config.yml config.yml
min_config_net_worth.ymlormin_config_income.ymlfor smaller examples.) - Start the application:
docker compose up --build
- Open http://localhost:3500 in your browser
The recommended way to develop. Requires Docker, VS Code, and the Dev Containers extension.
Installation:
- Clone the repository and open the folder in VS Code
- Click Reopen in Container when prompted, or run Dev Containers: Reopen in Container from the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - Wait for the container to build (first time may take a few minutes)
The container provides Python 3.10, all dependencies, pre-commit hooks, and a default config.yml if none exists. Port 3500 is forwarded for the Flask app.
Pre-commit hooks: Installed automatically. They run before each commit (tests, linting). To run manually: pre-commit run --all-files or make.
Common commands (inside the container):
| Action | Command |
|---|---|
| Start the Flask app | flask run |
| Run tests | pytest or make test |
| Lint and format | make lint |
Installation:
- Python 3.10 required. This project uses uv for dependencies. From the top-level directory:
uv sync
- Copy a sample config:
cp tests/sample_configs/full_config.yml config.yml
- Review allocation options at
app/data/README.md
Pre-commit hooks:
pre-commit installHooks run before each commit (tests, linting). To run manually: pre-commit run --all-files or make. To skip: git commit --no-verify.
Common commands:
| Action | Command |
|---|---|
| Start the Flask app | uv run flask run or flask run (after activating .venv) |
| Run tests | pytest or make test |
| Lint and format | make lint |
- Application entry point:
run.py - Figma board for intended structure (may not stay current)