A feature-rich, high-performance mobile application designed to help you take control of your finances. From daily expense tracking to intricate bill splitting with friends, this app provides a seamless and aesthetically pleasing experience.
- Visual Trends: View your spending habits over the last 6 months with interactive bar charts.
- Category Breakdown: Understand where your money goes with dynamic pie charts.
- Quick Summaries: Get instant insights into your current month's spending versus your average.
- Group Sharing: Split any expense with multiple friends effortlessly.
- Net Balances: Track exactly who owes you and whom you owe in a centralized dashboard.
- Settle Up: One-tap settlement tracking to keep your financial relationships clear.
- Friend Network: Manage friend requests and build your circle for shared expenses.
- Daily Visualization: Track your expenses on a dedicated calendar view.
- Historical Data: Easily navigate through past dates to review your spending history.
- JWT Authentication: Secure login and registration with token-based authorization.
- Protected Routes: Your financial data is only accessible to you.
- Password Encryption: Industry-standard hashing for user security.
- Modern Design: Clean, card-based layout with a professional color palette.
- Smooth Animations: Powered by
react-native-reanimatedfor a fluid experience. - Responsive Elements: Optimized for various screen sizes and orientations.
- Framework: React Native (TypeScript)
- Navigation: React Navigation (Stack & Drawer)
- State Management: Context API
- Networking: Axios
- Charts: React Native Chart Kit
- Styling: Vanilla CSS with Reanimated
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose ODM)
- Auth: JSON Web Tokens (JWT) & BcryptJS
Expense-Tracker/
├── frontend/ # React Native Mobile App
│ ├── src/
│ │ ├── components/ # Reusable UI components (Charts, Cards)
│ │ ├── screens/ # All App Screens (Split, Analysis, Calendar, etc.)
│ │ ├── navigation/ # Navigation configurations
│ │ ├── services/ # API configuration (Axios)
│ │ └── context/ # Global State (AuthContext)
├── backend/ # Node.js Express API
│ ├── src/
│ │ ├── models/ # Mongoose Schemas (User, Expense, Split, Friend)
│ │ ├── controllers/ # Business Logic
│ │ ├── routes/ # API Endpoints
│ │ └── middleware/ # Auth & Error handling- Node.js (v20 or higher)
- MongoDB (Local or Atlas)
- React Native Development Environment (Android Studio / Xcode)
cd backend
npm installCreate a .env file in the backend folder:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secretStart the server:
npm run devcd frontend
npm installUpdate the API base URL in frontend/src/services/api.ts (if necessary).
Run the app:
# For Android
npx react-native run-android
# For iOS
npx react-native run-iosContributions are welcome! Feel free to open an issue or submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Developed with ❤️ by Tejas