A comprehensive financial management platform that gamifies personal finance through social features, AI-powered insights, and dynamic goal tracking with ML-driven score adjustments.
Metron Finance transforms financial management into an engaging, social experience. Users can track purchases, set savings goals, compete with friends on leaderboards, and receive personalized financial guidance through an AI chatbot.
The platform uses machine learning to automatically assess goal adherence and adjust user scores in real time.
- Real-time financial health score (0-1000 range)
- ML model automatically adjusts scores based on goal adherence
- Visual progress tracking with intuitive score breakdowns
- Gamified achievement system with badges and levels
- Create personalized financial goals (emergency funds, vacations, etc.)
- ML-powered progress prediction and timeline optimization
- Visual progress charts showing goal curves vs. actual trajectory
- Automated milestone tracking and celebrations
- Easy transaction recording with category classification
- Score impact calculation for each purchase
- Spending pattern analysis and insights
- Monthly/weekly spending summaries
- Friend-based leaderboards with emoji reactions
- Competitive scoring system to motivate financial wellness
- Social achievements and community challenges
- Privacy-focused sharing (scores only, not sensitive data)
- Context-aware chatbot for personalized financial advice
- Goal-specific recommendations and strategies
- Spending analysis and budgeting tips
- Educational content on financial literacy
- Spending trend visualization
- Goal progress forecasting using ML models
- Category-wise expense breakdown
- Financial health insights and recommendations
- React 18 β Modern UI with hooks and context
- React Router β Client-side routing
- Recharts β Data visualization and charts
- CSS3 β Custom styling with utility classes
- Responsive Design β Mobile-first approach
- Spring Boot 3.5.6 β REST API framework
- Java 21
- Spring Data JPA β Database abstraction
- Spring JDBC β Direct database operations
- Maven β Dependency management
- MySQL β Primary data storage
- JDBC β Database connectivity
- Connection pooling β Optimized performance
- OpenAI GPT-4 β Conversational AI chatbot
- Custom ML Model β Goal-adherence prediction
- FastAPI β Python ML service integration
- Real-time score adjustment β Based on ML predictions
metron-finance/
βββ backend/ # Spring Boot API
β βββ src/main/java/
β β βββ com/finance/hackathon/
β β βββ config/ # CORS and security config
β β βββ domain/ # Entity models
β β βββ repository/ # Data access layer
β β βββ resource/ # REST controllers
β β βββ service/ # Business logic
β β βββ queries/ # SQL queries
β βββ src/main/resources/
β βββ application.yml # Spring configuration
β βββ schema.sql # Database schema
βββ frontend/ # React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ context/ # React context providers
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service layer
β β βββ index.css # Global styles
β βββ chatbot/ # AI chatbot service
β βββ money_tutor/
β βββ app.py # FastAPI chatbot server
βββ ml-service/ # π§ Python machine learning module
β βββ app/ # Core ML application package
β β βββ pycache/ # Compiled Python cache
β β βββ data/ # Training and test data
β β βββ features/ # Feature engineering scripts
β β βββ models/ # Trained models and model definitions
β β βββ utils/ # Helper functions (preprocessing, scoring, etc.)
β β βββ init.py # Makes app a Python package
β β βββ config.py # Model configuration & hyperparameters
β β βββ main.py # FastAPI entrypoint exposing ML endpoints
β βββ requirements.txt # Python dependencies
βββ README.md # This file
-
Create Account
Sign up with email, income, and expenditure information.
Your initial financial score is calculated automatically. -
Set Financial Goals
Create specific savings goals with target amounts and timelines.
AI assistant provides personalized recommendations.
Track progress with visual charts and ML predictions. -
Record Purchases
Log transactions with merchant, amount, and category.
View real-time score impact for each purchase.
Analyze spending patterns over time. -
Connect with Friends
Add friends by email address.
Compete on leaderboards based on financial scores.
Share achievements and motivate each other. -
Get AI Guidance
Chat with the AI financial assistant.
Receive personalized advice based on your financial data.
Learn about budgeting, saving, and investing.
- Analyzes spending patterns vs. goal timelines
- Predicts and visually graphs likelihood of achieving financial goals
- Automatically adjusts user scores based on progress
- Income-to-expenditure ratio analysis
- Goal progress weighting
- Purchase category impact assessment
- Time-based trend analysis
- Continuous model evaluation
- Dynamic score updates
- Predictive goal timeline adjustments
- Personalized recommendation engine
Header requirement
Many endpoints require the header:
X-User-Id: <long>β ID of the authenticated user.
If missing, the server responds with 401 Unauthorized.
| Method | Endpoint | Description |
|---|---|---|
| POST | /user/register |
Create a new user account. Body: User JSON. |
| POST | /user/login |
Authenticate with email & password. Returns User object on success. |
| POST | /user/logout |
Invalidate the current session. |
| GET | /user/{id} |
Retrieve a user by ID. |
| GET | /user/user-score |
Get the current userβs score. Requires X-User-Id. |
| PATCH | /user/update-score |
Update the userβs score. Requires X-User-Id. Body: { "score": <int> }. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /purchase/record |
Record a new purchase. Requires X-User-Id. Body: Purchase JSON. |
| GET | /purchase/my-purchases |
Retrieve all purchases for the authenticated user. |
| GET | /purchase/admin/{id} |
Admin: Get a single purchase by purchase ID. |
| GET | /purchase/admin/user/{userId} |
Admin: Get all purchases for a specific user ID. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /goals/new |
Create a financial goal. Requires X-User-Id. Body: Goal JSON. |
| GET | /goals/my-goals |
Retrieve the goal for the current user. Returns an Optional<Goal>. |
| Method | Endpoint | Description |
|---|---|---|
| POST | /leaderboard/new-friend/{friendEmail} |
Add a friend by email. Requires X-User-Id. |
| GET | /leaderboard/count |
Get the number of friends for the current user. |
| GET | /leaderboard/rankings |
Get a sorted list of friends plus the current user, ranked by score (descending). |
| Method | Endpoint | Description |
|---|---|---|
| GET | /dashboard/{userId} |
Retrieve a full dashboard summary (income, expenditures, latest purchase info, goal progress, and score) for the given user ID. |
Enjoy and remember to be wise with your money!
Transform your financial future with Metron Finance β where smart money management meets social motivation! ππ°