POTE/docs/05_dev_setup.md
ilia 204cd0e75b Initial commit: POTE Phase 1 complete
- PR1: Project scaffold, DB models, price loader
- PR2: Congressional trade ingestion (House Stock Watcher)
- PR3: Security enrichment + deployment infrastructure
- 37 passing tests, 87%+ coverage
- Docker + Proxmox deployment ready
- Complete documentation
- Works 100% offline with fixtures
2025-12-14 20:45:34 -05:00

41 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dev setup (conventions; code scaffolding comes next)
This doc sets the conventions well implement in the first “code PRs”.
## Python + layout
- Use Python 3.x
- Source layout: `src/` + `tests/`
- Prefer type hints and docstrings
## Configuration
- Store secrets in `.env` (not committed).
- Commit a `.env.example` documenting required variables.
Expected variables (initial):
- `POTE_DB_URL` (e.g., `sqlite:///./pote.db` or Postgres URL)
- `QUIVER_API_KEY` (optional, if using QuiverQuant)
- `FMP_API_KEY` (optional, if using Financial Modeling Prep)
## Database
- Default dev: SQLite for fast local iteration.
- Support Postgres for “real” runs and larger datasets.
- Migrations: Alembic (once models are in place).
## Testing
- `pytest` for unit/integration tests
- Prefer:
- HTTP clients tested with mocked responses
- DB tests using SQLite in a temp file or in-memory where possible
## Logging
- Use standard `logging` with consistent, parseable messages.
- ETL jobs should log counts: fetched/inserted/updated/skipped.
## PR sizing guideline
Each PR should:
- implement one coherent piece (schema, one client, one ETL, one metric module)
- include tests
- include minimal docs updates (if it changes behavior)