|
1 | 1 | # Cashalyst - Personal Finance Tracker
|
2 | 2 |
|
3 |
| -A simple yet powerful personal finance tracking app built with React Native and Expo. Perfect for students and early-career individuals who want to track their daily expenses and income with clear insights. |
| 3 | +A simple yet powerful personal finance tracking app built with React Native and Expo. Perfect for students and early-career individuals who want to track daily expenses and income with clear insights. |
4 | 4 |
|
5 |
| -## Features |
| 5 | +--- |
6 | 6 |
|
| 7 | +## Features |
7 | 8 | ### 🏠 Home Dashboard
|
8 |
| -- **Total Balance**: View your overall financial position across all accounts with smooth animations |
9 |
| -- **Monthly Summary**: Quick overview of income, expenses, and savings for the current month |
10 |
| -- **Account Balances**: See individual balances for each money source (Cash, GPay, Bank) |
11 |
| -- **Recent Transactions**: Last 5 transactions with improved visual hierarchy and better spacing |
12 |
| -- **Quick Actions**: Easy access to add transactions and view history |
| 9 | +- Total balance overview with smooth animations |
| 10 | +- Monthly summary of income, expenses, and savings |
| 11 | +- Account balances (Cash, GPay, Bank) |
| 12 | +- Recent transactions (last 5) with improved visual hierarchy |
| 13 | +- Quick actions to add transactions and view history |
13 | 14 |
|
14 | 15 | ### ➕ Add Transactions
|
15 |
| -- **Simple Form**: Easy input for daily transactions with consistent spacing |
16 |
| -- **Transaction Types**: Income or Expense with color-coded indicators |
17 |
| -- **Categories**: Predefined categories for both income and expenses |
18 |
| -- **Multiple Sources**: Track transactions across different accounts |
19 |
| -- **Account Impact Preview**: Real-time balance validation and warnings |
20 |
| -- **Optional Notes**: Add context to your transactions |
| 16 | +- Simple form with income/expense types |
| 17 | +- Predefined categories and multiple source accounts |
| 18 | +- Real-time balance impact preview with warnings |
| 19 | +- Optional notes for transactions |
21 | 20 |
|
22 | 21 | ### 📋 Transaction History
|
23 |
| -- **Search & Filter**: Find transactions by category, type, or source with enhanced filter modal |
24 |
| -- **Date-based Viewing**: Browse transactions chronologically |
25 |
| -- **Delete Transactions**: Remove incorrect entries with themed confirmation popups |
26 |
| -- **Pull to Refresh**: Update data with a simple swipe |
27 |
| -- **Improved UI**: Better transaction cards with circular icons and cleaner layout |
| 22 | +- Search and filter by category, type, or source |
| 23 | +- Date-based viewing and pull-to-refresh |
| 24 | +- Delete or edit transactions with themed confirmation popups |
| 25 | +- Improved UI with better spacing and icons |
28 | 26 |
|
29 | 27 | ### 📊 Insights & Analytics
|
30 |
| -- **Category Spending**: Pie chart showing where your money goes |
31 |
| -- **Income vs Expenses**: Bar chart comparison for monthly overview |
32 |
| -- **Balance Trends**: Line chart tracking your financial growth |
33 |
| -- **Monthly Selector**: View insights for different months |
34 |
| -- **Account Breakdown**: Individual account balance tracking |
35 |
| - |
36 |
| -### 🎨 Enhanced User Experience |
37 |
| -- **Custom Modal System**: Themed popups replacing native alerts |
38 |
| -- **Balance Validation**: Real-time warnings for insufficient funds |
39 |
| -- **Smooth Animations**: Balance change animations and transitions |
40 |
| -- **Consistent Spacing**: Standardized margins and padding throughout |
41 |
| -- **Better Visual Hierarchy**: Improved typography and layout consistency |
| 28 | +- Category-wise spending (Pie chart) |
| 29 | +- Income vs Expenses (Bar chart) |
| 30 | +- Balance trends (Line chart) |
| 31 | +- Monthly selector and account breakdown |
| 32 | + |
| 33 | +### 🎨 Enhanced UX |
| 34 | +- Custom modal system with themed popups |
| 35 | +- Smooth animations and balance change transitions |
| 36 | +- Consistent spacing and visual hierarchy improvements |
| 37 | + |
| 38 | +--- |
42 | 39 |
|
43 | 40 | ## Tech Stack
|
| 41 | +- **Frontend:** React Native with Expo |
| 42 | +- **Navigation:** React Navigation (Bottom Tabs) |
| 43 | +- **UI Components:** React Native Paper |
| 44 | +- **State Management:** Zustand |
| 45 | +- **Database:** SQLite (expo-sqlite) |
| 46 | +- **Charts:** React Native Chart Kit |
| 47 | +- **Forms:** React Hook Form |
| 48 | +- **Icons:** Lucide React Native |
| 49 | +- **Blur Effects:** Expo Blur |
44 | 50 |
|
45 |
| -- **Frontend**: React Native with Expo |
46 |
| -- **Navigation**: React Navigation (Bottom Tabs) |
47 |
| -- **UI Components**: React Native Paper |
48 |
| -- **State Management**: Zustand |
49 |
| -- **Database**: SQLite (expo-sqlite) |
50 |
| -- **Charts**: React Native Chart Kit |
51 |
| -- **Forms**: React Hook Form |
52 |
| -- **Icons**: Lucide React Native |
53 |
| -- **Blur Effects**: Expo Blur |
| 51 | +--- |
54 | 52 |
|
55 | 53 | ## Installation & Setup
|
56 |
| - |
57 | 54 | ### Prerequisites
|
58 | 55 | - Node.js (v14 or higher)
|
59 | 56 | - npm or yarn
|
60 | 57 | - Expo CLI
|
61 |
| -- Android Studio (for Android development) or Xcode (for iOS development) |
62 |
| - |
63 |
| -### Installation Steps |
| 58 | +- Android Studio (for Android) or Xcode (for iOS) |
64 | 59 |
|
65 |
| -1. **Clone the repository** |
66 |
| - ```bash |
67 |
| - git clone https://github.com/KavinkumarAndroidDev/Cashalyst |
68 |
| - ``` |
| 60 | +### Steps |
| 61 | +```bash |
| 62 | +git clone https://github.com/KavinkumarAndroidDev/Cashalyst |
| 63 | +cd Cashalyst |
| 64 | +npm install |
| 65 | +npm start |
| 66 | +```` |
69 | 67 |
|
70 |
| -2. **Install dependencies** |
71 |
| - ```bash |
72 |
| - npm install |
73 |
| - ``` |
| 68 | +* Press `a` for Android, `i` for iOS, or scan QR code with Expo Go app. |
74 | 69 |
|
75 |
| -3. **Start the development server** |
76 |
| - ```bash |
77 |
| - npm start |
78 |
| - ``` |
79 |
| - |
80 |
| -4. **Run on device/simulator** |
81 |
| - - Press `a` for Android |
82 |
| - - Press `i` for iOS |
83 |
| - - Scan QR code with Expo Go app on your phone |
| 70 | +--- |
84 | 71 |
|
85 | 72 | ## Project Structure
|
86 | 73 |
|
87 | 74 | ```
|
88 | 75 | Cashalyst/
|
89 |
| -├── screens/ # Main app screens |
90 |
| -│ ├── HomeScreen.jsx # Dashboard with overview |
91 |
| -│ ├── AddTransactionScreen.jsx # Transaction input form |
92 |
| -│ ├── EditTransactionScreen.jsx # Transaction editing |
93 |
| -│ ├── HistoryScreen.jsx # Transaction history & search |
94 |
| -│ ├── InsightsScreen.jsx # Analytics & charts |
95 |
| -│ ├── AccountsScreen.jsx # Account management |
96 |
| -│ └── SetupScreen.jsx # Initial setup |
97 |
| -├── components/ # Reusable UI components |
98 |
| -│ ├── AppButton.jsx # Custom button component |
99 |
| -│ ├── AppTextField.jsx # Custom text input |
100 |
| -│ ├── AppDropdown.jsx # Custom dropdown |
101 |
| -│ ├── AppSearchBar.jsx # Search functionality |
102 |
| -│ ├── AppSegmentedButton.jsx # Segmented controls |
103 |
| -│ ├── AppModal.jsx # Custom modal system |
104 |
| -│ └── SplashScreen.jsx # App splash screen |
105 |
| -├── hooks/ # Custom React hooks |
106 |
| -│ └── useStore.js # Zustand state management |
107 |
| -├── db/ # Database layer |
108 |
| -│ ├── initDB.js # Database initialization |
109 |
| -│ ├── transactionService.js # Database operations |
110 |
| -│ └── asyncStorageService.js # Local storage |
111 |
| -├── utils/ # Utility functions |
112 |
| -│ ├── formatCurrency.js # Currency & date formatting |
113 |
| -│ ├── scale.js # Responsive scaling |
114 |
| -│ └── theme.js # App theming |
115 |
| -├── App.js # Main app component |
116 |
| -└── README.md # This file |
| 76 | +├── screens/ # Main app screens |
| 77 | +├── components/ # Reusable UI components |
| 78 | +├── hooks/ # Custom React hooks |
| 79 | +├── db/ # Database layer |
| 80 | +├── utils/ # Utility functions |
| 81 | +├── App.js # Main app component |
| 82 | +└── README.md |
117 | 83 | ```
|
118 | 84 |
|
119 |
| -## Database Schema |
120 |
| - |
121 |
| -### Transactions Table |
122 |
| -- `id`: Unique identifier |
123 |
| -- `amount`: Transaction amount |
124 |
| -- `type`: 'income' or 'expense' |
125 |
| -- `category`: Transaction category |
126 |
| -- `source`: Account/source identifier |
127 |
| -- `sourceId`: Account ID reference |
128 |
| -- `note`: Optional transaction note |
129 |
| -- `date`: Transaction date |
130 |
| -- `created_at`: Timestamp |
131 |
| - |
132 |
| -### Accounts Table |
133 |
| -- `id`: Unique identifier |
134 |
| -- `name`: Account name (e.g., "Cash", "GPay") |
135 |
| -- `balance`: Current balance |
136 |
| -- `created_at`: Timestamp |
137 |
| - |
138 |
| -## Default Setup |
139 |
| - |
140 |
| -The app comes with three default accounts: |
141 |
| -- **Cash**: Physical cash transactions |
142 |
| -- **GPay**: Google Pay transactions |
143 |
| -- **Bank**: Bank account transactions |
144 |
| - |
145 |
| -## Usage Guide |
146 |
| - |
147 |
| -### Adding Your First Transaction |
148 |
| -1. Open the app and go to the "Add Transaction" tab |
149 |
| -2. Enter the amount |
150 |
| -3. Select transaction type (Income/Expense) |
151 |
| -4. Choose a category from the dropdown |
152 |
| -5. Select the source account |
153 |
| -6. Review the account impact preview |
154 |
| -7. Add an optional note |
155 |
| -8. Tap "Save Transaction" |
156 |
| - |
157 |
| -### Viewing Insights |
158 |
| -1. Navigate to the "Insights" tab |
159 |
| -2. Use the month selector to view different periods |
160 |
| -3. Explore spending patterns through charts |
161 |
| -4. Monitor your savings progress |
162 |
| - |
163 |
| -### Managing Transactions |
164 |
| -1. Go to "Transaction History" to see all entries |
165 |
| -2. Use search to find specific transactions |
166 |
| -3. Apply filters by type, category, or source |
167 |
| -4. Edit or delete transactions with themed confirmations |
168 |
| - |
169 |
| -### Account Management |
170 |
| -1. Access account settings from the home screen |
171 |
| -2. View individual account balances |
172 |
| -3. Monitor account-specific transactions |
173 |
| -4. Track balance changes over time |
| 85 | +--- |
| 86 | +
|
| 87 | +## Default Accounts |
| 88 | +
|
| 89 | +* **Cash** – Physical cash transactions |
| 90 | +* **GPay** – Google Pay transactions |
| 91 | +* **Bank** – Bank account transactions |
| 92 | +
|
| 93 | +--- |
174 | 94 |
|
175 | 95 | ## Future Enhancements
|
176 | 96 |
|
177 |
| -### Planned Features |
178 |
| -- [ ] Budget setting and tracking |
179 |
| -- [ ] Recurring transaction setup |
180 |
| -- [ ] Export data to CSV/PDF |
181 |
| -- [ ] Dark and Light mode support |
182 |
| -- [ ] Cloud sync with Google Drive |
183 |
| -- [ ] Multiple currency support |
184 |
| -- [ ] Bill reminders |
185 |
| -- [ ] Financial goals tracking |
186 |
| -- [ ] Transaction templates |
187 |
| -- [ ] Advanced analytics |
188 |
| - |
189 |
| -### Technical Improvements |
190 |
| -- [x] Offline-first architecture |
191 |
| -- [ ] Performance optimizations |
192 |
| -- [ ] Unit and integration tests |
193 |
| -- [ ] Accessibility improvements |
194 |
| -- [ ] Internationalization (i18n) |
195 |
| -- [x] Push notifications |
196 |
| -- [x] Data backup/restore |
197 |
| - |
198 |
| -## Contributing |
| 97 | +* [ ] Budget setting and tracking |
| 98 | +* [ ] Recurring transactions setup |
| 99 | +* [ ] Export data to CSV |
| 100 | +* [ ] Dark mode theme switcher |
| 101 | +* [ ] Cloud sync with Google Drive |
| 102 | +* [ ] Multi-currency support |
| 103 | +* [ ] Bill reminders & notifications |
| 104 | +* [ ] Financial goals tracking |
| 105 | +* [ ] Transaction templates |
| 106 | +* [ ] Advanced analytics |
199 | 107 |
|
200 |
| -We welcome contributions! |
201 |
| -Note: There are already several improvement ideas listed in the Issues section. |
202 |
| -If you'd like to collaborate: |
| 108 | +--- |
203 | 109 |
|
204 |
| -1. Fork the repository |
205 |
| -2. Create a feature branch(`git checkout -b feature/your-feature`) |
206 |
| -3. Commit and push changes |
207 |
| -4. Submit a Pull Request |
| 110 | +## Contribution |
208 | 111 |
|
209 |
| -## License |
| 112 | +We welcome contributions! |
| 113 | +Check [CONTRIBUTING.md](CONTRIBUTING.md) and see open [Issues](../../issues). |
| 114 | +
|
| 115 | +--- |
210 | 116 |
|
211 |
| -This project is licensed under the MIT License - see the LICENSE file for details. |
| 117 | +## Contributors |
212 | 118 |
|
213 |
| -## Support |
| 119 | +Thanks to these awesome people: <a href="/KavinkumarAndroidDev/Cashalyst/graphs/contributors"> <img src="https://contrib.rocks/image?repo=KavinkumarAndroidDev/Cashalyst" /> </a> |
214 | 120 |
|
215 |
| -If you encounter any issues or have questions: |
216 |
| -1. Check the existing issues in the repository |
217 |
| -2. Create a new issue with detailed information |
218 |
| -3. Include device/OS information and steps to reproduce |
| 121 | +--- |
219 | 122 |
|
220 |
| -## Acknowledgments |
| 123 | +## License |
221 | 124 |
|
222 |
| -- Built with React Native and Expo |
223 |
| -- UI components from React Native Paper |
224 |
| -- Charts powered by React Native Chart Kit |
225 |
| -- State management with Zustand |
226 |
| -- Database operations with SQLite |
227 |
| -- Icons from Lucide React Native |
| 125 | +This project is licensed under the MIT License - see [LICENSE](LICENSE). |
228 | 126 |
|
229 | 127 | ---
|
230 | 128 |
|
231 |
| -**Cashalyst** - Making personal finance tracking simple and insightful! 💰📊 |
| 129 | +**Cashalyst** – Making personal finance tracking simple and insightful! 💰📊 |
0 commit comments