{"id":13642565,"url":"https://github.com/Akylas/OSS-DocumentScanner","last_synced_at":"2025-04-20T16:32:51.412Z","repository":{"id":45680882,"uuid":"283503342","full_name":"Akylas/OSS-DocumentScanner","owner":"Akylas","description":"Android document document scanning app ","archived":false,"fork":false,"pushed_at":"2025-04-03T14:26:34.000Z","size":33333,"stargazers_count":1142,"open_issues_count":58,"forks_count":38,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T20:39:37.219Z","etag":null,"topics":["android","document","document-scan","document-scan-to-text","document-scanner","document-scanner-app","document-scanning","image-processing","opencv","pdf","scanner","tesseract","zxingcpp"],"latest_commit_sha":null,"homepage":"https://www.akylas.fr","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Akylas.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["farfromrefug"],"liberapay":"farfromrefuge","patreon":"farfromrefuge","buy_me_a_coffee":"farfromrefug","custom":["paypal.me/farfromfefug"]}},"created_at":"2020-07-29T13:14:24.000Z","updated_at":"2025-04-13T18:33:12.000Z","dependencies_parsed_at":"2023-01-20T06:45:41.372Z","dependency_job_id":"ae784952-6ca0-422e-b0aa-1a04f8456a50","html_url":"https://github.com/Akylas/OSS-DocumentScanner","commit_stats":null,"previous_names":["akylas/com.akylas.documentscanner"],"tags_count":396,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akylas%2FOSS-DocumentScanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akylas%2FOSS-DocumentScanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akylas%2FOSS-DocumentScanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akylas%2FOSS-DocumentScanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akylas","download_url":"https://codeload.github.com/Akylas/OSS-DocumentScanner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249926636,"owners_count":21346596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","document","document-scan","document-scan-to-text","document-scanner","document-scanner-app","document-scanning","image-processing","opencv","pdf","scanner","tesseract","zxingcpp"],"created_at":"2024-08-02T01:01:33.139Z","updated_at":"2025-04-20T16:32:51.405Z","avatar_url":"https://github.com/Akylas.png","language":"C++","readme":"This repository is now the home of 2 apps\n\n\u003cdiv\u003e\n\u003cimg title=\"\" src=\"fastlane/metadata/com.akylas.documentscanner/android/en-US/images/featureGraphic.png\" width=\"45%\"\u003e\n\u003cimg title=\"\" src=\"fastlane/metadata/com.akylas.cardwallet/android/en-US/images/featureGraphic.png\" width=\"45%\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](COC.md)\n[![GitHub repo stars](https://img.shields.io/github/stars/Akylas/OSS-DocumentScanner?style=flat)](https://github.com/Akylas/OSS-DocumentScanner/stargazers)\n[![GitHub License](https://img.shields.io/github/license/Akylas/OSS-DocumentScanner)](https://github.com/Akylas/OSS-DocumentScanner/blob/master/COPYING)\n[![GitHub All Releases](https://img.shields.io/github/downloads/Akylas/OSS-DocumentScanner/total.svg)](https://github.com/Akylas/OSS-DocumentScanner/releases/)\n[![GitHub release](https://img.shields.io/github/v/release/Akylas/OSS-DocumentScanner?display_name=release\u0026filter=*scanner*)](https://github.com/Akylas/OSS-DocumentScanner/releases)\n[![GitHub release](https://img.shields.io/github/v/release/Akylas/OSS-DocumentScanner?display_name=release\u0026filter=*wallet*)](https://github.com/Akylas/OSS-DocumentScanner/releases)\n\n[![Small translation badge](https://hosted.weblate.org/widgets/oss-document-scanner/-/svg-badge.svg)](https://hosted.weblate.org/engage/oss-document-scanner/?utm_source=widget)\n\u003c/div\u003e\n\n ## Installation\n\n\u003c!-- [\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\" alt=\"Get it on F-Droid\" height=\"80\"\u003e](https://f-droid.org/packages/com.machiav3lli.backup/) --\u003e\n\u003cdiv align=\"center\"\u003e\n\n| OSS Document Scanner | Oss CardWallet |\n|:--------------------:|:--------------:|\n|[\u003cimg src=\"https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png\" alt=\"Get it on IzzyOnDroid\" height=\"80\"\u003e](https://apt.izzysoft.de/packages/com.akylas.documentscanner)|[\u003cimg src=\"https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png\" alt=\"Get it on IzzyOnDroid\" height=\"80\"\u003e](https://apt.izzysoft.de/packages/com.akylas.cardwallet)|\n|[\u003cimg src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" alt=\"Get it on PlayStore\" height=\"80\"\u003e](https://play.google.com/store/apps/details?id=com.akylas.documentscanner)|[\u003cimg src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" alt=\"Get it on PlayStore\" height=\"80\"\u003e](https://play.google.com/store/apps/details?id=com.akylas.cardwallet)|\n|[\u003cimg src=\"badge_github.png\" alt=\"Get it on GitHub\" height=\"80\"\u003e](https://github.com/Akylas/OSS-DocumentScanner/releases)|[\u003cimg src=\"badge_github.png\" alt=\"Get it on GitHub\" height=\"80\"\u003e](https://github.com/Akylas/OSS-DocumentScanner/releases)|\n|[\u003cimg src=\"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83\u0026amp;releaseDate=1496188800\" alt=\"Download on the App Store\" height=\"58\"\u003e](https://apps.apple.com/us/app/oss-document-scanner/id6472918564)|[\u003cimg src=\"https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250x83\u0026amp;releaseDate=1496188800\" alt=\"Download on the App Store\" height=\"58\"\u003e](https://apps.apple.com/app/oss-cardwallet/id6504414362)|\n|[\u003cimg src=\"https://raw.githubusercontent.com/ImranR98/Obtainium/main/assets/graphics/badge_obtainium.png\" alt=\"Get it on Obtainium\" height=\"58\"\u003e](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.akylas.documentscanner%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FAkylas%2FOSS-DocumentScanner%22%2C%22author%22%3A%22Akylas%22%2C%22name%22%3A%22OSS%20Document%20Scanner%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22Document%20Scanner%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22dontSortReleasesList%5C%22%3Afalse%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22github%2F(.%2B)%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%221%5C%22%2C%5C%22versionDetection%5C%22%3Afalse%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%7D%22%2C%22overrideSource%22%3Anull%7D)|[\u003cimg src=\"https://raw.githubusercontent.com/ImranR98/Obtainium/main/assets/graphics/badge_obtainium.png\" alt=\"Get it on Obtainium\" height=\"58\"\u003e](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.akylas.cardwallet%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FAkylas%2FOSS-DocumentScanner%22%2C%22author%22%3A%22Akylas%22%2C%22name%22%3A%22OSS%20Card%20Wallet%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22Card%20Wallet%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22dontSortReleasesList%5C%22%3Afalse%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22github%2F(.%2B)%5C%22%2C%5C%22versionDetection%5C%22%3Afalse%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%7D%22%2C%22overrideSource%22%3Anull%7D)|\n\u003c/div\u003e\n\n#### AppVerifier hashes \n**OSS Document Scanner**: \n```\ncom.akylas.documentscanner\n0D:10:AA:10:E0:3A:7E:76:97:22:BE:43:88:BE:63:BD:15:7A:7B:7B:F1:96:FB:3C:EB:AB:87:37:F9:6C:A8:71\n```\n \n**OSS CardWallet**: \n```\ncom.akylas.cardwallet\n0D:10:AA:10:E0:3A:7E:76:97:22:BE:43:88:BE:63:BD:15:7A:7B:7B:F1:96:FB:3C:EB:AB:87:37:F9:6C:A8:71\n ```\n \n\u003ch2 align=\"center\"\u003eEnjoying OSS Document Scanner or OSS Card Wallet?\u003c/h2\u003e\n\u003cp align=\"center\"\u003ePlease consider making a small donation to help fund the project. Developing an application, especially one that is open source and completely free, takes a lot of time and effort.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/sponsors/farfromrefug\"\u003e:heart: Sponsor\u003c/a\u003e\n\u003c/div\u003e\n\u003chr\u003e\n\nOpen Source app to scan your documents.\n\n## Screenshots\n\n| \u003cimg src=\"fastlane/metadata/com.akylas.documentscanner/android/en-US/images/phoneScreenshots/1_en-US.png\" width=30%\u003e | \u003cimg src=\"fastlane/metadata/com.akylas.documentscanner/android/en-US/images/phoneScreenshots/2_en-US.png\" width=30%\u003e | \u003cimg src=\"fastlane/metadata/com.akylas.documentscanner/android/en-US/images/phoneScreenshots/3_en-US.png\" width=30%\u003e |\n\n| \u003cimg src=\"fastlane/metadata/com.akylas.cardwallet/android/en-US/images/phoneScreenshots/2_en-US.png\" width=30%\u003e | \u003cimg src=\"fastlane/metadata/com.akylas.cardwallet/android/en-US/images/phoneScreenshots/5_en-US.png\" width=30%\u003e | \u003cimg src=\"fastlane/metadata/com.akylas.cardwallet/android/en-US/images/phoneScreenshots/3_en-US.png\" width=30%\u003e |\n\n## Having issues, suggestions and feedback?\n\nYou can,\n- [Create an issue here](https://github.com/Akylas/OSS-DocumentScanner/issues)\n\n## Contributors\n\nThanks to our contributors:\n* [Enrico Dell'Oste](https://www.smartpixel.it/)\n\n## Languages: [\u003cimg align=\"right\" src=\"https://hosted.weblate.org/widgets/oss-document-scanner/-/287x66-white.png\" alt=\"Übersetzungsstatus\" /\u003e](https://hosted.weblate.org/engage/oss-document-scanner/?utm_source=widget)\n\n[\u003cimg src=\"https://hosted.weblate.org/widgets/oss-document-scanner/-/multi-auto.svg\" alt=\"Übersetzungsstatus\" /\u003e](https://hosted.weblate.org/engage/oss-document-scanner/)\n\nThe Translations are hosted by [Weblate.org](https://hosted.weblate.org/engage/oss-document-scanner/).\n\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://raw.githubusercontent.com/farfromrefug/sponsorkit/main/sponsors.svg\"\u003e\n\t\u003cimg src='https://raw.githubusercontent.com/farfromrefug/sponsorkit/main/sponsors.svg'/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nFeature Graphic generated with [hotpot.ai](https://hotpot.ai/design/google-play-feature-graphic)\n\n## Building Setup\n\nThis repo can be used to build 2 different apps: `OSS DocumentScanner` and `OSS CardWallet`\n\nThose apps are using [Nativescript](https://github.com/NativeScript/NativeScript) which is a cross platform framework to build apps for iOS/Android\n\n### Setup / Environment\n\nThis project uses a few environment variables. While most are for publishing and thus not necessary for most, some are used to decide which app to build: \n* `APP_ID`: `com.akylas.documentscanner` or `com.akylas.cardwallet`\n* `APP_BUILD_PATH`: `build/documentscanner` or `build/cardwallet`\n* `APP_RESOURCES`: `App_Resources/documentscanner` or `App_Resources/cardwallet`\n\nYou can either define them yourself. If you are using vscode the `vscode/settings.json` of this repo defines different custom shells which will try to source `.env.documentscanner` and `.env.cardwallet`. To do this it use the plugin `dotenv` from omzsh [here](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dotenv)\nIf those variables are not define the project will default to variables for `OSS DocumentScanner`\n\n### Nativescript\n\nFirst [setup Nativescript](https://docs.nativescript.org/setup/linux)\n\nThis project is optimized to be built with [Akylas Fork](https://github.com/Akylas/NativeScript). Though it would work with main it is best to use this fork. The `package.json` defines a resolution to `../NativeScript/dist/packages/core` so clone the fork and build it using `npm run setup:yarn \u0026\u0026 npm run ui-mobile-base:build \u0026\u0026 npm run core:build`\n\nAnother change is that this project uses new features of the Nativescript [cli](https://github.com/farfromrefug/nativescript-cli) which were not released yet.\nSo for now you need to clone [it](https://github.com/farfromrefug/nativescript-cli), build with `npm run setup` then use it with `PATH_TO_CLI_FOLDER/bin/ns`\n\n### dotenv\n\nThe app uses `.env` file to set up needed environment variables. `.env` is not commited as it contains sensitive data\nSimply create a `.env` file with:\n```\nsource .env.ci\n```\n\nThen \"source\" the file in the terminal so that variable are exported and available to nativescript cli.\nI use dotenv plugin for zsh which automatically loads the `.env` file\n\n### 3rd parties\n\nThis app also uses opencv and tesseract. I did not include the libraries in git because there are huge and would make the github repo too big.\nThere are 2 ways to install them:\n* download from [here](https://github.com/Akylas/OSS-DocumentScanner/releases/tag/dev_resources) and uncompress them at the root\n* build them yourself:\n\n#### OpenCV\n\n* **Android**:\nYou can download Opencv 4.8.0 for android [here](https://github.com/nihui/opencv-mobile/releases/latest/download/opencv-mobile-4.8.1-apple.zip).\nThen place the necessary libs/includes in the `opencv/android` at the root of this repo like shown here:\n![opencv directory structure](images/opencv_structure.png)\n\n* **iOS** :\nYou can download Opencv 4.8.0 for iOS [here](https://github.com/opencv/opencv/releases/download/4.8.0/opencv-4.8.0-ios-framework.zip).\nThen place the `opencv2.xcframework` in the `opencv/ios` at the root of this repo\n\nThis should be enough. Android and iOS build will use it using symlinks\n\n#### Tesseract\nIt is a bit trickier for Tesseract as we need to compile it \n\n* **Android**:\n    - clone [https://github.com/Akylas/Tesseract4Android](https://github.com/Akylas/Tesseract4Android)\n    - build with `./gradlew assembleRelease`\n    - search for the built static libs (search for `libtesseract.a`) in `tesseract4android/build/intermediates/cxx/*/obj`\n    - copy the static libs and the includes(in `tesseract4android/src/main/cpp/tesseract/src/include`) in the `tesseract/android` at the root of this repo like shown here:\n![opencv directory structure](images/tesseract_structure.png)\n\n* **iOS**:\n    - clone [https://github.com/Akylas/TesseractBuild](https://github.com/Akylas/TesseractBuild)\n    - build with `./Scripts/Build_All.sh`\n    - copy everything from `Root` to the `tesseract/ios` at the root of this repo\n\n### Yarn\n\nYou need to use yarn with this project as it uses the `portal:` protocol for some dependencies.\nNote that the project has some `yarn link` for easy local dev for me. The best is for you to remove the `resolutions` part of the `package.json`\n\n### Building\n\nNow that all is setup and that you prepared the 3rd party libraries you can actually build and run the app:\n\n* `yarn`\n* `ns run android --no-hmr --env.devlog` (replace by `ios` for iOS...)\n\nThis should run the app on the first discovered device or emulator.\n","funding_links":["https://github.com/sponsors/farfromrefug","https://liberapay.com/farfromrefuge","https://patreon.com/farfromrefuge","https://buymeacoffee.com/farfromrefug","paypal.me/farfromfefug"],"categories":["Productivity","🧰 Power Tools \u0026 Utilities","C++","🧩 Miscellaneous"],"sub_categories":["Other","🔬 Scanners"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkylas%2FOSS-DocumentScanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAkylas%2FOSS-DocumentScanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAkylas%2FOSS-DocumentScanner/lists"}