B_TEA is an AI-powered financial analysis platform that transforms raw expense data into actionable insights. Upload your financial documents (CSV/PDF) and get professional-grade analysis, visualization, and forecastingβautomatically.
Users struggle to understand their spending patterns without tedious manual analysis.
One-click upload β Comprehensive analytics dashboard with insights a financial analyst would provide.
- β Better than Splitwise: Automatic parsing, real insights (vs manual logging)
- β Better than Bank Apps: Privacy-first, smarter analysis, actionable recommendations
- β Affordable: $5/month vs $500+ for real analyst
- Docker & Docker Compose
- Python 3.10+ (for local development)
- Node 18+ (for frontend development)
# Clone the repo
git clone https://github.com/cosmo95/B_TEA.git
cd B_TEA
# Start all services
docker-compose up --build
# Access:
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000
# API Docs: http://localhost:8000/docsBackend Setup:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python app/main.pyFrontend Setup:
cd frontend
npm install
npm start- π€ File Upload: CSV & PDF parsing with auto-detection
- π§Ή Data Cleaning: Standardization, deduplication, currency handling
- π€ Auto-Categorization: ML-powered transaction categorization
- π Analytics Dashboard: Beautiful charts, spending breakdown, trends
- π‘ Smart Insights: Subscriptions, anomalies, behavioral patterns
- π Forecasting: Next month predictions with confidence intervals
- π¬ Recommendations: Actionable suggestions to optimize spending
- π Export: PDF reports & cleaned CSV data
βββββββββββββββββββ
β Frontend β
β (React 18) β
ββββββββββ¬βββββββββ
β HTTP/REST API
ββββββββββΌββββββββββββββββββββββββββββββ
β FastAPI Backend β
β ββββββββββββββββββββββββββββββββ β
β β Data Processing Pipeline: β β
β β β’ Parser (CSV/PDF) β β
β β β’ Cleaner β β
β β β’ Categorizer (ML) β β
β β β’ Analyzer (Insights) β β
β β β’ Forecaster β β
β ββββββββββββββββββββββββββββββββ β
ββββββββββ¬βββββββββββββββββββ¬βββββββββββ
β β
ββββββΌββββ ββββββΌβββββββ
β DB β β Redis β
β(PostgreSQL) β (Caching) β
ββββββββββ βββββββββββββ
Backend:
- FastAPI (API framework)
- Pandas & NumPy (data processing)
- Scikit-learn (ML categorization)
- pdfplumber (PDF parsing)
- SQLAlchemy (ORM)
- PostgreSQL (database)
- Redis (caching)
- Celery (async tasks)
Frontend:
- React 18 (UI framework)
- Recharts (data visualization)
- TailwindCSS (styling)
- Axios (API client)
- TypeScript (type safety)
B_TEA/
βββ backend/
β βββ app/
β β βββ main.py # FastAPI app initialization
β β βββ api/
β β β βββ routes/ # API endpoints
β β β βββ models/ # Pydantic schemas
β β βββ database/ # SQLAlchemy models
β β βββ utils/ # Config, logging, helpers
β βββ data_pipeline/
β β βββ parser.py # CSV/PDF parsing
β β βββ cleaner.py # Data cleaning
β β βββ categorizer.py # Auto-categorization
β β βββ analyzer.py # Analytics & insights
β βββ requirements.txt
β βββ Dockerfile
β βββ .env.example
βββ frontend/
β βββ public/
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ services/ # API calls
β β βββ types/ # TypeScript types
β β βββ App.tsx
β βββ package.json
β βββ Dockerfile
β βββ .env.example
βββ docker-compose.yml
βββ PRD.txt # Product Requirements Document
βββ README.md
GET /health
β Returns: { status: "healthy" }
POST /api/v1/analysis/upload
Body: { file: File }
β Returns: { analysis_id: UUID, status: "processing" }
GET /api/v1/analysis/{analysis_id}
β Returns: { transactions, metrics, status }
GET /api/v1/insights/{analysis_id}
β Returns: { subscriptions, anomalies, trends, recommendations }
GET /api/v1/forecast/{analysis_id}
β Returns: { predictions by category, confidence }
GET /api/v1/report/{analysis_id}
β Returns: PDF file download
1. File Upload
β
2. Validation & Parsing (CSV/PDF)
β
3. Data Cleaning (standardization, deduplication)
β
4. Auto-Categorization (ML model)
β
5. Analytics (metrics, patterns, anomalies)
β
6. Forecasting (next month predictions)
β
7. Report Generation (PDF + JSON)
ML model trained on common transaction patterns automatically assigns categories:
- Food & Dining
- Transportation
- Bills & Utilities
- Entertainment
- Shopping
- Healthcare
- Education
- Personal Care
- Subscriptions
- Other
- Subscriptions: Detect recurring monthly charges (Netflix, Spotify, gym)
- Anomalies: Flag unusual spending spikes
- Trends: Show category growth/decline over time
- Behavioral: Weekend vs weekday patterns
- Recommendations: Actionable suggestions to save money
- Next month spending prediction
- Category-wise forecasts
- Confidence intervals
- Seasonal adjustment
- β Encrypted file upload (AES-256 at rest)
- β HTTPS for all communication
- β Automatic file deletion (30 days)
- β Rate limiting on API
- β Optional user authentication
- β GDPR-compliant data retention
- β File parsing & cleaning
- β Auto-categorization
- β Analytics dashboard
- β Insights generation
- β PDF reports
- User accounts
- Save/manage analyses
- Mobile responsive
- Performance optimization
- Freemium launch
- Stripe integration
- API for Business tier
- Bank API integrations
- Budget planning
- Mobile apps
- 10k+ users
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see LICENSE file for details.
Cosmo - GitHub
- π Read the PRD.txt for detailed product specifications
- π Report bugs in Issues
- π¬ Discuss ideas in Discussions
- π§ Contact via email (if available)
Made with β€οΈ for open source