MoneyChat.ai is an intelligent, chat-based personal finance tracker designed to help you stay on top of your money effortlessly.
Built with simplicity in mind, users can interact with the app just like chatting with a personal assistant. Add expenses, record income, and view monthly summaries — all through intuitive text commands.
Try out MoneyChat.ai here: https://money-chat-ai.web.app/
- Record expenses and income with natural language or simple quick commands
- Easily record your expenses by taking photo of your receipt
- Get monthly recaps of your financial activity
- Focused only on personal finance — no distractions
/addex 10000 indomie food
/addin 150000 salary
/edit ex000001 amount 30000
/del ex000001
/recap 01 2025
/help
- Prerequisites
- Flutter Setup
- Firebase Setup
- Firebase Cloud Functions Setup
- Configuration Setup
- Building and Deployment
Before getting started, ensure you have the following installed on your system:
- Google Chrome - Required for Flutter web development
- Node.js (v16 or later) - Required for Firebase CLI and Cloud Functions
- npm or yarn - Package manager for Node.js
- Google Account - For Firebase console access
- Download the Flutter SDK from flutter.dev
- Extract the zip file to
C:\src\flutter - Add
C:\src\flutter\binto your system PATH
# Using Homebrew
brew install flutter
# Or download manually from flutter.dev and add to PATH
export PATH="$PATH:`pwd`/flutter/bin"# Download Flutter SDK
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.16.0-stable.tar.xz
tar xf flutter_linux_3.16.0-stable.tar.xz
# Add to PATH
export PATH="$PATH:`pwd`/flutter/bin"flutter doctorThis command checks your environment and displays a report of Flutter installation status.
flutter config --enable-webflutter pub getnpm install -g firebase-toolsfirebase loginThis will open a browser window for Google authentication.
dart pub global activate flutterfire_cliflutterfire configurecd functionsIf using JavaScript:
npm installIf using TypeScript:
npm install
npm install -g typescriptCreate .env file in functions directory:
OPENAI_API_KEY=your_open_ai_api_key_hereextractImagePrompt: Extracts text from a receipt image. Sample: extract_image_prompt.txtextractReceiptPrompt: Extracts and parses receipt text into JSON to be processed by the app. Sample: extract_receipt_prompt.txtmainPrompt: Initializes the chat for interacting with the AI and handling natural language commands. Sample main_prompt.txtmaxTokens: Maximum number of tokens generated per responsemodel: GPT model to be useduserMaxRequest: Daily limit for AI invocation requests per user
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
rules_version = '2';
// Craft rules based on data in your Firestore database
// allow write: if firestore.get(
// /databases/(default)/documents/users/$(request.auth.uid)).data.isAdmin;
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
You may need to Allow unauthenticated invocations in your Google Cloud Console for your Cloud Run service
You need to enable CORS to be able to view cloud network images in Flutter web; How to enable CORS
firebase deploy --only functionsCreate .env file in root directory:
WEB_CLIENT_ID=xxxxxxxx.apps.googleusercontent.com
CLOUD_FUNCTIONS_URL=https://chatwithopenai-xxxxxxxx-uc.a.run.appNote: If deploying to web server, ensure that the config file is uploaded and not ignored. (Whitelist the config file on the server, or name the config file without a leading .)
flutter build web --release# Deploy web app
firebase deploy --only hosting# Deploy both hosting and functions
firebase deployAfter successful deployment:
- Web App:
https://your-project-id.web.app - Functions: Check Firebase Console > Functions tab
money_chat_ai/
├── assets/ # Project assets (images, fonts, etc)
├── build/
│ └── web # Project build output files
├── functions/ # Project Cloud Functions
│ └── index.js # Project Cloud Functions script
├── lib/ # Project frontend source code
│ ├── app/
│ │ ├── routes/ # App routes configuration
│ │ ├── services/
│ │ │ ├── auth/ # Authentication service
│ │ │ ├── export/ # Export CSV service
│ │ │ ├── firebase_storage/ # Firebase Storage client service
│ │ │ └── open_ai/ # OpenAI client service
│ │ ├── theme/ # App theme, colors, text styles, etc
│ │ └── utilities/ # App utilities
│ ├── core/ # Abstractions classess
│ ├── data/
│ │ ├── datasources/ # App datasources (firestore)
│ │ └── models/ # Data models
│ ├── presentation/
│ │ ├── screens/ # App UI and controllers
│ │ └── widgets/ # App widgets
│ ├── firebase_options.dart # Firebase config (auto-generated by firebase CLI)
│ └── main.dart # App main.dart file
└── README.md # Detailed instruction for the project
This project is licensed under the MIT License - see the LICENSE file for details.





