Files
Ten31-Portal/SPEC.md
T

1.3 KiB

Ten31Portal — v1 Issue Specs

Internal system of record for Ten31 entities, holdings, positions, and quarterly valuation sign-off. Replaces Carta for internal use. Self-hosted on StartOS.

Stack (baked in, override if you disagree)

  • Backend: FastAPI, SQLModel, SQLite, Alembic migrations
  • Frontend: React, Vite, Tailwind
  • Auth: session cookies, server-side sessions, bcrypt or argon2 password hashing
  • Money: stored as integer cents. Never float in the DB. Format to dollars only at the view layer.
  • Dates: investment_date is a date. Valuation quarter is stored as a quarter-end date (e.g. 2026-06-30).
  • Packaging: StartOS 0.4.0 service, single data volume, platform backups cover the DB.

Conventions (every issue)

  • One concern per commit. YAGNI. No speculative abstraction.
  • Type hints everywhere. Pydantic/SQLModel for all shapes crossing a boundary.
  • No PRs. Build directly.
  • House style in any user-facing copy: short sentences, no hype, no em-dashes.

Scope guard for all of v1

In: entities, holdings, positions, valuation rounds, sign-off workflow, audit log, four roles, CSV import, three read views, one workflow view, StartOS packaging.

Out (phase 2, do not build): LP access and per-LP isolation, the partner / capital-account side (capital calls, allocations, K-1s), IRR / TVPI / DPI / RVPI computation, BTC or sats denomination, charts.