[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
## About The Project
With this app you can conveniently add, manage or simply find documents stored in your paperless server without any comproimises. This project started as a small fun side project to learn more about the Flutter framework and because existing solutions didn't fulfill my needs, but it has grown much faster with far more features than I originally anticipated.
### :rocket: Features
:heavy_check_mark: **View** your documents at a glance, in a compact list or a more detailed grid view
:heavy_check_mark: **Add**, **delete** or **edit** your documents
:heavy_check_mark: **Share**, **download** and **preview** PDF files
:heavy_check_mark: **Manage** and assign correspondents, document types, tags and storage paths
:heavy_check_mark: **Scan** and upload documents to paperless with preset correspondent, document type, tags and creation date
:heavy_check_mark: **Upload existing documents** from other apps via Paperless Mobile
:heavy_check_mark: See all new documents in a dedicated **inbox**
:heavy_check_mark: **Search** for documents using a wide range of filter criteria
:heavy_check_mark: **Secure** your data with **biometric authentication** across sessions
:heavy_check_mark: Support for **TLS mutual authentication** (client certificates)
:heavy_check_mark: **Modern, intuitive UI** built according to the Material Design 3 specification
:heavy_check_mark: Available in english and german language (more to come!)
### Built With
[![Flutter][Flutter]][Flutter-url]
## Getting Started
To get a local copy up and running follow these simple steps.
### Prerequisites
* Install the Flutter SDK (https://docs.flutter.dev/get-started/install)
* Install an IDE of your choice (e.g. VSCode with the Dart/Flutter extensions)
### Install dependencies and generate files
1. Clone the repo
```sh
git clone https://github.com/astubenbord/paperless-mobile.git
```
2. Install the dependencies
```sh
flutter pub get
```
3. Build generated files (e.g. for injectable library)
```sh
flutter packages pub run build_runner build --delete-conflicting-outputs
```
4. Generate the localization files
```sh
flutter pub run intl_utils:generate
```
### Build release version
In order to build a release version, you have to...
1. Exchange the signing configuration in android/app/build.gradle from
```gradle
buildTypes {
release {
signingConfig signingConfigs.release
}
}
```
to
```gradle
buildTypes {
release {
signingConfig signingConfigs.debug
}
}
```
2. Build the app with release profile (here for android):
```sh
flutter build apk --split-per-abi
```
(the --release flag is implicit for the build command)
3. Install the app to your device
```sh
flutter install
```
## Roadmap
- [x] Add download functionality (implemented, but flutter cannot download to useful directories except app directory)
- [x] Add document share support
- [x] Improvements to UX (e.g. form fields show clear button while empty)
- [ ] Add more languages
- [ ] Support for IOS
- [ ] Automatic releases and CI/CD with fastlane
- [ ] Templates for recurring scans (e.g. monthly payrolls with same title, dates at end of month, fixed correspondent and document type)
- [ ] Custom document scanner optimized for common white A4 documents (currently using edge_detection, which is okay but not optimal for this use case)
- [ ] Support multiple instances (low prio)
See the [open issues](https://github.com/astubenbord/paperless-mobile/issues) for a full list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
All bug reports or feature requests are welcome, even if you can't contribute code!
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
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
Distributed under the GNU General Public License v3.0. See `LICENSE.txt` for more information.
## Donations
I do this in my free time, so if you like the project, consider buying me a coffee! Any donation is much appreciated :)
[](https://www.buymeacoffee.com/astubenbord)
## Screenshots
Here are some impressions from the app!
#### Login Page
#### Documents Overview (List)
#### Documents Overview (Grid)
#### Document Filter/Search (More filters below!)
#### Document Details
#### Edit Document

#### Scan

#### Upload

[contributors-shield]: https://img.shields.io/github/contributors/astubenbord/paperless-mobile.svg?style=for-the-badge
[contributors-url]: https://github.com/astubenbord/paperless-mobile/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/astubenbord/paperless-mobile.svg?style=for-the-badge
[forks-url]: https://github.com/astubenbord/paperless-mobile/network/members
[stars-shield]: https://img.shields.io/github/stars/astubenbord/paperless-mobile.svg?style=for-the-badge
[stars-url]: https://github.com/astubenbord/paperless-mobile/stargazers
[issues-shield]: https://img.shields.io/github/issues/astubenbord/paperless-mobile.svg?style=for-the-badge
[issues-url]: https://github.com/astubenbord/paperless-mobile/issues
[license-shield]: https://img.shields.io/github/license/astubenbord/paperless-mobile.svg?style=for-the-badge
[license-url]: https://github.com/astubenbord/paperless-mobile/blob/main/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[product-screenshot]: images/screenshot.png
[Flutter]: https://img.shields.io/badge/Flutter-02569B?style=for-the-badge&logo=flutter&logoColor=white
[Flutter-url]: https://flutter.dev
## Contributors
Made with [contrib.rocks](https://contrib.rocks).