https://github.com/alanjumeaucourt/wealth_manager
A comprehensive personal finance management application built with React Native and Expo, featuring real-time wealth tracking, multi-account management, and smart analytics.
https://github.com/alanjumeaucourt/wealth_manager
budget-tracker cross-platform expo flask investment-tracker javascript jwt mobile-app personal-finance python sqlite typescript wealth-manager
Last synced: about 1 month ago
JSON representation
A comprehensive personal finance management application built with React Native and Expo, featuring real-time wealth tracking, multi-account management, and smart analytics.
- Host: GitHub
- URL: https://github.com/alanjumeaucourt/wealth_manager
- Owner: AlanJumeaucourt
- Created: 2024-10-24T11:49:59.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-19T23:18:37.000Z (10 months ago)
- Last Synced: 2025-02-06T07:42:31.297Z (9 months ago)
- Topics: budget-tracker, cross-platform, expo, flask, investment-tracker, javascript, jwt, mobile-app, personal-finance, python, sqlite, typescript, wealth-manager
- Language: TypeScript
- Homepage: https://alanjumeaucourt.github.io/wealth_manager/
- Size: 19.8 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💰 WealthManager
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](https://alanjumeaucourt.github.io/wealth_manager/app)** |
🎯 **[View Mobile App Showcase](https://alanjumeaucourt.github.io/wealth_manager)** |
🐳 **[Quick Start with Docker](#-docker-setup)**
## 🐳 Docker Setup
### Prerequisites
- Docker
- Docker Compose
### Development Environment
```bash
# 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 12
```
The development environment will be available at:
- Backend API: http://localhost:5000
- Web Application: http://localhost:5173
### Production Environment
```bash
# 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 --build
```
The production environment will be available at:
- Backend API: http://localhost:5000
- Web Application: http://localhost:80
### Demo Setup with Cron
To automatically refresh demo data, you can set up a cron job inside the backend container by adding a configuration to your `.env` file:
```bash
# Add this to your .env file
DEMO_MODE=true
DEMO_CRON_SCHEDULE="0 */2 * * *"
DEMO_MONTHS=48
```
This 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:
```bash
0 */2 * * * python3 /app/test/add_api_fake_data.py --months 48
```
You can customize the schedule and amount of data generated by modifying the values in the `.env` file.
#### Using with Docker Compose
In your production environment, you can enable the demo mode directly in your docker-compose.prod.yml file:
```yaml
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=48
```
Alternatively, you can set these variables in your backend/.env file.
### Environment Variables
- `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)
## 🎯 Platform Overview
WealthManager is available in two formats, with a showcase website:
### 📱 Mobile Application (Coming Soon)
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
[View mobile app showcase](frontend/README.md)
### 🖥️ Web Application
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
### 🌐 Showcase Website
A static website demonstrating the mobile app's features and capabilities to potential users.
## 🚀 Getting Started
### Prerequisites
- Node.js (v18 or higher)
- npm or yarn
- Bun (for web application)
- Python 3.12+ (for backend)
- Expo CLI (for mobile)
### Quick Start
1. Backend:
```bash
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.py
```
You can populate the database with the following command:
```bash
BACKEND_URL=http://localhost:5000 python3 backend/test/add_api_fake_data.py --months 12
```
1. Web Application:
```bash
cd web_application
bun install
VITE_API_URL=http://localhost:5000 bun run dev --host
```
1. Mobile App:
```bash
cd frontend
bun install
bun run start
```
1. Showcase Website:
```bash
cd showcase_website
npm install
npm run dev
```
## 📚 Documentation
- [API Documentation](backend/README.md)
- [Mobile App Guide](frontend/README.md)
- [Database Structure](DATABASE_STRUCTURE.md)
- [Contributing Guidelines](CONTRIBUTING.md)
## 🛠 Development
The project uses GitHub Actions for CI/CD with separate deployment pipelines for:
- Web Application (`/app`)
- Showcase Website (`/`)
- Mobile App (Expo)
## 📦 Import from Firefly III
Import transactions from Firefly III transactions export and some csv file to track investments.
(very specific things for the maintainer of this repository)
```bash
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
```