A modern personal finance management app built with React Native, Expo, and Appwrite.
- Expense Tracking - Track income and expenses easily
- Budget Management - Set and monitor budgets
- Statistics - Beautiful charts and spending analytics
- Authentication - Email/password and OAuth login
- Categories - Organize transactions by category
- Cross-Platform - Works on iOS, Android, and web
- Frontend: React Native, Expo, TypeScript
- State Management: Zustand
- Backend: Appwrite
- UI: NativeWind (Tailwind CSS)
- Charts: React Native Gifted Charts
- Navigation: Expo Router
- Node.js (v18+)
- npm or yarn
- Expo CLI
# Clone the repo
git clone https://github.com/swapnasahoo/mint-paisa.git
cd mint-paisa
# Install dependencies
npm install
# Start the app
npm startnpm run ios # iOS simulator (Mac only)
npm run android # Android emulator
npm run web # Web browserRename .env.example to .env or .env.local and start using it.
Variable Descriptions:
EXPO_PUBLIC_APPWRITE_PROJECT_ID- Your Appwrite project IDEXPO_PUBLIC_APPWRITE_API_ENDPOINT- Appwrite API endpoint (cloud or self-hosted)EXPO_PUBLIC_APPWRITE_DATABASE_TRANSACTIONS_ID- Database ID for storing transactionsEXPO_PUBLIC_APPWRITE_TABLE_TRANSACTIONS_ENTRIES_ID- Table/Collection ID for transaction entries
- Create an account on Appwrite
- Create a new project
- Set up authentication (Email/Password & OAuth)
- Create collections for transactions and user profiles
- app/ - All screens and layouts (file-based routing)
- components/ - Reusable UI componen
- services/ - API calls and business logic
- store/ - Global state management
- libs/ - Utility functions and helpers
- Use TypeScript for type safety
- Follow component naming: PascalCase (e.g.,
TransactionCard.tsx) - Functions: camelCase (e.g.,
createTransaction) - Constants: UPPER_SNAKE_CASE
# Install EAS CLI
npm install -g eas-cli
# Build for Android
eas build --platform android --profile production
# Build for iOS
eas build --platform ios --profile productionnpm start --clear
rm -rf node_modules
npm install- Verify
.envfile has correct credentials - Check Appwrite project exists and is active
- Ensure API endpoint is correct
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
MIT License - see LICENSE file for details
- GitHub Issues: Report bugs
Originally created by SwapnaSahoo