Hello guys! Thanks for opportunity, i am very happy with the idea that we could work together soon!
Before you take the code, i have some considerations here:
-
Actually i am working a lot in new projects for Avenue Code/MZ GROUP, my actual job, including WEEKENDS with studies and new deadline challenges, so i take your challenge in the weekend, using every free second that i had focus on MUST TO HAVE actions to send you this on monday and i think we have a good code here! It was a good challenge, thank you!
-
I started using the best practices of OOP and SOLID principles thinking about scalability, maintenability and clean code.
-
The tests are simple, but with 83% coverage, with all locally mocked(you can do this in a local machine without internet connection) but off course we can improve the tests in number and complexity.
-
About performance, using OOP and SOLID the eprformance increase in 9% in the total time spent between original app and actual app. You can check the original app performance here: https://colab.research.google.com/drive/1fpC61Wf7qUD1m-35TnQ09WcGRadXkt1Z?usp=sharing and in file called "Veriff_Challenge_compare_apps_performance.jpynb" on this repository. Docker decrease a lot the performance but we can take the same 9% increase with it too.
-
I used logging info to put logs inside birdclassifier.log(started with init() of ImageClassifier).
-
Tensorflow warnings about gpu/cuda and saver can be solved so this will be a good future improvement.
-
Docker will be a good improvement but this is a NICE-TO-HAVE in tasks description(bonus) so i focused on do my best with time i have for now and i think we have a good delivery here, can you send some feedbacks about it? thanks!
-
Install docker if you dont have it
-
Run container with
docker build -t bird-classifier .
on terminal -
Run application with
docker run -t bird-classifier