A full-stack personal finance management application. This application provides users with comprehensive financial tracking, AI-powered assistance, and intelligent insights into their spending patterns.
- Financial Dashboard: Real-time overview of income, expenses, and net worth
- Transaction Management: Monthly transaction grouping and analysis
- AI Assistant: Intelligent chatbot for financial advice and insights
- Cards Management: Credit card and account management interface
- Subscription Tracking: Monitor and manage recurring subscriptions
- Authentication: Secure login with Auth0 integration
- Email Verification: User registration validation system
- Responsive Design: Modern, mobile-friendly interface
- React 19 - Modern UI framework
- Auth0 - Authentication and authorization
- CSS3 - Custom styling and animations
- Node.js - Runtime environment
- MongoDB - NoSQL database with Mongoose ODM
Before running this application, make sure you have:
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- Auth0 account for authentication
- npm or yarn package manager
git clone https://github.com/koolname99/hackUTD2025.git
cd hackUTD2025cd backend
npm installCreate a .env file in the backend directory:
MONGO_URI=your_mongodb_connection_string
PORT=5000cd ../frontend
npm installConfigure Auth0 by creating environment variables or updating the Auth0 configuration in your React app.
Backend (Terminal 1):
cd backend
node server.jsFrontend (Terminal 2):
cd frontend
npm run devThe application will be available at:
- Frontend:
http://localhost:5173(Vite default) - Backend API:
http://localhost:5000
Welcome screen with authentication and app overview
Comprehensive financial overview with charts and spending analytics
Credit card management interface with easy card addition
Track recurring subscriptions and manage monthly transactions
Intelligent chatbot providing personalized financial advice and insights
hackUTD2025/
βββ backend/
β βββ models/
β β βββ Account.js # MongoDB schema for user accounts
β βββ server.js # Express server and API routes
β βββ package.json
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ AIAssistant/ # AI chatbot interface
β β β βββ Cards/ # Credit cards management
β β β βββ Dashboard/ # Main financial dashboard
β β β βββ Landing/ # Landing page
β β β βββ Layout/ # App layout components
β β β βββ Login/ # Authentication components
β β β βββ Subscriptions/ # Subscription tracking
β β βββ api.js # API service functions
β β βββ App.jsx # Main application component
β β βββ main.jsx # Application entry point
β βββ package.json
βββ README.md
GET /api/transactions- Retrieve transactions grouped by month- Query parameter:
email(user email for filtering)
GET /api/auth/check-email- Verify if user email exists in system- Query parameter:
email
GET /api/category-budgets- Get user's category budgetsPOST /api/category-budgets- Save category budget settings
POST /api/ai/chat- Send message to AI assistant for financial advice
The Personal Finance Dashboard follows a modern full-stack architecture with clear separation of concerns:
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β Backend β β Database β
β (React) βββββΊβ (Node.js) βββββΊβ (MongoDB) β
β β β β β β
β - Components β β - REST API β β - User Data β
β - Auth0 Client β β - Auth Routes β β - Transactions β
β - State Mgmt β β - Data Models β β - Categories β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β²
β β β
βΌ βΌ β
βββββββββββββββββββ βββββββββββββββββββ β
β Auth0 β β AI Service β β
β Identity β β (External) β β
β Provider β β Financial AI β |
βββββββββββββββββββ βββββββββββββββββββ |
β² |
|_________________________________________|
- Component-Based Design: Modular React components for each feature
- Layout System: Centralized layout management with
DashboardLayout - Authentication Flow: Auth0 integration with protected routes
- API Layer: Centralized API service (
api.js) for backend communication - State Management: React hooks and local state management
- Responsive Design: CSS-based responsive layouts
- RESTful API: Express.js server with organized route handlers
- Data Layer: Mongoose ODM for MongoDB interactions
- Authentication: Auth0 token validation and user verification
- Error Handling: Centralized error handling and logging
- User Authentication: Auth0 handles login/logout and token management
- API Requests: Frontend makes authenticated requests to backend
- Data Processing: Backend processes requests and interacts with MongoDB
- Response Handling: Structured JSON responses with error handling
- State Updates: Frontend updates UI based on API responses
- Authentication: Auth0 JWT tokens for secure user identification
- Authorization: Backend validates tokens and user permissions
- Email Verification: Additional security layer for user registration
- Environment Variables: Sensitive data protected via environment configuration
Account Collection:
βββ _id (ObjectId)
βββ email (String, unique)
βββ transactions (Array)
β βββ amount (Number)
β βββ category (String)
β βββ date (Date)
β βββ description (String)
βββ categoryBudgets (Object)
βββ createdAt (Date)
βββ updatedAt (Date)
App.jsx
βββ Landing Component (Unauthenticated)
βββ DashboardLayout (Authenticated)
βββ Dashboard
β βββ FinancialDashboard
β βββ TransactionsByMonth
βββ Cards Management
βββ Subscriptions Tracking
βββ AIAssistant
- FinancialDashboard: Main overview with charts and summaries
- TransactionsByMonth: Monthly transaction breakdown
- Real-time calculation of income, expenses, and net worth
- Intelligent chatbot for financial advice
- Real-time messaging interface
- Integration with financial data for contextual responses
- User lands on the application
- Auth0 handles authentication
- System verifies email registration
- Access granted to authenticated, registered users
- Auth0 integration for secure authentication
- Email verification system
- Environment variable protection for sensitive data
- Modern, clean interface design
- Responsive layout for mobile and desktop
- Loading states and error handling
- Smooth animations and transitions
- Intuitive navigation between features
The application includes an AI assistant that can:
- Analyze spending patterns
- Provide financial advice
- Answer questions about financial data
- Offer personalized recommendations
Using Recharts library for:
- Monthly spending trends
- Category-wise expense breakdown
- Income vs. expense comparisons
- Financial goal tracking
- Credit Score Monitoring: Integration with credit score APIs.
- Multi-Currency Support: For international users or foreign transactions.
- Expense Anomaly Detection: Flag unusualy spending patterns and deavtivate credit card if necessary.
Developed for HackUTD 2025 by a hackUTD2025 team.







