How bima2-creator/easy-expense works
Easy Expense is a project-expense tracker: users capture or enter a receipt, review its extracted details, and save an expense; they can then organize expenses by project and work order, review summaries, and export reports. The frontend is an Expo Router app backed by FastAPI, MongoDB, OCR.space, and local receipt-file storage. The source excerpts are partial, so some screen-to-API actions and backend subsystem details are represented only where the README or sampled code supports them.
Main entry points: api.ts API client · ExpenseForm.tsx Expense form · scan.tsx Receipt scanning · server.py FastAPI service
Components 19
Receipt capture
- Receipt scanning
frontend/app/scan.tsx
Expense management
- Manual expense entry
frontend/app/add.tsx - Expense details
frontend/app/expense/[id].tsx - Expense list
frontend/app/(tabs)/expenses.tsx - Expense form
frontend/src/components/ExpenseForm.tsx - Category management
frontend/app/categories.tsx - Category state
frontend/src/categories.tsx - Settings
frontend/app/settings.tsx
Projects and work orders
- Project list
frontend/app/(tabs)/projects.tsx - Project details
frontend/app/project/[id].tsx - Work order details
frontend/app/workorder/[id].tsx
Summaries and reports
- Home dashboard
frontend/app/(tabs)/index.tsx - Reports screen
frontend/app/(tabs)/reports.tsx
Backend services
- API client
frontend/src/api.ts - FastAPI service
backend/server.py - OCR.space
- MongoDB
- Receipt file storage
Other components
- User
Connections 24
- User → Receipt scanning: captures receipt
- User → Manual expense entry: enters expense
- User → Home dashboard: views activity
- Receipt scanning → API client: submits scan
- Receipt scanning → Expense form: edits details
- Manual expense entry → Expense form: collects details
- Expense details → Expense form: edits expense
- Expense form → API client: saves expense
- Expense list → API client: loads expenses
- Expense details → API client: loads and updates
- Home dashboard → API client: loads summary
- Project list → API client: loads projects
- Project details → API client: manages project
- Project details → Work order details: opens work order
- Work order details → API client: manages work order
- Reports screen → API client: requests reports
- Category management → Category state: manages categories
- Receipt scanning → Category state: uses categories
- Expense form → Category state: uses categories
- Settings → API client: configures service
- API client → FastAPI service: calls API
- FastAPI service → OCR.space: requests text extraction
- FastAPI service → MongoDB: reads and writes
- FastAPI service → Receipt file storage: stores receipt files