https://github.com/boysimon10/cheeseflow-mobile
๐ง๐ธ Personal finance app with React Native (Expo), Tamagui, Apollo Client, and Zustand to track income, expenses, and generate reports.
https://github.com/boysimon10/cheeseflow-mobile
apollo-client expo expo-router graphql react-native tamagui zustand
Last synced: 3 months ago
JSON representation
๐ง๐ธ Personal finance app with React Native (Expo), Tamagui, Apollo Client, and Zustand to track income, expenses, and generate reports.
- Host: GitHub
- URL: https://github.com/boysimon10/cheeseflow-mobile
- Owner: boysimon10
- Created: 2025-03-08T12:28:18.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-29T20:12:52.000Z (4 months ago)
- Last Synced: 2025-06-29T21:23:29.533Z (4 months ago)
- Topics: apollo-client, expo, expo-router, graphql, react-native, tamagui, zustand
- Language: TypeScript
- Homepage:
- Size: 7.65 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ง๐ธCheeseFlow Mobile App
**CheeseFlow** is a personal finance mobile application built with **React Native (Expo)**, **Tamagui**, **Apollo Client**, and **Zustand**. It helps users easily **track income and expenses**, **organize transactions**, and **generate insightful reports** to better understand their financial health.
## ๐ Tech Stack
- ๐ฑ **React Native (Expo)** โ for building a smooth cross-platform mobile app
- ๐จ **Tamagui** โ for performant, styled UI components
- ๐ **Apollo Client** โ for interacting with a GraphQL backend
- ๐ง **Zustand** โ for simple and powerful state management## ๐ Backend Repository
This mobile application is powered by a robust backend API built with NestJS, GraphQL, PostgreSQL, and TypeORM. The backend handles all business logic for tracking income, expenses, and generating reports.
๐ [View CheeseFlow API Repository](https://github.com/boysimon10/cheeseflow-api)
## ๐ฑ Screenshots
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
## ๐ฒ Features
- **Secure Authentication**
Robust authentication system with JWT tokens and secure session management.- **Add Transactions**
Log income and expenses with category, amount, date, and notes. Support for multiple currencies and custom categories.- **Track Balance**
See your total balance updated in real-time with detailed breakdown by account and currency.- **Monthly Overview**
Get a breakdown of how much you're spending or earning month-by-month with interactive charts and trends analysis.- **Category Reports**
Visualize your transactions grouped by category with detailed statistics and spending patterns.- **Smart Analytics**
Get insights about your spending habits and recommendations for better financial management.- **Lightweight & Fast**
Designed with performance and simplicity in mind using Tamagui and Zustand.## ๐ง What I Learned
- **State Management with Zustand**
Built a clean store architecture for global state handling with optimized re-renders and persistent storage.- **GraphQL with Apollo Client**
Learned how to fetch, mutate, and cache data effectively with proper error handling and offline support.- **Design Systems with Tamagui**
Created a consistent and scalable UI with styled components and tokens, implementing responsive layouts and animations.- **TypeScript Best Practices**
Leveraged TypeScript for type-safe development with custom types and interfaces.## ๐ฎ Future Improvements
- ๐ Add dark mode and theme customization
- ๐ Implement authentication and sync with cloud backend
- ๐งพ Export reports as PDF or CSV
- ๐ Add spending limit notifications
- ๐ณ Add debt tracking and management
- ๐ Add debt repayment planning and scheduling
- ๐ Add subscription management and recurring payments## ๐ ๏ธ Running the App Locally
> โ ๏ธ **Important**: This mobile app requires the CheeseFlow backend API to be running. Please follow these steps in order:
1. **Set up the Backend first**
- Clone and configure the backend repository from [CheeseFlow Backend Repository](https://github.com/boysimon10/cheeseflow-api)
- Follow the backend setup instructions in its README
- Make sure the backend server is running before starting the mobile app2. **Clone the repository**
```bash
git clone https://github.com/boysimon10/cheeseflow-mobile.git
cd cheeseflow
```2. **Install dependencies**
```bash
npm install
# or
yarn install
```3. **Start the development server**
```bash
npx expo start
```4. **Open on your device**
Scan the QR code with the **Expo Go app** (available on iOS and Android) or run it on an emulator.## ๐ค Contributing
Contributions are welcome! Feel free to:
1. Fork the project
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Open a Pull Request