Skip to main content

Navigation

Resibibo uses Expo Router for file-based routing.

Tab Structure

The app has 5 bottom tabs defined in src/app/(app)/_layout.tsx:

TabScreenDescription
Home(app)/index.tsxDashboard with spending summary, recent transactions, budget alerts
Expenses(app)/expenses.tsxFull transaction list with type filter + FAB to add
Scan(app)/scan.tsxReceipt camera capture + gallery pick
Budget(app)/budget.tsxBudget list with progress cards + FAB to add
Settings(app)/settings.tsxTheme, language, recurring, sync, notifications, logout

Stack Screens

Screens pushed on top of the tab navigator:

RouteFileDescription
/transaction/[id]transaction/[id].tsxTransaction detail view
/transaction/addtransaction/add.tsxAdd/edit transaction form
/budget/[id]budget/[id].tsxBudget detail view
/budget/addbudget/add.tsxAdd/edit budget form
/recurringrecurring/index.tsxRecurring rules list
/recurring/[id]recurring/[id].tsxRecurring rule detail
/recurring/addrecurring/add.tsxAdd/edit recurring rule
/receipt/[id]receipt/[id].tsxReceipt review + confirm
/chatchat.tsxAI chat screen
/conflictsconflicts.tsxSync conflict resolution

Auth Flow

  • login.tsx -- Login/register screen (public)
  • onboarding.tsx -- Onboarding flow (public)
  • (app)/ -- Protected routes (require authentication)

The auth store (lib/auth/) manages token state and redirects unauthenticated users to the login screen.