by Abdullah31

Full-stack React Native expense tracker with Expo Router, TypeScript, and localStorage persistence. Features transaction management, budget tracking, spending analytics, and a tabbed interface—runs on web, iOS, and Android via Expo. Includes Jest test suite, ESLint, and type checking out of the box.
A personal finance tracker mobile app built with Expo, React Native, and TypeScript. Track transactions, manage budgets, view spending analytics, and configure your account with a clean, emoji-based mobile-first UI. Supports web export via Expo and live preview on iOS/Android devices via Expo Go.
localStorage (browser) or AsyncStorage (native-ready)localStorage (web) / AsyncStorage (native-ready)npx)# Install dependencies
npm install
# Start the Expo development server
npm start
Then press:
w to open in your web browser| Command | Description |
|---|---|
npm start | Start Expo dev server (interactive mode) |
npm run build | Export for web → outputs to dist/ |
npm test | Run Jest test suite |
npm run test:coverage | Run tests with coverage report |
npm run lint | Run ESLint on all files |
npm run lint:fix | Auto-fix ESLint issues |
npm run typecheck | Run TypeScript type-check (no emit) |
npm run web | Start web-only dev server |
npm run ios | Start iOS simulator |
npm run android | Start Android emulator |
Web (Browser)
npm run build
npx serve dist
iOS / Android (via Expo Go)
npm start
# Scan QR code with Expo Go app
iOS Simulator / Android Emulator
npx expo run:ios
npx expo run:android
├── app/ # Expo Router file-based routes
│ ├── (tabs)/ # Bottom tab navigation screens
│ │ ├── index.tsx # Dashboard
│ │ ├── transactions.tsx # Transactions list
│ │ ├── analytics.tsx # Analytics & charts
│ │ ├── settings.tsx # Settings
│ │ └── _layout.tsx # Tab bar layout
│ ├── login.tsx # Login screen
│ ├── signup.tsx # Signup screen
│ ├── add-transaction.tsx # Add transaction form
│ ├── transaction-detail.tsx # Transaction detail view
│ ├── index.tsx # Splash/entry screen
│ └── _layout.tsx # Root layout with auth init
├── src/
│ ├── components/ # Reusable UI components
│ ├── screens/ # Screen-level components
│ ├── storage/ # localStorage persistence layer
│ ├── context/ # React Context (ThemeContext)
│ ├── charts/ # Chart/analytics components
│ ├── constants/ # Theme colors & constants
│ └── __tests__/ # Storage & adapter tests
├── lib/
│ ├── formatCurrency.ts # Currency formatting utilities
│ └── storageAdapter.ts # localStorage abstraction
├── __tests__/ # Root-level Jest tests
│ ├── smoke.test.ts
│ └── formatCurrency.test.ts
├── jest.config.js
├── jest.setup.js
├── babel.config.js
├── tsconfig.json
├── eslint.config.js
└── app.json
npm test
The test suite uses Jest with the jest-expo preset. Coverage includes:
formatCurrency, parseCurrency, calcRemaining)Run with coverage report:
npm test -- --coverage
This app currently uses localStorage (browser API) for data persistence. On native iOS/Android devices (via Expo Go or bare build), localStorage is not available — data will not persist between sessions.
To support native persistence, the storage layer can be updated to use AsyncStorage from @react-native-async-storage/async-storage (already included in dependencies). The storageAdapter module (src/lib/storageAdapter.ts) is the single integration point where a Platform.OS check can add AsyncStorage fallback.
localStorage (browser). No backend or cloud sync.✅ TypeScript: Zero type errors (verified with tsc --noEmit)
✅ Web Export: Successfully exports to dist/ with all routes
✅ Tests: Jest suite with smoke tests and utility coverage
✅ Linting: ESLint passes with no warnings
✅ npm audit: No medium/high vulnerabilities at audit level
Tetrees License
Spin up an isolated sandbox and run it server-side — no local setup.
The sandbox audition completed and the detected runnable path passed.
This React, React Native mobile app completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately. Final verified scores after isolated runtime evidence: overall 8.3 and security 9.
Deterministic AVCP artifact review
Pipeline avcp-2026-08-04.1 · SHA-256 24da4b17842b2b03…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
Reviewed Aug 7, 2026
The full install guide and integration prompts unlock after purchase.
Push this product straight into your AI IDE, web builder or cloud IDE.
Connect Tetrees to a compatible AI IDE, list products you own, and request the verified ZIP without exposing seller upload controls.
No reviews yet.
Sign in to join the discussion
Loading discussion…
Mobile App Templates & App Source Code
$3