Track. Analyze. Optimize.
FinSight is a real-time personal finance management platform built using a microservices architecture. It enables users to securely manage transactions, monitor budgets, visualize spending patterns, and receive intelligent financial insights through live analytics.
- JWT-based Authentication
- User Registration & Login
- Protected Routes
- Add, Edit & Delete Transactions
- Income & Expense Tracking
- Real-time Dashboard Updates
- Input Validation
- CSV Export
- Net Savings
- Total Income
- Total Spending
- Transaction Count
- Spending Breakdown (Pie Chart)
- Monthly Trends
- Top Spending Categories
- Create Monthly Budgets
- Live Budget Utilization
- Overspending Detection
- Budget Progress Tracking
Automatically generated insights such as:
- Budget exceeded
- Budget nearing limit
- High spending alerts
- Largest expense
- Top spending category
- Healthy savings rate
- Negative balance detection
Alerts automatically disappear once the condition is no longer true.
- Kafka Event Streaming
- Socket.IO Live Dashboard Updates
- Redis Cache Invalidation
- Instant Analytics Refresh
React Frontend
│
│
API Requests (JWT)
│
┌──────────────────┴─────────────────┐
│ │
Authentication Service Analytics Service
│ │
│ │
PostgreSQL Database Redis Cache
│
│
Kafka Producer ─────────────► Kafka Consumer
│
▼
Analytics Processing
- React
- React Router
- Axios
- Tailwind CSS
- Framer Motion
- Recharts
- Socket.IO Client
- Node.js
- Express.js
- PostgreSQL
- Redis
- Apache Kafka
- Socket.IO
- JWT Authentication
- Docker
- Docker Compose
ledger-system/
│
├── dashboard/
│ └── React Frontend
│
├── services/
│ ├── auth-service/
│ ├── transaction-service/
│ └── analytics-service/
│
├── packages/
│
├── infra/
│
├── docker-compose.yaml
│
└── README.md
Responsible for:
- User Registration
- Login
- JWT Token Generation
- Authorization Middleware
Responsible for:
- CRUD Transactions
- Publishing Kafka Events
- Transaction Validation
Responsible for:
- Dashboard Analytics
- Budget Analysis
- Financial Alerts
- Charts
- Redis Caching
- Kafka Consumer
- Real-time Updates
Whenever a transaction is created:
Transaction Created
│
▼
Kafka Producer
│
▼
Kafka Topic
│
▼
Analytics Consumer
│
▼
Update Analytics
│
▼
Clear Redis Cache
│
▼
Socket.IO Broadcast
│
▼
Frontend Updates Instantly
The dashboard provides:
- Net Savings
- Total Income
- Total Spending
- Total Transactions
- Spending Distribution
- Recent Transactions
- Budget Status
- Financial Alerts
FinSight continuously evaluates financial data and generates contextual alerts, including:
- Budget utilization above 80%
- Budget exceeded
- Largest recorded expense
- Negative account balance
- Spending exceeding 90% of income
- Highest spending category
- Strong savings performance
Alerts are generated dynamically based on the user's latest financial activity.
- JWT Authentication
- Protected REST APIs
- User-specific Data Isolation
- Input Validation
- Secure Password Hashing
git clone https://github.com/<your-username>/FinSight.gitnpm installdocker compose upnpm run devcd dashboard
npm install
npm run dev- AI-powered financial advisor
- OCR receipt scanning
- Email notifications
- Mobile application
- Multi-currency support
- Predictive spending analytics