AI-powered personal finance management platform built with React, TypeScript, React Query, and modern frontend architecture.
Finexa is a production-oriented financial advisor application focused on:
- Transaction management
- AI-powered financial flows
- Voice-to-transaction workflows
- OCR receipt parsing
- Dashboard analytics
- Savings goals
- Financial insights
- Clean scalable frontend architecture
The project is designed with strong separation of concerns, centralized infrastructure, reusable UI systems, and domain-oriented feature modules.
- Available balance tracking
- Income & expense summaries
- Savings overview
- Money flow charts
- Financial analytics
- Dynamic dashboard refresh via centralized React Query invalidation
- Add / update / delete transactions
- Transaction filters
- Categories system
- Insights & summaries
- Optimistic UI-safe mutation flows
- Shared transaction invalidation architecture
- Financial assistant chatbot
- Transaction-aware responses
- AI-powered interaction layer
Users can:
- Record voice input
- Convert speech to text
- Review/edit transcript
- Create transactions directly from speech
Example:
I received 5000 pounds from freelance work and bought coffee for 200 pounds.
- Upload receipts
- Extract merchant and items
- Parse purchase data
- Convert receipts into transactions
- Savings goals
- Goal contribution flows
- Refund/cancel support
- Goal history
- Dashboard integration
- React
- TypeScript
- Vite
- Tailwind CSS
- Framer Motion
- TanStack React Query
- Zod
- Feature-driven architecture
- Domain-oriented modules
- Centralized query invalidation
- Shared infrastructure layer
- Typed API contracts
- Scalable React Query topology
src/
├── assets/
├── components/
│
├── features/
│ ├── ai/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── utils/
│ │
│ ├── auth/
│ │ ├── api/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── utils/
│ │
│ ├── dashboard/
│ │ ├── api/
│ │ ├── charts/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── utils/
│ │
│ ├── goals/
│ │ ├── api/
│ │ ├── charts/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── utils/
│ │
│ ├── transactions/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── utils/
│ │
│ └── user/
│ ├── api/
│ ├── components/
│ ├── hooks/
│ ├── types/
│ └── utils/
│
├── infrastructure/
│ ├── api/
│ ├── auth/
│ ├── query/
│ │ ├── invalidation/
│ │ └── query-keys.ts
│ └── layouts/
│
├── routes/
├── pages/
├── shared/
│ ├── ui/
│ ├── animations/
│ ├── theme/
│ └── utils/
│
└── lib/
Each domain owns:
- API layer
- hooks
- types
- utilities
- components
This keeps the application scalable and maintainable.
Shared infrastructure handles:
- HTTP client
- authentication session handling
- query invalidation
- API configuration
- shared layouts
The project uses centralized domain invalidation instead of scattered cache updates.
Example:
invalidateTransactionDomainQueries(queryClient)This ensures:
- dashboard refresh consistency
- reduced duplication
- predictable cache behavior
- scalable side-effect management
Backend stores UTC timestamps.
Frontend:
- preserves raw backend timestamps
- converts only at presentation layer
- centralizes Cairo formatting inside shared date utilities
This prevents:
- double timezone shifts
- DST issues
- inconsistent dashboard grouping
Record Voice
↓
Speech To Text API
↓
Editable Transcript
↓
Create Transactions From Speech
↓
React Query Invalidation
↓
Dashboard + Transactions Refresh
npm installnpm run devnpm run build- Production-grade architecture
- Reusable UI systems
- Strong type safety
- Minimal duplication
- Clean separation of concerns
- Domain-oriented state management
- Scalable React Query infrastructure
- Modern financial UX
- Real-time notifications
- Smart financial insights
- AI budgeting assistant
- Spending prediction engine
- Export reports
- Advanced analytics
- Multi-currency support
- Mobile optimization improvements
Add your screenshots here.
Example:
