An AI-powered financial advisory platform that helps students make informed decisions about loans, scholarships, and financial planning.
- Document Analysis: Upload and analyze financial documents using ColPali and Gemini AI
- Personal Information Management: Store and manage user financial data
- AI-Powered Insights: Get personalized financial recommendations
- Document Search: Search through uploaded documents with natural language queries
- Chat History: Keep track of all your financial discussions and analyses
- FastAPI - Modern Python web framework
- ChromaDB - Vector database for document search
- ColPali - Multimodal document understanding
- Gemini AI - Google's AI for document analysis
- MySQL - Relational database for user data
- Perplexity API - Real-time web search
- Next.js 15 - React framework
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- React Markdown - Markdown rendering
- Lucide React - Beautiful icons
- Python 3.8+
- Node.js 18+
- MySQL 8.0+
-
Clone the repository
git clone <repository-url> cd vthacks-2025
-
Run the setup script
./startup.sh
-
Configure environment variables
# Backend environment cp .env.example .env # Edit .env with your API keys and database credentials # Frontend environment cd frontend cp .env.example .env.local # Edit .env.local with your API URL (default: http://localhost:8000)
-
Start the application
# Terminal 1 - Backend python app/main.py # Terminal 2 - Frontend cd frontend npm run dev
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
POST /db/users- Create userGET /db/users- Get all usersGET /db/users/{id}- Get user by IDPUT /db/users/{id}- Update user
POST /documents/upload- Upload documentPOST /documents/search- Search documentsPOST /documents/search-and-analyze- Search and analyze with AIGET /documents/indexed- Get indexed documents
POST /query-perplexity- Query Perplexity AIPOST /index-text- Index text in ChromaDBGET /search-text- Search ChromaDB
vthacks-2025/
├── app/
│ ├── main.py # FastAPI application
│ ├── models.py # Pydantic models
│ ├── database.py # Database utilities
│ ├── document_service.py # Document processing
│ ├── model_manager.py # ColPali model management
│ └── initial.py # Model initialization
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js pages
│ │ ├── components/ # React components
│ │ └── services/ # API services
│ └── package.json
├── docs/ # Sample documents
├── database_schema.sql # Database schema
└── requirements.txt # Python dependencies
# Install dependencies
pip install -r requirements.txt
# Run with auto-reload
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run dev- Deploy your FastAPI backend to your preferred platform (Railway, Heroku, AWS, etc.)
- Set up your database and environment variables
- Note your backend URL (e.g.,
https://your-app.railway.app)
-
Update the frontend environment variable:
cd frontend # Update .env.local or set in your deployment platform NEXT_PUBLIC_API_URL=https://your-backend-deployment-url.com
-
Deploy to your preferred platform:
# For Vercel vercel --prod # For Netlify npm run build # Upload dist folder to Netlify # For Railway railway deploy
PERPLEXITY_API_KEY=your_perplexity_api_key
GEMINI_API_KEY=your_gemini_api_key
DB_HOST=localhost
DB_PORT=8889
DB_USER=root
DB_PASSWORD=root
DB_NAME=vthacks_2025
NEXT_PUBLIC_API_URL=http://localhost:8000
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details