RTTC is a mobile application developed with React Native (Expo) designed to bridge communication gaps between different languages. Featuring advanced voice, text, and image (OCR) translation capabilities, the app provides a seamless tool for overcoming language barriers.
The application is organized into key modules:
- 🗣️ Voice & Text Translation: Instant translation with speech recognition support (
expo-speech-recognition) and text-to-speech synthesis (expo-speech). - 👥 Bilingual Mode: An optimized interface for face-to-face conversations between two people speaking different languages.
- 📷 OCR (Image Translation): Use the camera to extract and translate text from images, documents, or signs.
- 💬 Quick Phrases: Fast access to common phrases for travel or emergency situations.
- 📜 Smart History: All translation and OCR history is saved locally or in the cloud (Supabase) for future reference.
- 👤 Account Management: User authentication and profile management system.
- Framework: React Native with Expo (SDK 54)
- Navigation: Expo Router
- Backend / Database: Supabase
- Local Storage: AsyncStorage
- UI Components: React Native Paper, React Native Vector Icons
- Testing: Jest & React Native Testing Library
- Node.js installed.
- A physical device (Android/iOS) with the Expo Go app or a configured emulator.
-
Clone the repository
git clone [https://github.com/VascoMaoglo/rttc.git](https://github.com/your-username/rttc.git) cd rttc -
Install dependencies
npm install
-
Configure Environment Variables Create a
.envfile in the root directory with your Supabase keys (example):EXPO_PUBLIC_SUPABASE_URL=your_supabase_url EXPO_PUBLIC_SUPABASE_ANON_KEY=your_anon_key EXPO_PUBLIC_RAPIDAPI_KEY=your_rapidapi_key
-
Run the application
npm start
- Press
ato open on Android. - Press
ito open on iOS. - Press
wto open on Web.
- Press
The project uses Jest for unit and integration testing.
# Run all tests
npm test
# Run tests with coverage report
npm test -- --coverage