Local-first portfolio construction assistant with a scored asset universe, correlation-aware candidate portfolios, FastAPI backend, React frontend, and SQLite persistence.
| Area | What this project shows |
|---|---|
| Product | Single-user portfolio construction workflow from risk profile to candidate allocations |
| Finance | Scored stock/ETF universe, watchlist input, correlation-aware selection, risk parity allocation, historical analytics |
| Engineering | FastAPI, SQLAlchemy 2.0, Alembic, SQLite, React 18, TypeScript, Vite, Tailwind |
| Reliability | Local-first design, frozen snapshots, read-only analytics endpoint, JSON export schema, backend test suite |
| Portfolio value | Demonstrates finance domain modeling, API design, typed frontend work, and non-advisory product language |
Educational analytics only. BuildTech does not provide investment advice, trading signals, robo-advice, or financial recommendations.
| Universe | Results |
|---|---|
![]() |
![]() |
- Complete an 8-question risk questionnaire or use the risk slider override.
- Explore a scored universe of US stocks and ETFs.
- Build an optional watchlist for candidate filtering.
- Generate Core, Growth Tilt, and Defensive Tilt candidate portfolios.
- Review allocation, construction log, historical analytics, and SPY overlay.
- Save, archive, or export portfolios as versioned JSON.
- FastAPI backend with SQLAlchemy 2.0 ORM models and Alembic migration support.
- Three-tier price resolver: SQLite cache, frozen Parquet snapshot, and script-only
yfinancerefresh. - Correlation-aware construction with relaxation passes and equal-weight fallback.
- Risk parity allocation with risk-level constraints.
- Read-only analytics endpoint that avoids live fetches and avoids DB writes.
- Forecasting-language pre-commit hook to keep advisory claims out of the project.
- React/Vite frontend with TypeScript, Tailwind, and production build checks.
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reloadOn Windows PowerShell, activate with:
.\.venv\Scripts\Activate.ps1cd frontend
npm install
npm run devdocker compose up --buildcd backend
pytest
cd ../frontend
npm run typecheck
npm run buildMIT License. See LICENSE.

