Offline-first expense tracker for Android that reads your bank's payment SMS so spending never has to be typed in by hand. Exact to the paise, balances computed from the ledger, no ads and no trackers.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
MONEVA is an offline-first, production-ready personal finance tracker. It runs as a responsive web application in development and is packaged as a native Android application using Capacitor for production.
• Frontend: React (v19) + TypeScript + Vite
• Backend: Python (v3.12/v3.14) + FastAPI + Uvicorn
• Database (Production Server): PostgreSQL
• Database (Local / Android / Offline Fallback): SQLite
• Hybrid Wrapper: Capacitor (v6)
• ORM: SQLAlchemy (async) on server, Capacitor SQLite on mobile client
• CSS System: Pure Vanilla CSS matching the Stitch design system檢視完整 README ↗MONEVA is an offline-first, production-ready personal finance tracker. It runs as a responsive web application in development and is packaged as a native Android application using Capacitor for production.
/MONEVA
├── apps
│ └── web # React Web & Capacitor app
│ ├── src
│ │ ├── assets # Design assets & logo location
│ │ ├── components # Reusable UI forms and buttons
│ │ ├── styles # Central CSS design token variables
│ │ ├── utils # Paise integer calculation helpers
│ │ └── main.tsx
│ └── android # Native Android container project
├── services
│ └── api # FastAPI Python Backend
│ ├── main.py # Entry point for backend dev server
│ ├── requirements.txt # Backend dependency definitions
│ └── app
│ ├── models.py # SQLAlchemy DB models
│ └── routers/ # API endpoints
├── package.json # Root monorepo workspace configuration
├── .gitignore # Excluded directories (node_modules, venv, local databases)
└── README.md # This documentation file
apps/web/.env.example to apps/web/.env and update variables.services/api/.env.example to services/api/.env and update variables.From the monorepo root folder, run:
# Adjust PATH dynamically if Node.js is not globally registered
$env:PATH = "C:\Program Files\nodejs;" + $env:PATH
npm run dev:web
From the services/api folder, run:
# Set pythonpath to point to our isolated dependency store
$env:PYTHONPATH = "D:\MONEVA\services\api\.venv\Lib\site-packages"
python main.py
125050 paise representing ₹1,250.50). Math calculations must utilize Python's decimal or React's integer converters.is_pending_sync = true, and append metadata (client_mutation_id, device_id, created_at, sync_status) to the local sync queue.