Skip to content

koolname99/hackUTD2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Personal Finance Dashboard

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.

🌟 Features

  • 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

πŸ› οΈ Technology Stack

Frontend

  • React 19 - Modern UI framework
  • Auth0 - Authentication and authorization
  • CSS3 - Custom styling and animations

Backend

  • Node.js - Runtime environment
  • MongoDB - NoSQL database with Mongoose ODM

πŸ“‹ Prerequisites

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

πŸš€ Installation & Setup

1. Clone the Repository

git clone https://github.com/koolname99/hackUTD2025.git
cd hackUTD2025

2. Backend Setup

cd backend
npm install

Create a .env file in the backend directory:

MONGO_URI=your_mongodb_connection_string
PORT=5000

3. Frontend Setup

cd ../frontend
npm install

Configure Auth0 by creating environment variables or updating the Auth0 configuration in your React app.

4. Start the Application

Backend (Terminal 1):

cd backend
node server.js

Frontend (Terminal 2):

cd frontend
npm run dev

The application will be available at:

  • Frontend: http://localhost:5173 (Vite default)
  • Backend API: http://localhost:5000

πŸ’» Screenshots

🏠 Landing Page

Landing Page

Welcome screen with authentication and app overview

πŸ“Š Financial Dashboard

Main Dashboard Dashboard Overview

Comprehensive financial overview with charts and spending analytics

πŸ’³ Cards Management

Cards Overview Add New Card

Credit card management interface with easy card addition

πŸ“… Subscriptions & Transactions

Subscriptions Tracking Transaction Management

Track recurring subscriptions and manage monthly transactions

πŸ€– AI Assistant

AI Financial Assistant

Intelligent chatbot providing personalized financial advice and insights

πŸ“± Application Structure

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

πŸ”Œ API Endpoints

Transactions

  • GET /api/transactions - Retrieve transactions grouped by month
  • Query parameter: email (user email for filtering)

Authentication

  • GET /api/auth/check-email - Verify if user email exists in system
  • Query parameter: email

Categories & Budgets

  • GET /api/category-budgets - Get user's category budgets
  • POST /api/category-budgets - Save category budget settings

AI Assistant

  • POST /api/ai/chat - Send message to AI assistant for financial advice

πŸ—οΈ Architecture

System Overview

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  β”‚              |
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              |
              β–²                                         |
              |_________________________________________|

Frontend Architecture

  • 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

Backend Architecture

  • 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

Data Flow

  1. User Authentication: Auth0 handles login/logout and token management
  2. API Requests: Frontend makes authenticated requests to backend
  3. Data Processing: Backend processes requests and interacts with MongoDB
  4. Response Handling: Structured JSON responses with error handling
  5. State Updates: Frontend updates UI based on API responses

Security Architecture

  • 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

Database Schema

Account Collection:
β”œβ”€β”€ _id (ObjectId)
β”œβ”€β”€ email (String, unique)
β”œβ”€β”€ transactions (Array)
β”‚   β”œβ”€β”€ amount (Number)
β”‚   β”œβ”€β”€ category (String)
β”‚   β”œβ”€β”€ date (Date)
β”‚   └── description (String)
β”œβ”€β”€ categoryBudgets (Object)
β”œβ”€β”€ createdAt (Date)
└── updatedAt (Date)

Component Architecture

App.jsx
β”œβ”€β”€ Landing Component (Unauthenticated)
└── DashboardLayout (Authenticated)
    β”œβ”€β”€ Dashboard
    β”‚   β”œβ”€β”€ FinancialDashboard
    β”‚   └── TransactionsByMonth
    β”œβ”€β”€ Cards Management
    β”œβ”€β”€ Subscriptions Tracking
    └── AIAssistant

🎯 Key Components

Dashboard

  • FinancialDashboard: Main overview with charts and summaries
  • TransactionsByMonth: Monthly transaction breakdown
  • Real-time calculation of income, expenses, and net worth

AI Assistant

  • Intelligent chatbot for financial advice
  • Real-time messaging interface
  • Integration with financial data for contextual responses

Authentication Flow

  1. User lands on the application
  2. Auth0 handles authentication
  3. System verifies email registration
  4. Access granted to authenticated, registered users

πŸ”’ Security Features

  • Auth0 integration for secure authentication
  • Email verification system
  • Environment variable protection for sensitive data

🎨 UI/UX Features

  • Modern, clean interface design
  • Responsive layout for mobile and desktop
  • Loading states and error handling
  • Smooth animations and transitions
  • Intuitive navigation between features

πŸ€– AI Integration

The application includes an AI assistant that can:

  • Analyze spending patterns
  • Provide financial advice
  • Answer questions about financial data
  • Offer personalized recommendations

πŸ“Š Data Visualization

Using Recharts library for:

  • Monthly spending trends
  • Category-wise expense breakdown
  • Income vs. expense comparisons
  • Financial goal tracking

πŸ“ Future Improvements

  • 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.

πŸ‘₯ Team

Developed for HackUTD 2025 by a hackUTD2025 team.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors