Inspiration
The inspiration likely stems from the need to help users better understand and manage their personal finances by providing insights into spending habits, predicting future expenses, and offering personalized financial advice.
What it does
FinBot is a personal finance assistant that helps users:
Categorize expenses: Analyzes bank transactions and categorizes them into predefined categories (e.g., Housing, Food).
Visualize spending: Presents expense distribution through a pie chart.
Predict future spending: Forecasts future spending using time series analysis (SARIMA model) and Augmented Dickey-Fuller test.
Provide budget warnings: Alerts users if they are likely to exceed their budget in the coming month.
Recommend credit cards: Suggests suitable credit cards based on transaction data and credit card information.
Answer financial questions: Allows users to interact with a chatbot to get insights into their finances.
How we built it
Frontend: Built using Flutter (as indicated by the code).
Backend/AI: Langchain and Google's Gemini model are used for transaction analysis, categorization, and credit card recommendations.
SARIMA model and Augmented Dickey-Fuller test are used for predicting future spending.
Challenges we ran into
Typical challenges in such a project would likely include:
Data Cleaning and Preprocessing: Handling inconsistent or missing data in bank transactions.
Accurate Expense Categorization: Training the AI model to accurately categorize transactions based on often vague descriptions.
Model Selection and Tuning: Choosing and fine-tuning the SARIMA model for accurate forecasting.
API Integration: Properly integrating with and handling responses from the Gemini API.
User Interface Design: Creating an intuitive and user-friendly chat interface.
Accomplishments that we're proud of
The project successfully integrates AI models to provide a comprehensive financial overview and personalized advice. Key accomplishments could include:
Accurate expense categorization: Achieved a high level of accuracy in categorizing bank transactions.
Reliable spending predictions: Developed a forecasting model that provides reasonably accurate predictions.
Personalized credit card recommendations: Offered credit card suggestions tailored to individual spending habits.
User-friendly chatbot interface: Created an intuitive and engaging chat experience.
What we learned
AI Model Integration: Learned to integrate AI models (Gemini) for natural language understanding and financial analysis.
Time Series Analysis: Gained experience in time series analysis techniques for forecasting.
Data Handling: Improved skills in cleaning, preprocessing, and analyzing financial data.
User Interface Development: Enhanced Flutter skills to create a user-friendly financial app.
What's next for FinBot
Potential next steps for FinBot could include:
Connecting to real bank accounts: Integrating with bank APIs to automatically retrieve transaction data.
Adding more sophisticated financial planning features: Implementing features for goal setting, budgeting, and investment tracking.
Improving the accuracy of predictions: Refining the forecasting model with more data and advanced techniques.
Personalized financial advice: Providing tailored financial recommendations based on user goals and circumstances.
Multi-platform Support: Expanding to web and other mobile platforms.
Enhance the chatbot's capabilities: Enabling the chatbot to handle more complex financial queries and tasks.
Improved User Experience: Refining the UI based on user feedback and testing.
Built With
- fastapi
- flutter
- gemini-pro
- langchain
- llm
- sarima
- time-series
Log in or sign up for Devpost to join the conversation.