A React Native mobile application that uses Google's Gemini AI to analyze academic transcripts from images. The app allows users to upload photos of their academic transcripts and extracts course information, grades, GPA, and other academic details.
- 📱 Mobile-First Design: Built with React Native and Expo for cross-platform compatibility
- 📸 Image Upload: Take photos with camera or select from gallery
- 🤖 AI Analysis: Powered by Google Gemini Vision API for accurate transcript extraction
- 📊 Structured Results: Displays course information, grades, GPA, and academic summary
- 🎨 Modern UI: Beautiful gradient design with Material Design components
- 📤 Share Results: Share analysis results via native sharing
- 🔒 Privacy Focused: No data storage, all processing done via API
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI (
npm install -g @expo/cli
) - Google Gemini API key
-
Clone or navigate to the project directory:
cd TranscriptAnalyzer
-
Install dependencies:
npm install
-
Set up your Gemini API key:
- Go to Google AI Studio
- Create a new API key
- Open
src/services/geminiService.ts
- Replace
YOUR_GEMINI_API_KEY
with your actual API key
-
Start the development server:
npx expo start
-
For iOS Simulator:
npm run ios
-
For Android Emulator:
npm run android
-
For Web Browser:
npm run web
-
On Physical Device:
- Install Expo Go app from App Store/Google Play
- Scan the QR code displayed in the terminal
-
Upload Transcript Image:
- Tap "Choose from Gallery" to select an existing image
- Tap "Take Photo" to capture a new image with camera
- Ensure the transcript is clearly visible and well-lit
-
Analyze Transcript:
- Tap "Analyze Transcript" to send the image to Gemini AI
- Wait for the analysis to complete (usually 10-30 seconds)
-
View Results:
- Review extracted course information
- Check grades, GPA, and academic summary
- Share results if desired
TranscriptAnalyzer/
├── src/
│ ├── components/ # Reusable UI components
│ ├── screens/ # Main app screens
│ │ ├── HomeScreen.tsx # Main upload and analysis screen
│ │ └── ResultScreen.tsx # Results display screen
│ ├── services/ # API and utility services
│ │ ├── geminiService.ts # Gemini AI integration
│ │ └── imagePickerService.ts # Image selection logic
│ └── types/ # TypeScript type definitions
├── App.tsx # Main app component with navigation
├── app.json # Expo configuration
└── package.json # Dependencies and scripts
The app requires a Google Gemini API key to function. Follow these steps:
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the generated key
- Open
src/services/geminiService.ts
- Replace
YOUR_GEMINI_API_KEY
with your actual key
For better security, you can use environment variables:
- Create a
.env
file in the root directory - Add:
GEMINI_API_KEY=your_actual_api_key_here
- Install
react-native-dotenv
if needed - Update the service to use
process.env.GEMINI_API_KEY
The app requires the following permissions:
- Camera: To take photos of transcripts
- Photo Library: To select existing transcript images
- Internet: To communicate with Gemini API
These permissions are automatically requested when needed.
-
"Analysis Failed" Error:
- Ensure your Gemini API key is correctly set
- Check your internet connection
- Try with a clearer, better-lit image
- Verify the transcript text is readable
-
Image Upload Issues:
- Grant camera and photo library permissions
- Ensure sufficient storage space
- Try restarting the app
-
Build Errors:
- Clear npm cache:
npm cache clean --force
- Delete node_modules and reinstall:
rm -rf node_modules && npm install
- Reset Expo cache:
npx expo start --clear
- Clear npm cache:
- Use high-quality, well-lit images for better analysis
- Ensure transcript text is clearly visible and not blurry
- Close other apps to free up memory
- Use a stable internet connection for API calls
The app uses Google's Gemini Pro Vision model for image analysis. The API:
- Processes images up to 4MB
- Supports JPEG, PNG, and WebP formats
- Returns structured JSON data
- Has rate limits (check Google AI Studio for current limits)
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting section above
- Review Expo and React Native documentation
- Consult Google Gemini API documentation
- PDF upload support
- Multiple transcript comparison
- Export to various formats (PDF, CSV)
- Offline processing capabilities
- Enhanced error handling and retry logic
- User authentication and history
- Custom analysis templates