A comprehensive personal finance management platform available as a mobile app and web application, designed to help users take control of their financial lives with powerful features and an intuitive interface.
🌐 Try Web App | 🎯 View Mobile App Showcase | 🐳 Quick Start with Docker
- Docker
- Docker Compose
# Start the development environment
docker compose -f docker-compose.dev.yml up
# Populate the database with sample data
docker compose -f docker-compose.dev.yml exec backend python3 /app/test/add_api_fake_data.py --months 12The development environment will be available at:
- Backend API: http://localhost:5000
- Web Application: http://localhost:5173
# Start the production environment
docker compose -f docker-compose.prod.yml up
# Or with a custom API URL (must be set at build time)
API_URL=https://api.example.com docker compose -f docker-compose.prod.yml up --buildThe production environment will be available at:
- Backend API: http://localhost:5000
- Web Application: http://localhost:80
To automatically refresh demo data, you can set up a cron job inside the backend container by adding a configuration to your .env file:
# Add this to your .env file
DEMO_MODE=true
DEMO_CRON_SCHEDULE="0 */2 * * *"
DEMO_MONTHS=48This configuration will:
- Enable demo mode with automatic data refresh
- Run every 2 hours (at minute 0)
- Generate 4 years (48 months) of sample transaction data
- Automatically set up the cron job in the backend container on startup
The backend container will detect these environment variables and create the following cron job:
0 */2 * * * python3 /app/test/add_api_fake_data.py --months 48You can customize the schedule and amount of data generated by modifying the values in the .env file.
In your production environment, you can enable the demo mode directly in your docker-compose.prod.yml file:
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile.prod
# ... other configuration ...
environment:
- FLASK_ENV=production
- FLASK_APP=run.py
- SQLITE_DB_PATH=/app/data/wealth.db
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
# Demo mode configuration
- DEMO_MODE=true
- DEMO_CRON_SCHEDULE=0 */2 * * *
- DEMO_MONTHS=48Alternatively, you can set these variables in your backend/.env file.
API_URL: URL of the backend API accessible from the users- Development: Can be changed at runtime (default: http://localhost:5000)
- Production: Must be set at build time (default: http://localhost:5000)
JWT_SECRET_KEY: Secret key for JWT authentication (default: your-secret-key-here)
WealthManager is available in two formats, with a showcase website:
Our flagship mobile app built with React Native and Expo, perfect for on-the-go finance management.
Key Features:
- 📊 Real-time wealth tracking and visualization
- 💳 Multi-account management with bank integration
- 📈 Investment portfolio tracking and analysis
- 💰 Smart budgeting and expense analytics
- 🔄 Intelligent transaction management
A full-featured web version offering enhanced visualization and keyboard shortcuts for power users.
Features:
- 🖥️ Desktop-optimized interface
- 🚀 Real-time data synchronization
- 📊 Advanced data visualization
- ⌨️ Keyboard shortcuts support
- 🔄 Seamless backend integration
A static website demonstrating the mobile app's features and capabilities to potential users.
- Node.js (v18 or higher)
- npm or yarn
- Bun (for web application)
- Python 3.12+ (for backend)
- Expo CLI (for mobile)
- Backend:
cd backend
python3 -m venv .venv
source .venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install -r requirements.txt
SQLITE_DB_PATH=database_directory python3 run.pyYou can populate the database with the following command:
BACKEND_URL=http://localhost:5000 python3 backend/test/add_api_fake_data.py --months 12- Web Application:
cd web_application
bun install
VITE_API_URL=http://localhost:5000 bun run dev --host- Mobile App:
cd frontend
bun install
bun run start- Showcase Website:
cd showcase_website
npm install
npm run devThe project uses GitHub Actions for CI/CD with separate deployment pipelines for:
- Web Application (
/app) - Showcase Website (
/) - Mobile App (Expo)
Import transactions from Firefly III transactions export and some csv file to track investments. (very specific things for the maintainer of this repository)
python3 import_from_firefly.py 2024_10_04_transaction_export.csv --sync --delete-user
python3 import_from_firefly.py csv/alan_cto.csv --investment --investment-account CTO --sync
python3 import_from_firefly.py csv/alan_pea.csv --investment --investment-account PEA --sync