•Employed Redux to manage application’s state across separate pages, allowing for centralization of
fetched data, preventing repetition of code, as well streamlining the management of the application’s
state.
•Leveraged Puppeteer.js for its integration with the Node ecosystem and superior control over
Chromium in order to send requests to online retailers and return pricing data to the user.
•Created multiple API routes with Express.js to work in tandem with Puppeteer middleware to deliver
users data on the front-end while also appropriately handling any errors.
•Stored previous user searches in Redis cache object, increasing application scalability while reducing
load placed on the backend server.