Skip to content
This repository was archived by the owner on Oct 22, 2026. It is now read-only.

Latest commit

 

History

History
228 lines (179 loc) · 10.7 KB

roadmap.md

File metadata and controls

228 lines (179 loc) · 10.7 KB

Roadmap

Feature tracking organized by sprint. Each sprint groups related functionality into a focused deliverable.


Sprint 1: Foundations [DONE]

  • pnpm monorepo with workspace config
  • Vite + React 19 + Tailwind CSS v4 + shadcn/ui
  • TanStack Router (file-based routing)
  • TanStack Query
  • Convex with full schema
  • Shared strict TypeScript config
  • Ultracite linting + Lefthook git hooks

Sprint 2: Auth, Core UI & Asset Management [DONE]

Architecture

  • Feature-based project structure with scoped TypeScript aliases
  • Shared UI layer (@shared/ui/, @shared/lib/)

Authentication (Convex Auth)

  • Install and configure @convex-dev/auth
  • Email/password authentication (sign up, sign in, sign out)
  • Auth-protected routes (redirect unauthenticated users to login)
  • Login / Sign-up pages
  • User menu in header (name, email, sign out)
  • Link Convex users table to auth identity (auto-create user on first login)
  • Row-level security: scope all queries/mutations to authenticated user

Portfolio & Data Setup

  • Auto-create default portfolio on first sign-up
  • Portfolio CRUD (create, rename, delete)
  • Portfolio switcher in sidebar/header
  • Seed preset assets in Convex (EUR, USD, BTC, ETH, main ETFs/stocks)

Core UI & Asset Management

  • Base layout (sidebar, header, navigation)
  • Toast notification system (success/error feedback on actions)
  • Confirmation dialogs for destructive actions (delete)
  • Platform CRUD (add/edit/delete financial institutions)
  • Account CRUD (manage accounts within platforms)
  • Position CRUD (manage asset holdings in accounts)
  • Asset catalog with preset assets (EUR, USD, BTC, ETH, main ETFs/stocks)
  • Custom asset creation (manual price)
  • Asset list with columns: name, platform, category, type, quantity, average cost, total invested, current price, value, absolute perf, relative perf
  • Loan management CRUD (name, initial amount, remaining principal, currency)
  • Loan transaction system (payments, adjustments) with automatic remaining amount recalculation
  • Linked loan payments — optionally debit a checking/savings account when recording a payment
  • Cascade delete of loan transactions (including linked asset transactions)

Sprint 3: Transactions & Prices [DONE]

  • Transaction system (buy/sell/transfer/dividend/interest/fee)
  • Transaction history per asset
  • Automatic average cost calculation based on transactions
  • Price API integration: Crypto (CoinGecko API)
  • Price API integration: Stocks/ETF (Yahoo Finance or Alpha Vantage)
  • Price API integration: Currencies (ExchangeRate-API or Frankfurter)
  • Configurable reference currency (EUR by default)
  • Automatic conversion of foreign currency assets
  • Display value in reference currency
  • Expanded preset asset catalog (~40 assets: crypto, US/EU stocks, ETFs, currencies, commodities)
  • Live external asset search (CoinGecko + Yahoo Finance) with import-on-select
  • Linked transactions between positions — optionally create counterpart transaction on a destination position (SELL→cash TRANSFER_IN, BUY→cash TRANSFER_OUT, transfers between same-asset positions, DIVIDEND/INTEREST→cash)
  • Portfolio-wide transactions tab — all transactions across all positions in a single table (enriched with asset, platform, account metadata)
  • Dedicated /transactions page with unified asset + loan transaction view, collapsible linked groups, and creation flow
  • Optional time field (HH:mm) on transactions for precise ordering within the same date
  • Shared type models (shared/model/) for cross-feature type reuse

Sprint 4: Dashboard & Views [DONE]

  • Main dashboard with gross wealth (total assets)
  • Main dashboard with net wealth (assets - liabilities)
  • Detailed view (full asset list)
  • Aggregated view by category (Stocks, Crypto, Cash, etc.)
  • Settings page with display currency preference
  • Position-level currency for cost-basis (distinct from asset market-price currency)
  • Aggregated view by platform
  • Aggregated view by asset type
  • Aggregated view by account type
  • Total wealth evolution over time (line chart)
  • Distribution by category (pie chart)
  • Distribution by platform (pie chart)
  • Performance by asset (bar chart)
  • Stablecoin toggle on crypto positions — reclassifies stablecoins as cash in category allocation
  • Automatic daily portfolio snapshots
  • Sub-daily periodic snapshots (every 30 min, also triggered by price updates) with extended timeframes (5m/15m/1h/4h/12h/1D/1W–ALL)
  • Snapshot data retention (cleanup after 30 days, preserve daily granularity)

Sprint 5: Extended Features

Budgeting / Cash Flow

  • Recurring income tracking (salary, rent, dividends)
  • Recurring expense tracking (rent, subscriptions, loans)
  • Cash flow projection over X months
  • Monthly cash flow visualization

Goals & Milestones

  • Define financial goals (e.g., "100k€ net worth")
  • Progress tracking towards each goal
  • Intermediate milestones
  • Estimated achievement date based on trend

Real Estate

  • Estimated property value (manual update)
  • Rent received (if rental)
  • Charges (property tax, condo fees, insurance)
  • Gross and net yield calculation
  • Link to associated loan

Sprint 6: Polish

  • Responsive design (overflow-x-auto tables, touch targets, flex-wrap pills)
  • Dark mode (persisted to Convex, light/dark/system toggle)
  • Empty states with onboarding CTAs (e.g., "Add your first platform")
  • UI polish: premium color palette, KPI card icons, dropdown menus replacing red delete buttons
  • Settings page restructured into card-based sections (Appearance + Display + Data Status)
  • Settings page: Account section (profile info), Portfolio Overview (stats), Data Retention (policies), Danger Zone (portfolio deletion)
  • Data status timestamps: per-source last price refresh and last snapshot in Settings + sidebar
  • Currency conversion fix in hierarchy view
  • Chart date bug fix (same-day snapshots use time labels)
  • Chart tooltip labels and legend color fix
  • Wealth Evolution view selector harmonized with Tabs component
  • Removed redundant Performance by Asset chart from dashboard
  • Redesigned aggregation views in Assets page (colored dots, thin bars, cleaner layout)
  • Dropdown menu sizing and icon button touch targets improved
  • Sidebar separator overflow fix
  • Dedicated /analytics page with allocation (pie/treemap toggle) and performance treemap
  • Consolidated analytics into /analytics page (removed Assets Analytics tab)
  • Position creation UX: filter assets by account type (Brokerage → stocks only, CryptoWallet → crypto only, etc.)
  • Position creation UX: delete saved/custom assets from combobox (with referential integrity checks)
  • Position creation UX: price/currency mismatch warnings and reset controls
  • Position creation UX: dynamic combobox group ordering (search results first when searching)
  • Security hardening: auth on all endpoints, input validation on all mutations, cookie security flags, no console leaks
  • TypeScript strict mode hardening: exactOptionalPropertyTypes, noUncheckedIndexedAccess, noPropertyAccessFromIndexSignature — 0 errors across frontend + Convex backend
  • Dockerfile type checking: tsc --noEmit for frontend and Convex in Docker build stage
  • Landing page marketing (alpha testers recruitment, Astro static site)
  • Landing page SEO optimization (meta tags, JSON-LD, sitemap, robots.txt, FAQ, keyword optimization)
  • Legal pages: Privacy Policy (/privacy) and Terms of Service (/terms)
  • CSV import — generic platform-agnostic importer with smart column auto-detection (EN/FR/NL/DE), ISIN resolution via Yahoo Finance, batch backend mutations, and entity resolution wizard
  • Add Privacy Policy and Terms of Service links in the dashboard (Settings or footer) — needed before monetization
  • Tests
  • Documentation

Wealth Evolution Chart Enhancements

  • Custom date range zoom: allow selecting a custom period (start/end date) to zoom into on the Wealth Evolution chart
  • Category filter toggle: enable/disable specific categories (e.g., show only Crypto) to filter what is displayed on the Wealth Evolution chart

Sprint 7: UX & Refinements

Table Interactivity

  • Edit/delete actions on unified /transactions page (asset + loan, with linked transaction cascade)
  • Column sorting on Asset List table
  • Column sorting on Transactions table
  • Filter bar for Asset List (by platform, category, currency)
  • Date range filter for Transactions
  • Column visibility toggle for Asset List (hide/show columns)

Analytics Expansion

  • Monthly P&L bar chart (performance by month)
  • Historical allocation evolution (stacked area chart)
  • Currency exposure breakdown
  • Dividend/Interest income summary

Dashboard Enhancements

  • KPI cards — trend indicators (24h/7d change arrows or sparklines)
  • Wealth Evolution chart — legend click to toggle series visibility

Hierarchy View Enhancements

  • Show total value per platform in the accordion header (next to account count)
  • Show total value per account in the account card header

Polish

  • Global search / command palette (Cmd+K)
  • React Error Boundary at root level (catches render crashes, full-screen fallback)
  • Position drill-down page/dialog (P&L chart + transaction history)

Backlog (V2+)

Future features to consider after MVP:

  • Transitive currency conversion in buildRateMap (e.g., USD→CHF via USD→EUR + EUR→CHF when no direct pair exists)
  • CSV import from platforms → Moved to Sprint 6 (done)
  • PDF/Excel report export
  • Price alerts
  • Rebalancing suggestions
  • Benchmarking vs indices (S&P500, etc.)
  • Tax reporting (capital gains calculation)
  • Shared portfolios (invite other users to view/edit a portfolio)
  • Multi-user mode (for commercialization)
  • Mobile application (PWA or native)
  • Dividend/Interest income dashboard and calendar
  • Target allocation with deviation visualization and rebalancing suggestions
  • Pagination / infinite scroll for large transaction lists
  • AI-powered portfolio assistant — integrated AI agent that provides:
    • Portfolio recap & summary (natural language overview of holdings, allocation, recent changes)
    • Monitoring & alerts (anomaly detection, significant moves, drift from target allocation)
    • Advisory insights (risk assessment, diversification suggestions, optimization tips)
    • Projections & simulations (wealth trajectory forecasting, "what-if" scenario modeling)