7fc78d7058e375273d97beb80553fa3691cea76f
Cut version 0.2.21 (current = v_0_2_21) with the adjudicated DO-item fixes. Also commits the previously-untracked v_0_2_* version files that versions/index.ts imports (ROADMAP item D2), so a fresh checkout builds without dangling imports. The missing v_0_2_2 is intentional (versions are an unordered set). Built and verified: ten31portal_x86_64.s9pk packs cleanly at 0.2.21:0, arch x86_64, SDK 0.4.0.
Ten31Portal
Internal system of record for Ten31 entities, holdings, positions, and quarterly valuation sign-off.
Prerequisites
- Python 3.11+
- Node.js 20+
Backend
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -e .
uvicorn ten31portal.main:app --reload --port 8000
Health check: GET http://localhost:8000/api/health
Frontend
cd frontend
npm install
npm run dev
Opens at http://localhost:5173. Proxies /api to the backend on port 8000.
Project structure
ten31portal/
backend/
ten31portal/ # FastAPI application
main.py # App object and health endpoint
config.py # Env-based configuration
pyproject.toml
frontend/
src/
App.tsx # Main component
main.tsx # Entry point
vite.config.ts
deploy/ # StartOS packaging (Issue 17)
SPEC.md # v1 issue specs
Languages
TypeScript
49.6%
Python
48.2%
Makefile
0.9%
Shell
0.4%
JavaScript
0.4%
Other
0.5%