chhedadhruv/TrackaExpense
TrackaExpense is a comprehensive personal finance app that helps users manage their expenses, track income, set savings goals, and split bills. With an intuitive user interface, itβs designed to help users take control of their finances, without ads or notifications.
TrackaExpense
π° Your Smart Personal Finance Companion
A comprehensive, ad-free personal finance app built with React Native and Firebase
Download APK β’ Report Bug β’ Request Feature
π± About TrackaExpense
TrackaExpense is a modern, feature-rich expense tracking application designed to help you take control of your finances. With an intuitive interface, powerful analytics, and seamless cloud synchronization, managing your money has never been easier.
β¨ Why TrackaExpense?
- π 100% Ad-Free - Pure financial tracking experience
- π Secure & Private - Your data is encrypted and protected
- βοΈ Cloud Sync - Access your data from anywhere
- π Smart Analytics - Visual insights into your spending patterns
- π₯ Bill Splitting - Split expenses with friends and groups
- π― Savings Goals - Track and achieve your financial goals
- πΈ Receipt Management - Capture and store receipts
- π Smart Reminders - Never miss tracking your expenses
β¨ Features
π Dashboard
- Real-time Overview - View total expenses, income, and balance at a glance
- Recent Transactions - Quick access to your latest financial activities
- Time Range Filters - View data for 7 days, 30 days, 3 months, 6 months, 1 year, or all time
- Quick Actions - Fast access to add income or expense
π Statistics & Analytics
- Interactive Charts - Beautiful bar charts and pie charts
- Category Breakdown - See spending by category with visual representations
- Trend Analysis - Track income and expense patterns over time
- Custom Date Ranges - Analyze specific time periods
- Export Data - Share and backup your financial reports
π΅ Transaction Management
- Quick Entry - Add income or expenses in seconds
- Rich Categories - Organize with pre-defined or custom categories
- Receipt Capture - Take photos or upload receipt images
- Transaction Details - Add notes, amounts, dates, and categories
- Edit & Delete - Full control over your transaction history
- Search & Filter - Easily find specific transactions
π― Savings Goals
- Goal Setting - Create multiple savings goals with target amounts
- Progress Tracking - Visual progress bars showing achievement
- Deposit & Withdraw - Manage your savings with ease
- Goal History - Track all changes to your savings
- Multiple Goals - Manage various savings objectives simultaneously
π₯ Bill Splitting
- Group Management - Create groups for different occasions
- Split Methods - Split equally or by custom percentages
- Expense Tracking - Keep track of who paid what
- Settlement System - Easy settlement between group members
- Smart Calculations - Automatic calculation of who owes whom
- Group Notifications - Stay updated on group activities
- Split History - View all past splits and settlements
π Smart Notifications
- Daily Reminders - Gentle nudges to track your expenses
- Fun Messages - Motivational and engaging notification messages
- Split Alerts - Get notified about group activities and settlements
- Customizable - Control notification preferences
- Context-Aware - Smart notifications based on your activity
π€ Profile & Settings
- Profile Management - Update your name, email, and profile picture
- Authentication Options:
- Email/Password sign-in
- Google Sign-In integration
- Apple Sign-In (iOS only)
- Account Security - Phone verification and secure authentication
- Privacy Policy - Transparent data handling information
- Contact Support - Easy access to customer support
- Account Deletion - Full control with instant account deletion
πΈ Receipt Management
- Photo Capture - Take pictures directly from the app
- Gallery Upload - Select existing photos from your device
- Image Storage - Securely stored in Firebase Storage
- Receipt Viewing - Full-screen receipt viewing
- Receipt Sharing - Share receipts when needed
π οΈ Technologies Used
Core Framework
- React Native 0.76.5 - Cross-platform mobile development
- TypeScript - Type-safe development
- React 18.3.1 - Latest React features
Backend & Cloud
- Firebase Authentication - Secure user authentication
- Firebase Firestore - Real-time NoSQL database
- Firebase Storage - Secure file storage
- Firebase Cloud Messaging - Push notifications
Authentication
- Google Sign-In - Seamless Google authentication
- Apple Sign-In - Native iOS authentication
- Email/Password - Traditional authentication method
UI & Design
- React Native Paper - Material Design components
- React Native Vector Icons - Beautiful icon library
- React Native Linear Gradient - Smooth gradient effects
- Custom Fonts - Kufam & Lato typography
Navigation
- React Navigation 7 - Smooth screen transitions
- Stack Navigator - Modal and card-style navigation
- Bottom Tab Navigator - Easy access to main features
Data Visualization
- React Native Gifted Charts - Beautiful, customizable charts
- Bar Charts - For trend analysis
- Pie Charts - For category breakdowns
Notifications
- Notifee - Advanced local notifications
- Firebase Cloud Messaging - Remote push notifications
- Smart Scheduling - Context-aware reminders
Additional Libraries
- Moment.js - Powerful date manipulation
- React Native Image Picker - Photo selection and camera
- React Native Share - Native sharing capabilities
- React Native Async Storage - Local data persistence
- React Native Onboarding Swiper - Beautiful onboarding experience
π¦ Installation
Prerequisites
Before you begin, ensure you have the following installed:
- Node.js (>= 18.0.0)
- npm or yarn
- React Native CLI
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
- JDK 17 (for Android)
Step 1: Clone the Repository
git clone https://github.com/chhedadhruv/TrackaExpense.git
cd TrackaExpenseStep 2: Install Dependencies
npm install
# or
yarn installStep 3: Environment Configuration
3.1 Create Environment File
cp env.example .env3.2 Configure Google Sign-In
Edit the .env file with your Google Web Client ID:
# Google Sign-In Configuration
GOOGLE_WEB_CLIENT_ID=your-actual-web-client-id.apps.googleusercontent.com
GOOGLE_IOS_CLIENT_ID=your-ios-client-id.apps.googleusercontent.com
GOOGLE_OFFLINE_ACCESS=false
GOOGLE_FORCE_CODE_FOR_REFRESH_TOKEN=false
GOOGLE_ACCOUNT_NAME=
GOOGLE_PROFILE_IMAGE_SIZE=120
GOOGLE_OPENID_REALM=
GOOGLE_SERVICE_PLIST_PATH=
GOOGLE_HOSTED_DOMAIN=To get your Google Web Client ID:
- Go to Google Cloud Console
- Select your project (or create a new one)
- Navigate to "APIs & Services" > "Credentials"
- Find your "Web application" client (not Android/iOS client)
- Copy the Client ID and paste it in your
.envfile
Step 4: Firebase Configuration
4.1 Android Configuration
- Download
google-services.jsonfrom your Firebase Console - Place it in
android/app/google-services.json - Ensure your SHA-1 fingerprint is added to Firebase:
cd android
./gradlew signingReportCopy the SHA-1 and add it to Firebase Console under Project Settings > Your Apps > Android App
4.2 iOS Configuration
- Download
GoogleService-Info.plistfrom your Firebase Console - Place it in
ios/GoogleService-Info.plist - Open
ios/TrackaExpense.xcworkspacein Xcode - Add the plist file to the project
4.3 Install iOS Pods
cd ios
pod install
cd ..Step 5: Run the Application
Android
npm run android
# or
npx react-native run-androidFor release build:
npm run android:releaseiOS
npm run ios
# or
npx react-native run-iosFor release build:
npm run ios:releaseStep 6: Start Metro Bundler
If not started automatically:
npm start
# or
yarn startTo reset cache:
npm run start:resetπ§ Build for Production
Android APK
npm run build:androidThe APK will be generated at:
android/app/build/outputs/apk/release/app-release.apk
Android App Bundle (for Play Store)
npm run build:android:bundleThe AAB will be generated at:
android/app/build/outputs/bundle/release/app-release.aab
iOS IPA
- Open
ios/TrackaExpense.xcworkspacein Xcode - Select Product > Archive
- Follow the app distribution wizard
π Privacy & Security
TrackaExpense takes your privacy seriously:
- End-to-End Encryption - All data transmission is encrypted
- Secure Authentication - Firebase Auth with OAuth 2.0
- No Data Selling - We never sell your personal information
- Account Deletion - Instant account and data deletion
- Privacy Policy - Full transparency in data handling
- GDPR Compliant - Respects your data rights
For detailed information, see our Privacy Policy.
π Available Scripts
| Command | Description |
|---|---|
npm start |
Start Metro bundler |
npm run android |
Run on Android device/emulator |
npm run ios |
Run on iOS device/simulator |
npm run android:release |
Run Android in release mode |
npm run ios:release |
Run iOS in release mode |
npm run build:android |
Build Android APK |
npm run build:android:bundle |
Build Android App Bundle |
npm run build:clean |
Clean Android build |
npm run start:reset |
Start Metro with cache reset |
npm run lint |
Run ESLint |
npm test |
Run Jest tests |
π Known Issues
- Apple Sign-In is only available on iOS devices
- Some notification features may require proper Firebase configuration
- Receipt images require camera/storage permissions
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgements
- React Native - The amazing framework
- Firebase - Backend infrastructure
- React Navigation - Navigation solution
- React Native Paper - UI components
- Notifee - Local notifications
- React Native Gifted Charts - Beautiful charts
- Google Sign-In - Authentication
- Apple Sign-In - iOS authentication
π§ Contact & Support
Dhruv Chheda
- π Website: dhruvchheda.com
- π§ Email: me@dhruvchheda.com
- π GitHub: @chhedadhruv
- πΌ LinkedIn: Dhruv Chheda
β Show Your Support
If you find TrackaExpense helpful, please consider:
- β Starring this repository
- π Reporting bugs
- π‘ Suggesting new features
- π Contributing to the code
- π’ Sharing with friends
Made with β€οΈ by Dhruv Chheda
Β© 2025 TrackaExpense. All rights reserved.