Skip to content

Files

Latest commit

 

History

History
101 lines (73 loc) · 2.61 KB

README.md

File metadata and controls

101 lines (73 loc) · 2.61 KB

📄 Scan

A modern, web-based document scanner built with React. Scan documents using your device's camera or upload existing images, process them for clarity, and convert them to PDF format.

✨ Features

  • 📱 Mobile-optimized interface
  • 📸 Capture documents using device camera
  • 📤 Upload existing images
  • ✂️ Smart document cropping
  • 🔄 Portrait and landscape orientation support
  • 📑 Multi-page document support
  • 🔍 Image enhancement and processing
  • 📋 Page reordering capabilities
  • 🔎 Full-screen preview mode
  • 📁 Export to PDF

🚀 Getting Started

Prerequisites

  • Node.js 18 or higher
  • npm or yarn

Installation

  1. Clone the repository:
git clone https://github.com/addyosmani/scan.git
cd scan
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev

🛠️ Tech Stack

  • React - UI framework
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Vite - Build tool
  • react-webcam - Camera access
  • react-easy-crop - Image cropping
  • jsPDF - PDF generation
  • Lucide React - Icons

📱 Usage

  1. Capture or Upload

    • Click "Take Photo" to use your device's camera
    • Click "Upload Image" to select an existing image
  2. Crop and Adjust

    • Use the cropping tool to select the document area
    • Toggle between portrait and landscape orientation
    • Confirm or cancel the crop
  3. Manage Pages

    • Add multiple pages to create a multi-page document
    • Reorder pages using the arrow buttons
    • Preview pages in full screen
    • Delete unwanted pages
  4. Export

    • Click "Download PDF" to generate and download your document
    • Use "Reset" to start over

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

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

🙏 Acknowledgments

📧 Contact

Addy Osmani - @addyosmani

Project Link: https://github.com/addyosmani/scan