Fonoa provides tax automation services for the internet economy. Our task was to implement a browser automation scenario for a tax accounting website to be used in the company's solutions. The scenario included: authorisation, dealing with forms and multi-step processes, uploading and downloading files.
We implemented an application with a server and a client side. The server side was a Node.js + Typescript containing the endpoints for receiving user data and exchanging it with the client side. To store the user data and the transactions data we used a PostgreSQL DB. The client side was a Cheerio-based microservice for scraping data from the tax website and sending requests with data for each interaction step in the flow of creating and removing tax tickets. For queuing of processing requests from several users and as well processing errors related to the scraping API functioning we used message broker RabbitMQ.