An AI-powered personal finance application that helps users manage their finances, analyze spending patterns, and get personalized financial advice.
- Transaction Management: Upload and categorize financial transactions from CSV, Excel, or JSON files
- Financial Analytics: Comprehensive dashboard with spending trends, category breakdowns, and financial metrics
- AI Financial Coach: Chat with an AI assistant for personalized financial advice and recommendations
- Investment Recommendations: Get personalized investment advice based on risk assessment
- Spending Pattern Analysis: Identify unusual transactions and spending trends
- Financial Predictions: Forecast future spending based on historical data
- FastAPI: Modern, fast web framework for building APIs
- SQLAlchemy: SQL toolkit and ORM
- PostgreSQL: Primary database
- Redis: Caching and session storage
- OpenAI GPT: AI-powered financial advice
- ChromaDB: Vector database for RAG (Retrieval Augmented Generation)
- Pandas: Data analysis and processing
- Scikit-learn: Machine learning for transaction categorization
- PyTorch: Deep learning for financial predictions
- React: User interface library
- Chart.js: Data visualization
- Tailwind CSS: Utility-first CSS framework
- Axios: HTTP client for API calls
- Python 3.8+
- Node.js 14+
- PostgreSQL
- Redis
- Clone the repository:
git clone <repository-url>
cd personal-finance-coach- Create a virtual environment:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Set up the database:
# Create PostgreSQL database
createdb finance_coach_db
# Run migrations (if using Alembic)
alembic upgrade head- Start the backend server:
python main.py- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm startCreate a .env file in the backend directory with the following variables:
# Database
DATABASE_URL=postgresql://username:password@localhost:5432/finance_coach_db
# Redis
REDIS_URL=redis://localhost:6379
# AI/ML APIs
OPENAI_API_KEY=your_openai_api_key_here
HUGGINGFACE_API_KEY=your_huggingface_api_key_here
# Security
SECRET_KEY=your-super-secret-key-change-this-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=30
# CORS
BACKEND_CORS_ORIGINS=["http://localhost:3000"]
# ChromaDB
CHROMA_DB_PATH=./chroma_db- Upload Transactions: Start by uploading your transaction data in CSV, Excel, or JSON format
- View Dashboard: Analyze your spending patterns, income, and financial metrics
- Chat with AI Coach: Ask questions about your finances and get personalized advice
- Get Investment Recommendations: Receive tailored investment suggestions based on your risk profile
Once the backend is running, visit http://localhost:8000/docs for interactive API documentation.
The application supports the following transaction file formats:
AmountorTransaction Amount: Transaction amount (positive for income, negative for expenses)DescriptionorTransaction Description: Transaction descriptionDateorTransaction Date: Transaction dateCategory(optional): Transaction categoryMerchantorPayee(optional): Merchant nameAccountorAccount Type(optional): Account type
{
"transactions": [
{
"amount": -50.00,
"description": "Grocery Store",
"date": "2024-01-15",
"category": "Groceries",
"merchant": "Whole Foods"
}
]
}- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue on GitHub or contact the development team.