An open API service indexing awesome lists of open source software.

https://github.com/kodiererin/expensemate

This app was build for personal usage, to maintain and keep track of the expenses.
https://github.com/kodiererin/expensemate

android android-app android-application android-studio expo ios-app react-native

Last synced: 7 months ago
JSON representation

This app was build for personal usage, to maintain and keep track of the expenses.

Awesome Lists containing this project

README

          

# ๐Ÿ’ฐ ExpenseMate


ExpenseMate Logo

**A beautiful, modern expense tracking app built with React Native and Expo**

[![Expo](https://img.shields.io/badge/Expo-53.0.17-000020?style=for-the-badge&logo=expo&logoColor=white)](https://expo.dev/)
[![React Native](https://img.shields.io/badge/React_Native-0.79.5-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactnative.dev/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-007ACC?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![Firebase](https://img.shields.io/badge/Firebase-11.10.0-FFCA28?style=for-the-badge&logo=firebase&logoColor=black)](https://firebase.google.com/)

[๐Ÿš€ Quick Start](#-quick-start) | [๐Ÿ“– Features](#-features) | [๐Ÿค Contributing](#-contributing)

---

## โœจ Features

### ๐Ÿ’ธ **Expense Management**
- ๐Ÿ“Š **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

### ๐Ÿ“ˆ **Analytics & Insights**
- ๐Ÿ“Š **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

### ๐ŸŽฏ **Budget Goals**
- ๐ŸŽฏ **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

### ๐ŸŽจ **Modern UI/UX**
- ๐ŸŒ™ **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

---

## ๐Ÿ—๏ธ **Tech Stack**

| 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 |

---

## ๐Ÿš€ Quick Start

### Prerequisites

- **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)

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/yourusername/ExpenseMate.git
cd ExpenseMate
```

2. **Install dependencies**
```bash
npm install
```

3. **Set up environment variables**

4. **Start the development server**
```bash
npm start
```

5. **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`

---

### EAS Build Setup (Optional)

For building APK/IPA files:

1. **Install EAS CLI**
```bash
npm install -g eas-cli
```

2. **Login to Expo**
```bash
eas login
```

3. **Build for Android**
```bash
npm run build:android
```

4. **Build for iOS**
```bash
npm run build:ios
```

---

## ๐ŸŽฏ **Features Deep Dive**

### ๐Ÿ’ฐ **Add Expenses**
- **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

### ๐Ÿ“Š **Analytics Dashboard**
- **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

### ๐ŸŽฏ **Budget Goals**
- **Monthly Targets**: Set budget goals for each category
- **Visual Progress**: Progress bars showing goal completion
- **Real-time Updates**: Goals update as you add expenses

### โš™๏ธ **Settings & Profile**
- **Theme Toggle**: Switch between light and dark themes
- **Data Management**: Clear cache and manage data
- **App Information**: Version and developer info

---

## ๐Ÿงช **Development**

### Available Scripts

| 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 |

---

## ๐Ÿค Contributing

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

### ๐Ÿ› **Bug Reports**
Found a bug? [Open an issue](https://github.com/yourusername/ExpenseMate/issues/new?template=bug_report.md) with:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Device/OS information

### ๐Ÿ’ก **Feature Requests**
Have an idea? [Request a feature](https://github.com/yourusername/ExpenseMate/issues/new?template=feature_request.md) with:
- Detailed description
- Use case scenarios
- Mockups or examples (if applicable)

### ๐Ÿ› ๏ธ **Code Contributions**

1. **Fork the repository**
2. **Create a feature branch**
```bash
git checkout -b feature/amazing-feature
```
3. **Make your changes**
4. **Run quality checks**
```bash
npm run lint
npx tsc --noEmit
```
5. **Commit your changes**
```bash
git commit -m 'Add amazing feature'
```
6. **Push to your branch**
```bash
git push origin feature/amazing-feature
```
7. **Open a Pull Request**

### ๐Ÿ“‹ **Development Guidelines**

- 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

---

## ๐Ÿ“„ **License**

This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.

---

## **Acknowledgments**

- **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!**