Inspiration

Behind the idea of ​​this project is a discussion I had with a friend who was struggling a lot with the company he works for to settle some bills.

What it does

This application works for both the accountant and the simple employee or who wants to settle an invoice. First of all, the user takes a photo of the invoice / voucher, and I analyze the invoice and generate a super invoice, which has the original stored in it as well as the important data from the original already saved in a server. After generating the super invoice, the user can print it or send it on an email.

How we built it

I developed this native android application using the Java and Kotlin programming languages. As a code development style I used 70% functional programming and the rest OOP. As architecture I preferred to use MVP.

Challenges we ran into

  1. The first attempt was to detect the text in an image
  2. Analysis of the text extracted from the image, such as the detection of the VAT code, the total payment, the date from the invoice, the title of the invoice, the determination of a degree of confidentiality that the invoice is true.
  3. Strategy to improve text analysis and extraction algorithms
  4. Transforming dynamic layouts into images (bitmap) ## Accomplishments that we're proud of
  5. The entire process of analysis, uploading, printing, saving locally as well as in the invoice database.
  6. UI/UX, i like it so much
  7. The application is optimal and from what I tested it I did not discover other new bugs (sure it has, but I have not discovered them yet)
  8. Transforming dynamic layouts into images (bitmap), I didn't expect that to be possible, but it seems to be. ## What we learned
  9. More stuffs about REGEX
  10. Transforming dynamic layouts into images (bitmap)
  11. Using the ml kit from Firebase
  12. Economical stuffs about the VAT and why it's so important to have it (on invoice)
  13. Practicing functional programming with MVP
  14. Algorithmics in Kotlin and how to build faster alg with less code
  15. Chaining events with threads
  16. How to print something from an android app (using the Android API) ## What's next for PayTheBill I would like to rewrite it to be much more attentive to the architecture and the way of writing, I would like it to be more KISS =) Improve it and turn it into a sdk / library for android

email: rares.popa.petru@gmail.com

Built With

Share this project:

Updates