{"id":18143202,"url":"https://github.com/alanjumeaucourt/wealth_manager","last_synced_at":"2025-10-14T03:49:54.281Z","repository":{"id":259435886,"uuid":"877873619","full_name":"AlanJumeaucourt/wealth_manager","owner":"AlanJumeaucourt","description":"A comprehensive personal finance management application built with React Native and Expo, featuring real-time wealth tracking, multi-account management, and smart analytics.","archived":false,"fork":false,"pushed_at":"2025-01-19T23:18:37.000Z","size":20773,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T07:42:31.297Z","etag":null,"topics":["budget-tracker","cross-platform","expo","flask","investment-tracker","javascript","jwt","mobile-app","personal-finance","python","sqlite","typescript","wealth-manager"],"latest_commit_sha":null,"homepage":"https://alanjumeaucourt.github.io/wealth_manager/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlanJumeaucourt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T11:49:59.000Z","updated_at":"2025-01-19T23:18:38.000Z","dependencies_parsed_at":"2024-10-25T11:18:51.863Z","dependency_job_id":"ebc24b43-568f-4e72-92d5-62cf9332d6c5","html_url":"https://github.com/AlanJumeaucourt/wealth_manager","commit_stats":null,"previous_names":["alanjumeaucourt/wealth_manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanJumeaucourt%2Fwealth_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanJumeaucourt%2Fwealth_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanJumeaucourt%2Fwealth_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanJumeaucourt%2Fwealth_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlanJumeaucourt","download_url":"https://codeload.github.com/AlanJumeaucourt/wealth_manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238579769,"owners_count":19495547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["budget-tracker","cross-platform","expo","flask","investment-tracker","javascript","jwt","mobile-app","personal-finance","python","sqlite","typescript","wealth-manager"],"created_at":"2024-11-01T19:06:03.850Z","updated_at":"2025-10-14T03:49:54.275Z","avatar_url":"https://github.com/AlanJumeaucourt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💰 WealthManager\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"frontend/assets/images/logo.png\" alt=\"WealthManager Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\nA 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.\n\n🌐 **[Try Web App](https://alanjumeaucourt.github.io/wealth_manager/app)** |\n🎯 **[View Mobile App Showcase](https://alanjumeaucourt.github.io/wealth_manager)** |\n🐳 **[Quick Start with Docker](#-docker-setup)**\n\n## 🐳 Docker Setup\n\n### Prerequisites\n- Docker\n- Docker Compose\n\n### Development Environment\n```bash\n# Start the development environment\ndocker compose -f docker-compose.dev.yml up\n\n# Populate the database with sample data\ndocker compose -f docker-compose.dev.yml exec backend python3 /app/test/add_api_fake_data.py --months 12\n```\n\nThe development environment will be available at:\n- Backend API: http://localhost:5000\n- Web Application: http://localhost:5173\n\n### Production Environment\n```bash\n# Start the production environment\ndocker compose -f docker-compose.prod.yml up\n\n# Or with a custom API URL (must be set at build time)\nAPI_URL=https://api.example.com docker compose -f docker-compose.prod.yml up --build\n```\n\nThe production environment will be available at:\n- Backend API: http://localhost:5000\n- Web Application: http://localhost:80\n\n### Demo Setup with Cron\nTo automatically refresh demo data, you can set up a cron job inside the backend container by adding a configuration to your `.env` file:\n\n```bash\n# Add this to your .env file\nDEMO_MODE=true\nDEMO_CRON_SCHEDULE=\"0 */2 * * *\"\nDEMO_MONTHS=48\n```\n\nThis configuration will:\n- Enable demo mode with automatic data refresh\n- Run every 2 hours (at minute 0)\n- Generate 4 years (48 months) of sample transaction data\n- Automatically set up the cron job in the backend container on startup\n\nThe backend container will detect these environment variables and create the following cron job:\n```bash\n0 */2 * * * python3 /app/test/add_api_fake_data.py --months 48\n```\n\nYou can customize the schedule and amount of data generated by modifying the values in the `.env` file.\n\n#### Using with Docker Compose\n\nIn your production environment, you can enable the demo mode directly in your docker-compose.prod.yml file:\n\n```yaml\nservices:\n  backend:\n    build:\n      context: ./backend\n      dockerfile: Dockerfile.prod\n    # ... other configuration ...\n    environment:\n      - FLASK_ENV=production\n      - FLASK_APP=run.py\n      - SQLITE_DB_PATH=/app/data/wealth.db\n      - JWT_SECRET_KEY=${JWT_SECRET_KEY}\n      # Demo mode configuration\n      - DEMO_MODE=true\n      - DEMO_CRON_SCHEDULE=0 */2 * * *\n      - DEMO_MONTHS=48\n```\n\nAlternatively, you can set these variables in your backend/.env file.\n\n### Environment Variables\n- `API_URL`: URL of the backend API accessible from the users\n  - Development: Can be changed at runtime (default: http://localhost:5000)\n  - Production: Must be set at build time (default: http://localhost:5000)\n- `JWT_SECRET_KEY`: Secret key for JWT authentication (default: your-secret-key-here)\n\n## 🎯 Platform Overview\n\nWealthManager is available in two formats, with a showcase website:\n\n### 📱 Mobile Application (Coming Soon)\nOur flagship mobile app built with React Native and Expo, perfect for on-the-go finance management.\n\nKey Features:\n- 📊 Real-time wealth tracking and visualization\n- 💳 Multi-account management with bank integration\n- 📈 Investment portfolio tracking and analysis\n- 💰 Smart budgeting and expense analytics\n- 🔄 Intelligent transaction management\n\n[View mobile app showcase](frontend/README.md)\n\n### 🖥️ Web Application\nA full-featured web version offering enhanced visualization and keyboard shortcuts for power users.\n\nFeatures:\n- 🖥️ Desktop-optimized interface\n- 🚀 Real-time data synchronization\n- 📊 Advanced data visualization\n- ⌨️ Keyboard shortcuts support\n- 🔄 Seamless backend integration\n\n### 🌐 Showcase Website\nA static website demonstrating the mobile app's features and capabilities to potential users.\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js (v18 or higher)\n- npm or yarn\n- Bun (for web application)\n- Python 3.12+ (for backend)\n- Expo CLI (for mobile)\n\n### Quick Start\n\n1. Backend:\n```bash\ncd backend\npython3 -m venv .venv\nsource .venv/bin/activate  # or `venv\\Scripts\\activate` on Windows\npip install -r requirements.txt\nSQLITE_DB_PATH=database_directory python3 run.py\n```\n\nYou can populate the database with the following command:\n```bash\nBACKEND_URL=http://localhost:5000 python3 backend/test/add_api_fake_data.py --months 12\n```\n\n1. Web Application:\n```bash\ncd web_application\nbun install\nVITE_API_URL=http://localhost:5000 bun run dev --host\n```\n\n1. Mobile App:\n```bash\ncd frontend\nbun install\nbun run start\n```\n\n1. Showcase Website:\n```bash\ncd showcase_website\nnpm install\nnpm run dev\n```\n\n## 📚 Documentation\n- [API Documentation](backend/README.md)\n- [Mobile App Guide](frontend/README.md)\n- [Database Structure](DATABASE_STRUCTURE.md)\n- [Contributing Guidelines](CONTRIBUTING.md)\n\n## 🛠 Development\n\nThe project uses GitHub Actions for CI/CD with separate deployment pipelines for:\n- Web Application (`/app`)\n- Showcase Website (`/`)\n- Mobile App (Expo)\n\n\n## 📦 Import from Firefly III\n\nImport transactions from Firefly III transactions export and some csv file to track investments.\n(very specific things for the maintainer of this repository)\n```bash\npython3 import_from_firefly.py 2024_10_04_transaction_export.csv --sync --delete-user\npython3 import_from_firefly.py csv/alan_cto.csv --investment --investment-account CTO --sync\npython3 import_from_firefly.py csv/alan_pea.csv --investment --investment-account PEA --sync\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanjumeaucourt%2Fwealth_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falanjumeaucourt%2Fwealth_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanjumeaucourt%2Fwealth_manager/lists"}