๐ฑ Comprehensive Life Management Platform
Track, analyze, and optimize all aspects of your life through data-driven insights, financial simulations, and health metrics.
| Module | Description |
|---|---|
| ๐ Life Score | Aggregated score (0-100) across all pillars of life |
| ๐ฐ Financial Management | Multi-currency accounts, net worth tracking, tax profiles |
| ๐ฎ Simulation Engine | Project your financial future with scenarios and events |
| ๐ Health & Longevity | Evidence-based life expectancy calculations |
| ๐ Custom Metrics | Track any metric with API integration |
| ๐งช Scientific adherence | Adherence indices, streaks, milestones, and celebration telemetry |
| ๐ Notifications & Realtime | Manage in-app and browser alerts while wallboard updates pulse in real time |
git clone https://github.com/frostaura/fa.lifeos.git
cd fa.lifeos
cp .env.example .env
docker compose up -dOr use the project Makefile:
make docker-ready- Frontend: http://localhost:5173
- Backend: http://localhost:5001
- MailHog: http://localhost:8025
- Authentication: open the landing page and use Sign in or Get started. The public
/loginroute redirects back into that landing modal. - Dev quick login: disabled by default; only enable it locally with
VITE_ENABLE_DEV_LOGIN=truewhen you explicitly need the non-passkey fallback.
# Database
docker compose up -d postgres
# Backend
cd src/backend && dotnet run --project LifeOS.Api
# Frontend
cd src/frontend && npm install && npm run devFor Docker-based local runs, keep runtime secrets in the ignored repo-root .env. For direct backend dotnet run, prefer ASP.NET user-secrets on src/backend/LifeOS.Api so SMTP and connection-string values stay out of tracked JSON files.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend (React 19 + Vite + RTK Query + Tailwind) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Backend (ASP.NET Core 8 + EF Core + Clean Architecture) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Database (PostgreSQL 17) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Service | Purpose |
|---|---|
| SimulationEngine | Month-by-month projections with taxes, interest, inflation |
| LongevityEstimator | Life expectancy from health metrics |
| ScoreCalculator | Life Score computation across life pillars |
| HealthIndexCalculator | Health score computation plus physiological trust warnings |
| WealthHealthCalculator | Finance-signal normalization into the Wealth Health score |
| PrimaryStatsCalculator | Identity stat and radar updates from dimension scores |
| Endpoint | Description |
|---|---|
GET /api/dashboard |
Dashboard summary |
GET/POST /api/accounts |
Financial accounts |
POST /api/simulations/scenarios/{id}/run |
Run simulation |
GET /api/longevity |
Longevity estimate |
POST /api/metrics/record |
Record metrics |
Full API docs at /swagger when running.
# Full local lifecycle
make docker-ready
make lint
make build
make test
make integration
make integration-postgres
make e2e
make release-validation
# Frontend unit tests
cd src/frontend && npm run test
# Backend Tests
cd src/backend && dotnet test --filter "FullyQualifiedName!~PostgresProof"Use make up only when you need the compose stack without the readiness smoke checks. make docker-ready remains the canonical compose-readiness gate, make integration is the fast backend HTTP/integration gate that still uses the default Testing harness, make integration-postgres is the dedicated real-Postgres proof lane that applies EF migrations to isolated databases and exercises representative backend flows on Npgsql, and make release-validation is the single root preflight for lint + build + test + integration + e2e + docker-ready + integration-postgres before the manual walkthrough in docs/testing/TEST-001-manual-regression.md. The raw backend dotnet test examples intentionally exclude PostgresProof because that dedicated lane requires a live Postgres admin connection string and is exercised separately through make integration-postgres.
Hosted .github/workflows/ci.yml mirrors that validation path for PRs to main and, after a successful merge-driven push to main, automatically publishes the backend and frontend Docker Hub images from the same workflow without an approval gate.
fa.lifeos/
โโโ src/backend/ # .NET 8 API (Clean Architecture)
โ โโโ LifeOS.Api/ # Controllers, Middleware
โ โโโ LifeOS.Application/ # Services, DTOs
โ โโโ LifeOS.Domain/ # Entities, Enums
โ โโโ LifeOS.Infrastructure/ # DbContext, Repos
โโโ src/frontend/ # React 19 SPA
โ โโโ src/
โ โโโ components/ # Atomic design (atoms/molecules/organisms)
โ โโโ pages/ # Route pages
โ โโโ services/ # RTK Query endpoints
โโโ docker-compose.yml # Development environment
| Variable | Description |
|---|---|
ConnectionStrings__DefaultConnection |
PostgreSQL connection |
Jwt__SecretKey |
JWT signing key (32+ chars) |
Cors__AllowedOrigins__0 |
Allowed CORS origin |
Fido2__ServerDomain / Fido2__ServerName / Fido2__Origin |
Passkey/WebAuthn server and origin configuration |
SEED_DEMO_ACCOUNT |
Enables/disables automatic demo data seeding on API startup |
VITE_API_URL / VITE_SIGNALR_URL / VITE_API_PORT |
Frontend API and SignalR endpoint configuration |
VITE_ENABLE_DEV_LOGIN |
Enables the development-only quick-login button in the landing auth modal |
VITE_WALLBOARD_REFRESH_SECONDS |
Wallboard auto-refresh interval in seconds (clamped 5-3600, default 30) |
MIT License - see LICENSE
"Optimize your life, one pillar at a time."