A personal finance app built with React Native and Expo.
- 📱 Phone Login with OTP - Simple phone number authentication with OTP verification
- 👤 Profile Setup - Collect user information (name, email, user type, income, risk tolerance)
- 📊 Dashboard - View profile information and financial summary
- 💾 Persistent Storage - User data stored locally with AsyncStorage
- React Native with Expo
- TypeScript for type safety
- Zustand for state management
- React Navigation for routing
- AsyncStorage for local data persistence
- Node.js (v18 or later recommended)
- npm or yarn
- Expo Go app on your phone (for testing)
# Install dependencies
npm install
# Start the development server
npx expo startAfter starting the dev server:
- iOS Simulator: Press
iin the terminal - Android Emulator: Press
ain the terminal - Physical Device: Scan the QR code with Expo Go app
├── App.tsx # Main app entry point
├── src/
│ ├── navigation/
│ │ └── AppNavigator.tsx # Navigation configuration
│ ├── screens/
│ │ ├── PhoneLoginScreen.tsx
│ │ ├── OtpVerificationScreen.tsx
│ │ ├── ProfileSetupScreen.tsx
│ │ └── DashboardScreen.tsx
│ ├── services/
│ │ └── authService.ts # Auth logic & storage
│ ├── store/
│ │ └── authStore.ts # Zustand state management
│ ├── theme/
│ │ └── colors.ts # App color palette
│ └── types/
│ └── index.ts # TypeScript definitions
├── assets/ # App icons and images
├── app.json # Expo configuration
├── package.json
└── tsconfig.json
During development, the OTP is logged to the console. When you send an OTP:
- Check your terminal/console output
- Look for "OTP GENERATED FOR TESTING"
- Use the displayed 6-digit code
# Build for Android
npx expo build:android
# Build for iOS
npx expo build:ios
# Or use EAS Build (recommended)
npx eas build --platform android
npx eas build --platform ios- Firebase Authentication (real SMS OTP)
- Firestore for cloud storage
- Financial tracking features
- Budgeting tools
- Investment insights