FinSnap is a modern and intuitive personal finance tracking app designed to help users manage their expenses, understand spending habits, and make smarter financial decisions — all in one tap. Whether you're tracking your monthly budget, analyzing where your money goes, or checking a suspicious SMS — FinSnap has your back.
- 🔐 Secure Local Storage – Your data stays on your device.
- 📩 Smart SMS Parsing – Automatically detects and extracts transaction details from bank-related SMS messages.
- 🚫 Scam Filter – Filters out fraudulent or irrelevant messages using intelligent heuristics.
- 📝 Manual Entry – Add expenses or income manually in a few taps.
- 📊 Interactive Analytics – View spending categories, trends, and comparison graphs.
- 💳 Categorization – Assign categories to each transaction (e.g., Food, Transport, Bills).
- 🧠 Insights for Action – Personalized tips based on your spending patterns.
- 📅 Monthly Summary – Know your income, expenses, and savings in one glance.
- Language: Kotlin
- IDE: Android Studio
- Database: Room DB
- Architecture: MVVM (Model-View-ViewModel)
- Libraries:
- Retrofit + Coroutines (for network calls if future online sync is added)
- MPAndroidChart (for graphs)
- LiveData & ViewModel
- SMS Retriever API (for parsing SMS)
- Platform: Native Android (Kotlin), single app module
app - Pattern: MVVM with Repository and Room persistence
- Layers:
- View (UI): Activities/Fragments under
app/src/main/java/com/example/finsnap/viewusing ViewBinding, Navigation, RecyclerView, and Material components. - ViewModel:
app/src/main/java/com/example/finsnap/viewmodelcontainsFinanceViewModelorchestrating business logic,SessionManagerfor simple session state, and managers for DB/network. - Data:
app/src/main/java/com/example/finsnap/modelcontains entities and repository; Room (UserDatabase,UsersDao) is inviewmodelpackage.
- View (UI): Activities/Fragments under
- 📉 Credit vs Debit Chart
- 🧾 Expense by Category Chart
- Clone this repo:
git clone https://github.com/yourusername/finsnap.git