Robot Framework for downloading invoices as microservice
Budget: $10 – $300 USD
I'm looking for a seasoned robot framework / Python developer with specific experience in using browser automation to download invoices from different portals.
Key Requirements:
- OOP based programming, should be able to login, navigate to the billing section and download the invoices into a individual folder
- the download shall be able to work with
...- date periods (invoices after date, invoices between dates)
...- regex on filename
...- downloaded invoice is represented by a invoice class, which properties to represent the full invoice details like (invoice date, invoice number, filename, filepath)
...- the invoices are returned as a list of invoice instances
...- can be outputted as xml or json
- persist the downloaded data into database with ORM tool sqlalchemy
- expose operation via REST
- use PyMS and sqlalchemy
- use logging framework
- cmd line only and rest api usage possible!
Ideal Skillset:
- Proficiency in Python
- Experience with PyMS and sqlalchemy
- Experiences with OOP (classes and lists)
Milestones:
MS0:
goal is to have a "blank" microservices which is having the required structure, before we move on with the implementation via robot framework. So:
- implement a module, which is faking the download by given dates and regex (you fake the download and trace out to console to visualize a "download"
- the rest api is calling this module
- the cmd line is also calling this module
- the module has a service class, which itself manages all steps (download, persistency)
- use service and repository patterns in the module
MS1:
in this milestone you implement a full robot automation to download the invoices from the portalA (Meta/Facebook)
- integrate it into MS0
- provide performance mode (headless) and demo/debugging mode (with visible browser)
MS2
in this milestone you implement a full robot automation to download the invoices from the portalB (GoogleAds)
- integrate it into MS0
- provide performance mode (headless) and demo/debugging mode (with visible browser)
MS3
- persist user's browser profile, to be able to keep logged in.
- this profile must be able to be duplicated to other linux nodes / microservice nodes
MS4
other portal, which will be discussed
Budget?
will not be disclosed, place your best bid to get considered
Payment?
- you estimate in a WBS (optimistic, expected, pessimistic, where optimistic < expected < pessimistic) after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after mutually agreed
- you implement, test and deliver
- you provide also unit /integration tests to ensure code is always working
- you document each required step to make interaction of systems to work
- we test on our premise (you maybe help to fix issues)
- we pay
(basically the rules of freelancer)
Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task.
We are sorry we will not hire you in such a case!
documentation requirements:
- well structured
- reproducible steps for others
- spell & grammar checked
coding requirements:
- clean code in terms of clean code book
- best practices for development (code level documentation, common patterns, OOP as possible)
- best practices for agreed and choosen libs/frameworks
- classes are reusable for later extensions and reuse options (after MS4)
Deliveries?
- in our on premise git (access will be granted to you)
- full sources (NO! Jupyter Notebook)
- multiple samples of videos will be shared via URL to download
- bash to build & run your code
- poetry build
- latest stable python version
- libs, need prior confirm and we prefer to use mostly latest stable versions
- your code is working on our end too
- your code passes our CI build (with poetry)
- you may require to help us here on setup
- we require, depending on availability and on complexity 2-4 weeks test time per milestone. Usually clearly less
Key Requirements:
- OOP based programming, should be able to login, navigate to the billing section and download the invoices into a individual folder
- the download shall be able to work with
...- date periods (invoices after date, invoices between dates)
...- regex on filename
...- downloaded invoice is represented by a invoice class, which properties to represent the full invoice details like (invoice date, invoice number, filename, filepath)
...- the invoices are returned as a list of invoice instances
...- can be outputted as xml or json
- persist the downloaded data into database with ORM tool sqlalchemy
- expose operation via REST
- use PyMS and sqlalchemy
- use logging framework
- cmd line only and rest api usage possible!
Ideal Skillset:
- Proficiency in Python
- Experience with PyMS and sqlalchemy
- Experiences with OOP (classes and lists)
Milestones:
MS0:
goal is to have a "blank" microservices which is having the required structure, before we move on with the implementation via robot framework. So:
- implement a module, which is faking the download by given dates and regex (you fake the download and trace out to console to visualize a "download"
- the rest api is calling this module
- the cmd line is also calling this module
- the module has a service class, which itself manages all steps (download, persistency)
- use service and repository patterns in the module
MS1:
in this milestone you implement a full robot automation to download the invoices from the portalA (Meta/Facebook)
- integrate it into MS0
- provide performance mode (headless) and demo/debugging mode (with visible browser)
MS2
in this milestone you implement a full robot automation to download the invoices from the portalB (GoogleAds)
- integrate it into MS0
- provide performance mode (headless) and demo/debugging mode (with visible browser)
MS3
- persist user's browser profile, to be able to keep logged in.
- this profile must be able to be duplicated to other linux nodes / microservice nodes
MS4
other portal, which will be discussed
Budget?
will not be disclosed, place your best bid to get considered
Payment?
- you estimate in a WBS (optimistic, expected, pessimistic, where optimistic < expected < pessimistic) after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after mutually agreed
- you implement, test and deliver
- you provide also unit /integration tests to ensure code is always working
- you document each required step to make interaction of systems to work
- we test on our premise (you maybe help to fix issues)
- we pay
(basically the rules of freelancer)
Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task.
We are sorry we will not hire you in such a case!
documentation requirements:
- well structured
- reproducible steps for others
- spell & grammar checked
coding requirements:
- clean code in terms of clean code book
- best practices for development (code level documentation, common patterns, OOP as possible)
- best practices for agreed and choosen libs/frameworks
- classes are reusable for later extensions and reuse options (after MS4)
Deliveries?
- in our on premise git (access will be granted to you)
- full sources (NO! Jupyter Notebook)
- multiple samples of videos will be shared via URL to download
- bash to build & run your code
- poetry build
- latest stable python version
- libs, need prior confirm and we prefer to use mostly latest stable versions
- your code is working on our end too
- your code passes our CI build (with poetry)
- you may require to help us here on setup
- we require, depending on availability and on complexity 2-4 weeks test time per milestone. Usually clearly less