Skip to content

⛔️ ARCHIVED: An invoice processing app for a storage facility

License

Notifications You must be signed in to change notification settings

Twinsen81/Invoiceman

Repository files navigation

License Apache 2.0 minSdkVersion 23 compileSdkVersion 28 CircleCI

Icon

INVOICEMAN

A pet project for processing invoices at a storage facility (warehouse). The app is not finished yet. The backend doesn't exist yet, so it is simulated within the app.

Sample screenshots

The Workflow

The app is designed to be used in the following workflow:

  1. An employee at the office receives an invoice from a supplier;
  2. The employee enters data from the invoice into the backend's DB using a GUI app or a web frontend;
  3. The supplier ships products listed in the invoice to the company's warehouse;
  4. An employee at the warehouse finds the corresponding invoice in the app and accepts it for processing;
  5. He or she scans or enters manually serial numbers (possibly, some other info) of the products using the app, then submits the collected data to the backend;
  6. An employee at the office reviews the data and confirms the successful receipt of the products;
  7. The data is kept on the backend for future reference (e.g. warranty service requests).

The Architecture

The app is built using the clean architecture approach. The following diagram depicts the objects and relationships used in this implementation of the clean architecture:

Clean architecture implementation

The UI layer is implemented using the MVI pattern. Although there're many existing libraries, I've decided to implement it myself to get better understanding on how it works. The result is far from ideal but it works as intended. The implementation was inspired by:


The gist of the implementation is depicted on the following diagram:

MVI implementation

Credits

  • Frameworks, libraries & tools: Koin, Moshi, Retrofit, Okhttp, RxJava2 + RxKotlin, RxBinding, FastAdapter, Glide, zxing-android-embedded ,leinardi.android:speed-dial, Timber, LeakCanary, Mockito, RESTMock, detekt
  • Free logo by LogoMakr.com
  • Diagrams by Lucidchart.com
  • Screenshots by theapplaunchpad.com

License

Copyright 2019 Evgeniy Plokhov

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

⛔️ ARCHIVED: An invoice processing app for a storage facility

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages