NodeJS Service on Heroku to Return PDF of page using Pupeteer
- or -
Post a project like this€500(approx. $542)
- Posted:
- Proposals: 23
- Remote
- #4041332
- OPPORTUNITY
- Expired
Full-Stack Developer => React| Vue | Node | PHP| WordPress | Python | Django|TypeScript
Helsinki
55016231018083910161427101134339959184994938696033379553746950539094524669284735
Description
Experience Level: Expert
We need a NodeJS on Heroku service. The service will accept GET Requests to endpoint ../v1/get-pdf with the following params:
- URL - this is the web page URL that will be PDF
- PDF options JSON - this is a JSON for the output PDF options passed to Pupeteer https://pptr.dev/api/puppeteer.pdfoptions/
- Callback URL - this is the URL endpoint which will be used to POST the results
- Request ID - this is an origin issued ID. This will be used by the external application to map the resulting PDF to a respective record
- Props - this is an attribute in JSON that will be pased by external application and must be returned unaltered in the callback
When headless chrome successfully creates a PDF, the callback url will be called with the results of the operation and the Request Id as well as the PROPS JSON.
In pupeteer, we must await for the webpage to fully load before we initiate the PDF procedure.
In addition, this project requires the following:
A simple admin panel that displays a table of all requests made, timestamped with status and a copy of the request payload and origin. This panel will be used for debugging. In addition, the Admin Panel should be allowed to configure whitelisted origin urls - this will be the only security to block app abuse. If a request is made from non-whitelisted origin, log in the Postgres table for admin to resolve.
All requests made to the service must be stored in POSTGRES.
Handle the following errors (and record in the table):
- Internal app errors (any crashing errors in the webservice)
- Pupeteer errors
- Callback errors
Workflow:
1. External system hits our endpoint with a payload request
2. Node application converts URL to a PDF with passed options
3. Node application calls back the callback url and posts the results of the operation
Finally, the development must be delivered with instructions and scripts to allow for Heroku deployment and database migration scripts. Local development scripts should also be provided.
We want to mention that this application should be written in Object Oriented Javascript as opposed to Functional
- URL - this is the web page URL that will be PDF
- PDF options JSON - this is a JSON for the output PDF options passed to Pupeteer https://pptr.dev/api/puppeteer.pdfoptions/
- Callback URL - this is the URL endpoint which will be used to POST the results
- Request ID - this is an origin issued ID. This will be used by the external application to map the resulting PDF to a respective record
- Props - this is an attribute in JSON that will be pased by external application and must be returned unaltered in the callback
When headless chrome successfully creates a PDF, the callback url will be called with the results of the operation and the Request Id as well as the PROPS JSON.
In pupeteer, we must await for the webpage to fully load before we initiate the PDF procedure.
In addition, this project requires the following:
A simple admin panel that displays a table of all requests made, timestamped with status and a copy of the request payload and origin. This panel will be used for debugging. In addition, the Admin Panel should be allowed to configure whitelisted origin urls - this will be the only security to block app abuse. If a request is made from non-whitelisted origin, log in the Postgres table for admin to resolve.
All requests made to the service must be stored in POSTGRES.
Handle the following errors (and record in the table):
- Internal app errors (any crashing errors in the webservice)
- Pupeteer errors
- Callback errors
Workflow:
1. External system hits our endpoint with a payload request
2. Node application converts URL to a PDF with passed options
3. Node application calls back the callback url and posts the results of the operation
Finally, the development must be delivered with instructions and scripts to allow for Heroku deployment and database migration scripts. Local development scripts should also be provided.
We want to mention that this application should be written in Object Oriented Javascript as opposed to Functional
James R.
100% (1)Projects Completed
1
Freelancers worked with
1
Projects awarded
33%
Last project
20 Sep 2023
Bulgaria
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies