A full-stack, AI-powered financial dashboard to help users track spending, forecast future expenses, and receive intelligent recommendations for managing their money.
Finsight is a modern web application built on a microservice architecture. It combines a sleek React frontend with two powerful backends: a Node.js server for core user authentication and transaction management, and a dedicated Python API for all machine learning models.
This system allows users to not only visualize their financial data but also interact with it, asking natural language questions (e.g., "How much did I spend on food?") and receiving AI-driven insights to improve their financial health.
- Modern UI: Built with React, TypeScript, and shadcn-ui for a clean, responsive user experience.
- Fast & Responsive: Styled with TailwindCSS and powered by Vite for near-instant builds.
- Multi-Page Dashboard: Full routing for different sections like Dashboard, Transactions, and AI Insights.
- Data Visualization: (You can add this) Charts and graphs to visualize spending.
- Core API: Handles secure user registration, login (JWT), and all CRUD operations for financial transactions.
- Database: Integrated with MongoDB for flexible and scalable data storage.
- Security: Implements password hashing (
bcryptjs) and protected routes.
- NLP Query Parser: A spaCy-based model that understands natural language queries for spending.
- Forecasting Model: A time-series model using Prophet to predict future spending.
- Recommendation Engine: A rule-based engine that provides actionable financial advice.
- High-Performance API: All models are served via a high-speed FastAPI server.
This project uses a microservice architecture to separate concerns. The React frontend communicates with both the Node.js backend (for user/transaction data) and the FastAPI backend (for AI insights).
(Tip: You can create a simple diagram using a tool like Excalidraw and follow the steps in the "How to Add Photos" section below to add it here.)
To run this project locally, you must run all three services in separate terminals.
git clone [https://github.com/pranayb1256/Finsight.git](https://github.com/pranayb1256/Finsight.git)
cd Finsight# Go to the frontend directory
cd frontend
# Install dependencies
npm install
# Run the development server
npm run devFrontend will be live at
http://localhost:5173
# Go to the backend directory
cd backend
# Install dependencies
npm install
# Create a .env file and add your MongoDB URI
# (You will need to create this file)
echo "MONGO_URI=your_mongodb_connection_string_here" > .env
# Run the server
npm run startNode.js API will be live at
http://localhost:5000(or your configured port)
# Go to the ML API directory
cd ml-api
# Create and activate a virtual environment
python -m venv venv
source venv/Scripts/activate # On Windows Git Bash
# .\venv\Scripts\activate # On Windows CMD/PowerShell
# source venv/bin/activate # On Mac/Linux
# Install the spaCy language model
python -m spacy download en_core_web_sm
# Install Python dependencies
pip install -r requirements.txt
# Run the ML server
python main.pyFastAPI ML-API will be live at
http://localhost:8000. You can test it athttp://localhost:8000/docs.
This project features three distinct machine learning/AI models:
-
NLP Query Parser:
- Goal: To understand user queries like "how much did I spend on food?".
- Model: Uses spaCy for Named Entity Recognition (to find "food") and keyword matching to determine the user's intent (e.g., "get_spending").
-
Spending Forecaster:
- Goal: To predict the user's total spending for the next 30 days.
- Model: Uses Prophet, a time-series forecasting model, to analyze past spending patterns and project them into the future.
-
Recommendation Engine:
- Goal: To provide actionable advice to the user.
- Model: A rule-based engine that analyzes spending habits (e.g., "high subscription spending") and provides specific, high-priority recommendations.
(This is the most important section to add! Follow the guide below to add your own screenshots.)
This project was built by:
- Pranay B. - *Backend *
- Pratham H. - ML API
- [Your Name Here] - Frontend Development
- [Teammate Name Here] - Node.js Backend
This project is licensed under the MIT License.
