Focal Financial Tracker
Creative Geek•
Focal is an AI-powered expense tracker that automates the process of manually entering expense details from receipts.
How many times have you been frustrated by the tedious process of manually entering expense details from receipts? I've been there, That's why I developed Focal; it's an AI-powered expense tracker that automates this process.
You just take a photo of your receipt, and Focal will automatically extract the details for you. It's that simple!
Don't have a receipt? Just record a small voice message and see the magic in action!
Production is live now at focal.creative-geek.tech.
✨ Features
- 📸 AI Receipt Scanning - Extract expense details from photos using multiple AI providers.
- 🎤 Voice Note Scanning - Extract expense details from voice notes.
- 🔄 Multi-Provider Support - Supports Google Gemini, OpenAI GPT-4o, Nvidia NIM, and Groq (OCR+LLM).
- 🧠 User-Selectable AI - Users can choose their preferred AI provider.
- 📊 Rate Limiting - Daily quota for AI scans to manage costs.
- 💰 Expense Tracking - Manage expenses with categories, amounts, and notes.
- 🔐 Secure Auth - JWT-based authentication with bcrypt password hashing.
- 🌓 Dark/Light Theme - Beautiful UI with theme persistence.
- 📱 Progressive Web App - Install on any device, works offline.
- 🔒 Production-Ready - Server-side API keys, no user setup required.
- ⚡ Edge-First - Deployed on Cloudflare's global network.
🚀 Quick Start For Developers
# Clone repository
git clone https://github.com/Creative-Geek/Focal.git
cd Focal
# Install dependencies
pnpm install
# Set up environment (see docs/DEVELOPMENT.md in the repo)
# Create .dev.vars with JWT_SECRET and ENCRYPTION_KEY
# Initialize database
pnpm db:migrate && pnpm db:migrate:002 && pnpm db:migrate:003 && pnpm db:migrate:004 && pnpm db:migrate:005 && pnpm db:migrate:006
# Run development server
pnpm dev:full
🛠️ Tech Stack
- Frontend: React 18 • TypeScript • Vite • TailwindCSS • shadcn/ui
- Backend: Cloudflare Workers • Hono.js • D1 (SQLite)
- AI Providers: Google Gemini • OpenAI • Nvidia NIM • Groq + Azure Vision
- Tools: ESLint • Wrangler • pnpm
🔒 Security
- Password hashing with bcrypt
- JWT token authentication
- SQL injection protection
- CORS configuration
- Input validation with Zod
📝 License
MIT License
Live Demo • Documentation • Report Bug
Made with ❤️ by Creative Geek
</div>