We need to improve a webservice that gets a document (PDF, Excel, image, txt, Powerpoint, etc) and respond back with a Json with how many pages have the document and what amount of color each page has.
The service is already developed and is working, just have to be improved. We have the code.
The service was developed using the following technologies:
OAUTH2
Golang versiĆ³n 1.13
framework: gin-gonic/gin
Docker / Ubuntu
Dependency: libreoffice, libreofficekit-dev, golang-1.13, golang-1.13-go
We have full technical documentation of the webservice.
The specific requirement for this project are:
1) Modify the webservice to add an additional parameter for color_limit, with this parameter if a document is scanned and found that the color percentage of the page = color_limit then the process should exit the checking of color measure for the rest of that specific page, send the response that this page is a color page (not B/W) and will continue with the next one checking the percentage of color in the other page of the document (this will improve processing)
2) Is needed to change the webservice so it will be scalable (can raise more process into memory in order to handle a more higher user demand) and also should be balanced (can balance the service charge with starting the service on other server)
The final optimized webservice version must scan (Five (5) pdf/docxs) simultaneous for color a with 1,000 pages each of the 5 files is less that 60 seconds.
Testing:
On AWS
t3.medium server we will send 5 document simultaneous of 1,000 pages and the server should respond without hanging the amount of color for each pages in 60 seconds
For the 5 files, this will be the testing scenarios
a. 5 PDF documents
b. 5 DOCX documents
b.
3 PDF documents + 2 DOCS documents
All source code that will be needed for the service should be delivered and reside on our server (external libraries needed should be acceded locally on the server)
Delivery term: April 15, 2021