Home
Softono

FairScan

Open source Kotlin
615
Stars
43
Forks
33
Issues
5
Watchers
3 months
Last Commit

 About FairScan

An Android app to scan your documents — simple and respectful

Platforms

Web Self-hosted Android

Languages

Kotlin

Need Help Installing FairScan?

We provide expert installation service for this software. Our team will install, configure, and secure FairScan on your server. plans start at just $30.

FairScan icon

FairScan

An Android app to scan your documents —
simple and respectful.

License

Get it on: F-Droid · Google Play · GitHub


FairScan is an Android app to scan documents quickly, easily and privately.

It's designed to be simple: users get a clean, shareable PDF in seconds, with no manual adjustments.
And respectful: open source, minimal permissions, no tracking, no ads.


Contributing

Contributions are welcome, but please read the guidelines first: CONTRIBUTING.md


Screenshots

Scan Preview Save & Share

Features

  • Clear, distraction-free interface
  • Easy flow: scan, review if needed, save or share
  • Automatic document detection using a custom segmentation model
  • Automatic perspective correction
  • Automatic image enhancement
  • Fast PDF generation with no manual adjustments
  • Fully offline – the app has no internet permission
  • Minimal permissions
  • Open source, GPLv3

What FairScan is not

FairScan is not intended to:

  • provide fine-grained manual control over document processing
  • replicate all features found in other scanning apps
  • optimize for highly specific use cases at the expense of simplicity

Compatibility

FairScan works on any device that:

  • runs Android 8.0+
  • has a camera

Experimental: Scan to PDF via intent

FairScan can be invoked by other Android applications to perform a document scan and return a generated PDF.

This feature is experimental and intended for developers who want to rely on FairScan as a simple, privacy-respecting scanning tool. The intent contract and behavior may change between versions, and backward compatibility is not guaranteed at this stage.

Intent action: org.fairscan.app.action.SCAN_TO_PDF

This is an implicit intent that launches FairScan in a dedicated external mode.

When started via this intent:

  • FairScan opens directly in scan mode
  • the user scans one or more pages
  • FairScan generates a single PDF
  • the resulting PDF is returned to the calling application as a URI with a limited lifetime
  • the calling application should immediately copy the content of the URI as FairScan deletes it later

See an example app: fairscan-intent-sample


Technical details

FairScan uses:


The segmentation model

FairScan uses a custom-trained image segmentation model to detect documents:
https://github.com/pynicolas/fairscan-segmentation-model

It's based on a fully public dataset that is available here:
https://github.com/pynicolas/fairscan-dataset

The build system automatically downloads the model using
download-tflite.gradle.kts.

Related blog posts:


Build

To build an APK:

./gradlew clean check assembleRelease

To build an Android App Bundle:

./gradlew clean check :app:bundleRelease

License

This project is licensed under the GNU GPLv3. See LICENSE for details.