Skip to content

Repository files navigation

Solvia

Solvia is a local-first wealth tracking application for personal finance data.

Product direction

Solvia tracks account balances, savings products, listed investments, crypto-assets, non-listed assets, cashback and other gains through immutable historical entries.

The application intentionally separates:

  • entered values;
  • money flows;
  • calculated valuations and performance metrics.

This prevents deposits, withdrawals, dividends and transfers from being confused with actual investment performance.

V1 scope

The first version focuses on manual data entry and reliable calculations:

  • accounts and envelopes;
  • assets and positions;
  • account and position snapshots;
  • important cash flows;
  • net-worth history;
  • period-based charts;
  • custom aggregation steps;
  • CSV/JSON export and backup foundations;
  • local-first security defaults.

Out of scope for V1: bank synchronization, order placement, investment advice, complete tax automation, mobile applications, multi-user cloud hosting and real-time market data.

Technical baseline

Area Decision
Language Java 25
Backend Spring Boot 4
Desktop JavaFX + AtlantaFX
Database PostgreSQL
Migrations Flyway
Persistence access Spring JDBC JdbcClient
API style REST, validation, repository-backed adapters, static OpenAPI
Build Maven multi-module
Security stance Local-first, no external telemetry

Repository layout

Solvia/
├─ solvia-domain/
├─ solvia-application/
├─ solvia-infrastructure-persistence/
├─ solvia-backend/
├─ solvia-desktop/
├─ docs/
│  ├─ adr/
│  └─ analysis/
├─ compose.yaml
└─ pom.xml

Build

mvn clean verify

Run PostgreSQL

docker compose up -d postgres

Default local credentials are development-only and must not be reused outside local developer machines.

Run backend

mvn -pl solvia-backend -am spring-boot:run

The -am flag is required when launching from the root workspace because the backend depends on sibling reactor modules. The backend binds to 127.0.0.1 by default.

Equivalent helper:

./scripts/run-backend.sh

API endpoints

GET    /api/accounts
POST   /api/accounts
GET    /api/accounts/{id}
PUT    /api/accounts/{id}
DELETE /api/accounts/{id}

GET    /api/assets
POST   /api/assets
GET    /api/assets/{id}
PUT    /api/assets/{id}
DELETE /api/assets/{id}

GET    /api/accounts/{accountId}/positions
POST   /api/positions
GET    /api/positions/{id}
PUT    /api/positions/{id}
DELETE /api/positions/{id}

POST   /api/account-snapshots
GET    /api/accounts/{accountId}/snapshots
POST   /api/position-snapshots
GET    /api/positions/{positionId}/snapshots
POST   /api/cash-flows
GET    /api/accounts/{accountId}/cash-flows

GET    /api/net-worth
GET    /api/net-worth/series
GET    /api/performance
GET    /api/allocation
GET    /api/openapi.yaml

Run desktop shell

mvn -pl solvia-desktop -am javafx:run

Equivalent helper:

./scripts/run-desktop.sh

About

Application local-first de suivi patrimonial — Java 25, Spring Boot 4, JavaFX, PostgreSQL, Flyway, Maven multi-module.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages