A modern fintech demo mobile application built with Expo and React Native, showcasing a production-grade banking experience that mimics the web dashboard of venn.ca.
- Multi-Currency Account Management - Support for multiple currencies and account types
- Transaction Tracking - Comprehensive transaction history with detailed views
- Card Management - Virtual and physical card management with controls
- Money Transfers - Send money between accounts and to beneficiaries
- Invoice Handling - Create, view, and manage invoices
- Real-time Balance Updates - Live balance tracking across all accounts
- Cross-Platform - Runs on iOS, Android, and Web
- Dark/Light Theme - Automatic theme switching based on system preferences
- Haptic Feedback - Tactile feedback for all interactions
- Smooth Animations - Fluid UI transitions and micro-interactions
- Responsive Design - Optimized for all screen sizes
- Framework: Expo SDK 54 with React Native 0.81.5
- Language: TypeScript
- Navigation: Expo Router v6 (file-based routing)
- State Management: React Context + React Query
- Styling: React Native StyleSheet with DM Sans typography
- Animations: React Native Reanimated
- Authentication: AsyncStorage-based auth flow
- Server: Express 5
- Database: PostgreSQL with Drizzle ORM
- Storage: In-memory storage (development ready for production)
- API: RESTful API with CORS support
@tanstack/react-query- Server state managementreact-native-reanimated- Animationsexpo-haptics- Haptic feedbackexpo-blur- Visual effects@react-native-async-storage/async-storage- Local persistence
app/
├── (auth)/ # Authentication screens
│ ├── _layout.tsx
│ ├── login.tsx
│ └── signup.tsx
├── (tabs)/ # Main app navigation
│ ├── _layout.tsx
│ ├── accounts.tsx # Account overview
│ ├── cards.tsx # Card management
│ ├── index.tsx # Home dashboard
│ ├── transfers.tsx # Money transfers
│ └── more.tsx # Additional features
├── _layout.tsx # Root layout with providers
├── account-detail.tsx
├── transaction-detail.tsx
├── invoice-detail.tsx
├── send-money.tsx
└── +not-found.tsx
- Node.js 18+
- npm or yarn
- Expo CLI (
npm install -g @expo/cli) - PostgreSQL (optional, for full backend functionality)
-
Clone the repository
git clone <repository-url> cd venn-demo
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Start the development server
npm start
-
Run on your preferred platform
# iOS npm run ios # Android npm run android # Web npm run web
- Uses AsyncStorage for session persistence
- Auth guard in root layout redirects unauthenticated users
- Mock authentication (any credentials work for demo)
- Ready for integration with real auth providers
- Mock Data: All financial data currently uses mock data from
lib/mock-data.ts - Backend Ready: Express server with Drizzle ORM configured
- Type Safety: Shared TypeScript schemas in
shared/schema.ts
- File-based routing with Expo Router
- Tab navigation for main app sections
- Modal presentations for detail screens
- Typed routes for compile-time safety
- Dark Theme: Primary background
#0A0E17 - Light Theme: Primary background
#F5F7FA - Comprehensive color system in
constants/colors.ts
- Font Family: DM Sans
- Weights: 400, 500, 600, 700
- Google Fonts integration
- ErrorBoundary: Global error handling
- KeyboardAwareScrollViewCompat: Keyboard-safe scrolling
- CurrencyModal: Currency selection interface
npm run expo:start:static:buildnpm run expo:static:buildnpm run lint
npm run lint:fixnpm start- Start Expo development servernpm run lint- Run ESLintnpm run lint:fix- Fix ESLint issuesnpm run expo:start:static:build- Static build for developmentnpm run expo:static:build- Production static build
- TypeScript for type safety
- ESLint for code consistency
- React Compiler for optimizations
- Patch-package for dependency modifications
- iOS: iPhone and iPad (tablet support disabled)
- Android: All Android devices with adaptive icons
- Web: Progressive Web App support
This project is private and proprietary.
This is a demo application. For production use, integrate with:
- Real authentication providers
- Production banking APIs
- Secure backend infrastructure
- Proper data validation and security measures
For questions about this demo application, please refer to the project documentation or contact the development team.
Note: This application uses mock data for demonstration purposes. Do not use with real financial information.