Skip to content

A cross-platform (Android/iOS) money management app built with React Native + Expo that allows users to track spending, plan budgets, set savings goals, and optionally connect to banks. The app is designed to be local-first, offline-capable, clean, and easy to use with multi-currency support and clear summaries via charts and lists.

License

Notifications You must be signed in to change notification settings

lykimq/MoneyWise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° MoneyWise

Smart money management for everyone - A beautiful, privacy-focused personal finance app that works offline.

Platform Framework Language License

✨ What is MoneyWise?

MoneyWise is a cross-platform personal finance app that helps you take control of your money. Built with privacy and simplicity in mind, it works completely offline while providing powerful insights into your spending habits, budget management, and savings goals.

🎯 Perfect for:

  • Individuals who want to track daily expenses
  • Budget-conscious people planning monthly spending
  • Anyone saving for specific financial goals
  • Users who value privacy and offline functionality

πŸš€ Key Features

πŸ’³ Expense Tracking

  • Log income and expenses with categories and notes
  • Support for multiple currencies
  • Photo receipts and transaction history
  • Smart categorization and auto-suggestions

πŸ“Š Budget Management

  • Set monthly and yearly budgets by category
  • Real-time spending alerts and notifications
  • Visual progress tracking with charts
  • Carryover budgets for long-term planning

🎯 Savings Goals

  • Create personalized savings targets
  • Track progress with visual indicators
  • Set deadlines and milestone celebrations
  • Multiple goal management

🌍 Multi-Language Support

  • English, French, and Vietnamese
  • Localized currency formats
  • Cultural financial practices
  • Easy language switching

πŸ”’ Privacy & Security

  • 100% offline-first - Your data stays on your device
  • No account creation required
  • Optional cloud backup (coming soon)
  • GDPR compliant

⚑ Performance & Reliability

  • Smart Rate Limiting - Multi-tier rate limiting for optimal performance
  • Intelligent Caching - Redis-powered caching for lightning-fast responses
  • Type-Safe Configuration - Shared configuration ensures consistency
  • Graceful Degradation - Continues working even when services are unavailable

πŸ› οΈ Built With

Frontend

  • React Native + Expo SDK 53 - Cross-platform mobile development
  • TypeScript - Type-safe code and better developer experience
  • React Navigation - Smooth, native navigation experience
  • TanStack Query - Efficient data fetching and caching
  • React Native Reanimated - Buttery smooth animations

Backend

  • Rust - High-performance, memory-safe backend
  • Axum - Modern, fast web framework
  • PostgreSQL - Robust, scalable database (Supabase + Local)
  • Redis - Lightning-fast caching layer
  • SQLx - Async, compile-time checked SQL

Development Tools

  • OCaml - Type-safe, high-performance development tools
  • Dune - Modern build system
  • OCamlDoc - Professional documentation generation (better than odoc!)
  • Cmdliner - Professional CLI framework
  • Professional Architecture - Pure OCaml implementation for reliability and type safety
  • Professional Workflow - Makefile-based build and command system

πŸ—οΈ Project Architecture

MoneyWise/
β”œβ”€β”€ πŸ”„ .github/workflows        # CI/CD pipelines and GitHub Actions
β”œβ”€β”€ πŸ“± moneywise-app/           # React Native frontend
β”œβ”€β”€ πŸ¦€ moneywise-backend/       # Rust backend API
β”œβ”€β”€ βš™οΈ config/                  # Shared configuration files
β”œβ”€β”€ πŸ—„οΈ scripts/                 # Setup and utility scripts
β”œβ”€β”€ 🧰 tools/                   # Development tools and utilities
β”‚   └── 🐫 ocaml/              # OCaml-based project management tools
β”œβ”€β”€ πŸ“š docs/                    # Project documentation and guides
β”‚   └── 🐫 ocamldoc/           # Development tools documentation (deployed to GitHub Pages)

Configuration Strategy

  • Shared Configuration: Single source of truth for rate limiting across frontend and backend
  • Auto-Generation: Build scripts generate type-safe configs for both platforms
  • Type Safety: TypeScript definitions ensure consistency between services

Database Strategy

  • Production: Supabase (hosted, managed, scalable)
  • Development: Local PostgreSQL (offline development)
  • Hybrid: Automatic environment detection and migration compatibility

πŸ“± Screenshots

Coming soon - Beautiful UI previews of the app in action


🎯 Why Choose MoneyWise?

Feature MoneyWise Other Apps
Offline First βœ… Always works ❌ Requires internet
Privacy βœ… Your data stays local ❌ Cloud-dependent
Multi-Currency βœ… Native support ❌ Limited options
No Signup βœ… Start immediately ❌ Account required
Smart Performance βœ… Multi-tier rate limiting ❌ Basic or no rate limiting
Type Safety βœ… Shared configuration ❌ Manual sync required
Open Source βœ… Transparent & free ❌ Proprietary
Development Tools βœ… OCaml + Shell hybrid ❌ Single approach

πŸ“‹ Current Status

Foundation Complete - Core Features in Development - The app has a solid architecture and basic UI framework:

  • βœ… Project Setup - React Native + Expo + Rust backend
  • βœ… Navigation - Bottom tab navigation with 5 main screens
  • βœ… Basic UI Framework - Component library and design system
  • βœ… Backend API - Budget management endpoints with Redis caching
  • βœ… Database Schema - PostgreSQL with migrations and sample data
  • βœ… Rate Limiting - Multi-tier rate limiting with shared configuration
  • βœ… Development Tools - OCaml-based project management tools
  • πŸ”„ Core Features - Transaction management, budgets, goals (UI ready, backend in progress)
  • πŸ“‹ Testing - Comprehensive test suite setup
  • 🎨 Polish - Animations, accessibility, performance optimization

πŸš€ Getting Started

For Users

Coming soon to App Store and Google Play

For Developers

  1. Clone the repository

    git clone https://github.com/lykimq/MoneyWise.git
    cd moneywise
  2. Frontend Setup

    cd moneywise-app
    npm install
    npx expo start
  3. Backend Setup

    cd moneywise-backend
    # See README.md in the backend directory for detailed setup instructions
  4. Development Tools

    # Build and run OCaml tools
    make build        # Build the OCaml CLI tool
    make verify       # Verify project structure and prerequisites
    make test         # Run tests
    make help        # Show available commands
  5. πŸ“š Development Tools API Documentation πŸ“– View API Docs β†’ - Complete API reference


πŸ“‹ Roadmap

Q3 2025 - Core Features Completion

  • Project setup and architecture
  • Backend API with budget management
  • Database schema and migrations
  • Basic UI framework and navigation
  • Rate limiting system with shared configuration
  • Development tools and architecture
  • Transaction management (backend + frontend integration)
  • Budget tracking (frontend integration)
  • Savings goals (frontend integration)
  • Multi-language support

Q4 2025 - Enhanced Features

  • Advanced analytics and reports
  • Recurring transactions
  • Export/import functionality
  • Cloud sync (optional)

Q1 2026 - Advanced Features

  • Bank account integration
  • Investment tracking
  • Debt management
  • Financial insights AI

🀝 Contributing

We welcome contributions! Here's how you can help:

  • πŸ› Report bugs - Open an issue with detailed steps
  • πŸ’‘ Suggest features - Share your ideas for improvement
  • πŸ”§ Fix issues - Pick up a good first issue
  • πŸ“š Improve docs - Help make MoneyWise easier to use
  • 🌍 Add languages - Help with translations
  • 🐫 OCaml Development - Help improve development tools

Getting Started with Contributing:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the Non-Commercial License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • React Native community - For the amazing mobile framework
  • Expo team - For simplifying React Native development
  • Rust community - For the performant backend language
  • OCaml community - For the type-safe development tools
  • Supabase team - For the excellent database hosting platform
  • Contributors - Everyone who helps make MoneyWise better

πŸ“ž Support & Community


Made with ❀️ by the MoneyWise team

Empowering people to take control of their financial future

⭐ Star this repo β€’ πŸ› Report an issue β€’ πŸ“– View documentation

About

A cross-platform (Android/iOS) money management app built with React Native + Expo that allows users to track spending, plan budgets, set savings goals, and optionally connect to banks. The app is designed to be local-first, offline-capable, clean, and easy to use with multi-currency support and clear summaries via charts and lists.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published