Skip to content

AbhiDevkota/GooseScan

Repository files navigation

Goose Scan

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.

Features

Document Scanning

  • 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

Image Processing

  • 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)

Document Management

  • 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

User Interface

  • Clean, modern design with dark theme
  • Intuitive navigation with tab-based interface
  • Real-time visual feedback during scanning
  • Responsive layout optimized for mobile devices

Technology Stack

  • 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

Installation

Prerequisites

  • Node.js (version 16 or higher)
  • npm or yarn package manager
  • Expo CLI
  • Android Studio (for Android development)
  • Xcode (for iOS development, macOS only)

Setup

  1. Clone the repository:
git clone https://github.com/AbhiDevkota/GooseScan.git
cd GooseScan
  1. Install dependencies:
npm install
  1. Start the development server:
npm start
  1. Run on your preferred platform:
# For Android
npm run android

# For iOS
npm run ios

# For web
npm run web

Usage

Scanning Documents

  1. Open the app and tap "New Scan"
  2. Position your document within the camera frame
  3. The app will automatically detect document edges
  4. In AUTO mode, the app captures when the document is stable
  5. In MANUAL mode, tap the capture button to take a photo
  6. Continue scanning to add multiple pages
  7. Tap "Done" when finished

Managing Documents

  1. View all scanned documents on the home screen
  2. Filter by document type (All, PDF, Photos)
  3. Switch between list and grid view
  4. Tap the menu button (three dots) for document options:
    • Rename document
    • Share document
    • Add/change password protection
    • Delete document

Security Features

  • Enable password protection for sensitive documents
  • Use biometric authentication (fingerprint/face recognition) when available
  • Documents are stored locally on your device

Project Structure

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

Configuration

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

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Create a Pull Request

License

This project is licensed under the MIT License. See the LICENSE file for details.

Support

For support, bug reports, or feature requests, please open an issue on the GitHub repository.

Acknowledgments

  • Inspired by react-native-document-scanner
  • Built with Expo and React Native ecosystem
  • Uses modern mobile development best practices

About

A andriod app made in react-native + expo to replicate the 'Scan Document' Feature of the ios device with the interactive UI and design.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors