Below are previews of ExpenseMate in both Light and Dark modes. You can scroll horizontally to see all screens.
- π Smart Categorization - Organize expenses with customizable categories (Food, Travel, Shopping, Bills, etc.)
- π° Real-time Tracking - Add expenses instantly with amount, description, and date
- π Date Flexibility - Track expenses for any date, not just today
- π Advanced Filtering - Filter expenses by month, year, and category
- π Beautiful Charts - Interactive pie charts showing expense distribution
- π Monthly Overview - Track spending patterns month by month
- π‘ Smart Insights - Get insights into your spending habits
- π Export Ready - Share expense summaries easily
- π― Goal Setting - Set monthly budget goals for each category
- π Progress Tracking - Visual progress indicators for your goals
- β‘ Real-time Updates - Goals update automatically as you add expenses
- π Achievement System - Track your budget success rate
- π Dark/Light Theme - Automatic theme switching based on system preference
- π± Native Feel - Smooth animations and native performance
- βΏ Accessibility - Full accessibility support with screen readers
- π― Intuitive Navigation - Clean tab-based navigation with visual feedback
Technology | Purpose | Version |
---|---|---|
Expo | React Native framework | 53.0.17 |
React Native | Mobile app development | 0.79.5 |
TypeScript | Type safety | 5.8.3 |
Expo Router | File-based routing | 5.1.3 |
Firebase | Backend & database | 11.10.0 |
React Native Chart Kit | Data visualization | 6.12.0 |
React Native Gesture Handler | Touch interactions | 2.24.0 |
React Native Reanimated | Smooth animations | 3.17.5 |
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI (
npm install -g @expo/cli
) - Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
-
Clone the repository
git clone https://github.com/yourusername/ExpenseMate.git cd ExpenseMate
-
Install dependencies
npm install
-
Set up environment variables
-
Start the development server
npm start
-
Run on your device
- Android:
npm run android
or scan QR code with Expo Go - iOS:
npm run ios
or scan QR code with Expo Go - Web:
npm run web
- Android:
For building APK/IPA files:
-
Install EAS CLI
npm install -g eas-cli
-
Login to Expo
eas login
-
Build for Android
npm run build:android
-
Build for iOS
npm run build:ios
- Smart Categories: Pre-defined categories with emojis
- Custom Categories: Add your own categories
- Amount Validation: Prevents invalid inputs
- Date Selection: Pick any date for your expense
- Monthly View: See all expenses for any month/year
- Category Breakdown: Pie chart showing expense distribution
- Total Calculations: Automatic sum calculations
- Refresh Support: Pull-to-refresh for latest data
- Monthly Targets: Set budget goals for each category
- Visual Progress: Progress bars showing goal completion
- Real-time Updates: Goals update as you add expenses
- Theme Toggle: Switch between light and dark themes
- Data Management: Clear cache and manage data
- App Information: Version and developer info
Command | Description |
---|---|
npm start |
Start Expo development server |
npm run android |
Run on Android device/emulator |
npm run ios |
Run on iOS device/simulator |
npm run web |
Run on web browser |
npm run lint |
Run ESLint code linting |
npm run build:android |
Build Android APK/AAB |
npm run build:ios |
Build iOS IPA |
npm run prebuild |
Generate native code |
We love contributions! Here's how you can help:
Found a bug? Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Device/OS information
Have an idea? Request a feature with:
- Detailed description
- Use case scenarios
- Mockups or examples (if applicable)
-
Fork the repository
-
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
-
Run quality checks
npm run lint npx tsc --noEmit
-
Commit your changes
git commit -m 'Add amazing feature'
-
Push to your branch
git push origin feature/amazing-feature
-
Open a Pull Request
- Follow the existing code style
- Add TypeScript types for new code
- Test on both Android and iOS
- Update documentation if needed
- Add comments for complex logic
This project is licensed under the MIT License - see the LICENSE file for details.
- Expo Team - For the amazing React Native framework
- Firebase - For the reliable backend services
- React Native Community - For the awesome libraries
β Star this repo if you find it helpful!