AI-Powered Expense Tracking & Financial Insights Platform
SpendSense is a full-stack expense analytics application that helps users track, categorize, and analyze their spending intelligently.
The platform combines rule-based logic with AI capabilities to automatically categorize expenses, extract data from receipts, and generate meaningful financial insights.
It also includes JWT-based authentication, interactive dashboards, anomaly detection, and AI-powered spending analysis.
- JWT-based authentication
- Secure HTTP-only cookie sessions
- Protected React routes
- Global API error handling
- Authentication check endpoint
- ➕ Add expenses manually
- ✏️ Edit existing expenses
- ❌ Delete expenses
- 🔍 Vendor-based expense search
- 📃 Server-side pagination for large datasets
- Upload expenses using CSV files
- Automatic parsing and storage
- Validation and error handling
Rule-based vendor mapping automatically categorizes expenses.
Example: Swiggy → Food Uber → Travel Amazon → Shopping
SpendSense integrates Google Gemini AI to enhance financial analysis.
Upload receipt images (jpeg / png) and AI extracts:
- Vendor name
- Transaction amount
- Transaction date
- Description
Automatically populates the expense form.
AI analyzes:
- Vendor name
- Expense description
and suggests the most relevant category.
AI analyzes your expense history and generates insights like:
- Spending trends
- Overspending alerts
- Category-based recommendations
## Backend
- Java
- Spring Boot
- Spring Security
- JWT Authentication
- Spring Data JPA
- MySQL
- WebClient
- Google Gemini API
- Swagger (OpenAPI)
- Lombok
## Frontend
- React
- TypeScript
- Material UI
- Axios
- Notistack (Snackbar Notifications)
- Recharts (Analytics Visualization)
React (UI)
│
Axios API Layer
│
Spring Boot REST APIs
│
Authentication Layer (JWT + Cookies)
│
Service Layer
│
AIService (Gemini Integration)
│
Spring Data JPA
│
MySQL Database
cd backend
mvn spring-boot:run
Backend runs at:
http://localhost:8081
cd frontend
npm install
npm run dev
Frontend runs at:
http://localhost:5173
Swagger UI:
http://localhost:8081/swagger-ui/index.html
{
"date": "2026-03-01",
"amount": 250,
"vendor": "Swiggy",
"description": "Dinner order"
}
- gemini.api.URL=https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={KEY}
- gemini.api.API_KEY=YOUR_API_KEY
Mohit Kumar
Frontend enthusiast passionate about building scalable full-stack applications.
⭐ If you found this project useful, consider giving it a star!