A React Native mobile application for recording, transcribing, and managing conversations with an intuitive user interface and real-time audio visualization.
- Real-time audio recording with waveform visualization
- Secure user authentication
- Conversation management and playback
- Interactive transcription viewer
- Dark mode support
- Gesture-based interactions
- Pull-to-refresh functionality
- Framework: React Native with Expo
- Navigation: Expo Router
- Authentication: Clerk
- Animations: Lottie
- Styling: React Native StyleSheet
- Gestures: React Native Gesture Handler
- Audio: Expo AV
- Node.js (v16+)
- Expo CLI
- iOS Simulator or Android Emulator
- npm or yarn
- Clone the repository
git clone <repository-url>
cd frontend
- Install dependencies
npm install
- Set up environment variables
# Create a .env file with:
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
npx expo start
Then press:
i
for iOS simulatora
for Android emulator- Scan QR code with Expo Go app for physical device
- Authentication
- Sign In
- Sign Up
- Email Verification
- Main
- Recording Screen
- Recordings List
- Recording Details
frontend/
├── app/
│ ├── (auth)/ # Authentication screens
│ ├── (home)/ # Main app screens
│ ├── components/ # Reusable components
│ │ ├── audio/ # Audio-related components
│ │ └── ...
│ └── config.ts # App configuration
├── assets/
│ ├── animations/ # Lottie animation files
│ ├── fonts/ # Custom fonts
│ └── images/ # App images
└── types/ # TypeScript definitions
- AudioRecorder: Records audio with real-time waveform visualization
- AudioWaveform: Displays audio waveform and metrics
- RecordedFiles: Manages and displays recorded conversations
- RecordingDetails: Shows detailed view of recordings with playback
The app uses Clerk for authentication with features including:
- Email/password authentication
- Session management
- Protected routes
- Secure token handling
The app uses Expo Router for file-based routing:
/(auth)/*
- Authentication routes/(home)/*
- Main app routesrecording-details
- Dynamic route for recording details
- TypeScript for type safety
- Component composition for reusability
- Consistent styling patterns
- Error handling and loading states
- Responsive design
- Performance optimization
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the ISC License.