A professional document scanner app built with React Native and Expo. Goose Scan provides real-time document detection, automatic capture, and advanced image processing capabilities to digitize your physical documents with ease.
- Real-time document detection with edge detection algorithms
- Auto-capture functionality when document is stable and properly positioned
- Manual capture mode for precise control
- Multi-page document support for scanning complete documents
- Zoom controls with 1x, 2x buttons and pinch-to-zoom up to 4x
- Perspective correction to straighten skewed documents
- Image enhancement with automatic brightness and contrast adjustment
- High-quality output optimized for text readability
- Multiple format support (JPEG, PDF)
- Organized document library with list and grid view options
- Document categorization by type (PDF, Photos)
- Password protection for sensitive documents
- Biometric authentication support for secure access
- Document sharing capabilities
- Rename and delete functionality
- Clean, modern design with dark theme
- Intuitive navigation with tab-based interface
- Real-time visual feedback during scanning
- Responsive layout optimized for mobile devices
- React Native with Expo framework
- TypeScript for type safety
- Expo Camera for camera functionality
- Expo Image Manipulator for image processing
- AsyncStorage for local data persistence
- Expo Local Authentication for biometric security
- React Navigation for app navigation
- Node.js (version 16 or higher)
- npm or yarn package manager
- Expo CLI
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
- Clone the repository:
git clone https://github.com/AbhiDevkota/GooseScan.git
cd GooseScan- Install dependencies:
npm install- Start the development server:
npm start- Run on your preferred platform:
# For Android
npm run android
# For iOS
npm run ios
# For web
npm run web- Open the app and tap "New Scan"
- Position your document within the camera frame
- The app will automatically detect document edges
- In AUTO mode, the app captures when the document is stable
- In MANUAL mode, tap the capture button to take a photo
- Continue scanning to add multiple pages
- Tap "Done" when finished
- View all scanned documents on the home screen
- Filter by document type (All, PDF, Photos)
- Switch between list and grid view
- Tap the menu button (three dots) for document options:
- Rename document
- Share document
- Add/change password protection
- Delete document
- Enable password protection for sensitive documents
- Use biometric authentication (fingerprint/face recognition) when available
- Documents are stored locally on your device
app/
├── (tabs)/ # Tab navigation screens
├── camera.tsx # Camera and scanning functionality
├── document-viewer.tsx # Document viewing screen
├── save-document.tsx # Document saving and organization
components/ # Reusable UI components
utils/
├── documentScanner.ts # Document detection utilities
├── OpenCVProcessor.ts # Image processing functions
└── DocumentScannerModule.ts # Scanner module simulation
The app uses Expo configuration in app.json. Key settings include:
- App name and version
- Platform-specific configurations
- Permissions for camera and storage access
- Build settings for Android and iOS
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
For support, bug reports, or feature requests, please open an issue on the GitHub repository.
- Inspired by react-native-document-scanner
- Built with Expo and React Native ecosystem
- Uses modern mobile development best practices