Typescript Urgent Web Scraping

Job ID: 38473529

Budget: $2 – $8 USD

START YOUR PROJECT WITH “DOCKERIZING” OR YOU WILL BE DISCARDED
Project Description:
We are seeking a freelancer specialized in Docker and observability systems to create a TypeScript project template that will be used for data scraping on the Bet365 website. This template should be capable of accessing a specific URL, clicking on specific elements according to a selected league, checking for the presence of elements as per a provided image, and capturing a screenshot of the page.
Main Objective:
The freelancer should develop a project template in TypeScript that will be duplicated and used in two separate folders: Odds and Results. This template will serve as the foundation for future development and must perform the following basic tasks:
Access a specific URL on Bet365 ⇾ https://www.bet365.com/#/AVR/B146/R^1/.
Click on the corresponding league based on the ID_LEAGUE variable:
ID_LEAGUE = 1: Click on [data-content="World Cup"].
ID_LEAGUE = 2: Click on [data-content="Euro Cup"].
ID_LEAGUE = 3: Click on [data-content="South American Super League"]. ⇽ this one can be different depending on your location
ID_LEAGUE = 4: Click on [data-content="Premiership"].
Check for the presence of specific visual elements on the page.
Capture a screenshot of the page.
Project Structure:
Odds Folder:
The template will be duplicated in this folder and configured to run 3 instances of the application for each league separately based on the ID_LEAGUE variable defined in a .env file.
The application should run 3 instances for ID_LEAGUE = 1, then another 3 instances for ID_LEAGUE = 2, and so on, until ID_LEAGUE = 4, resulting in a total of 12 instances running (3 per league).
Results Folder:
The same template will be duplicated in this folder and configured to run 5 simultaneous instances of the application without the need for the ID_LEAGUE variable.
The management of these instances will be handled using Docker, eliminating the need to manually manage them with PM2.



Technical Requirements:
Creation of the TypeScript Template:
The freelancer must develop a TypeScript code template that performs the following tasks:
Accesses the specific URL on Bet365.
Clicks on the corresponding league based on the ID_LEAGUE variable.
Checks for the presence of visual elements according to the provided image.
Captures a screenshot of the page.
Docker:
Create optimized Dockerfiles that encapsulate the TypeScript template with all necessary dependencies.
Configure Docker Compose to manage the multiple instances in each folder (Odds and Results), with specific environment variables for each instance and league.
Image: node:alpine
Monitoring and Observability:
Integrate Prometheus for metrics collection and real-time monitoring of each application instance.
Set up Grafana to visualize these metrics in custom dashboards, allowing real-time tracking and alert configuration.
Additional Requirement: The freelancer must provide a complete Grafana dashboard showing examples of what will be monitored and how the data will be visualized in real-time.
Automation and Process Management:
All instance management will be handled via Docker and Docker Compose, eliminating the need for PM2.
Deliverables:
TypeScript Template: Base code that accesses the Bet365 URL, clicks on the corresponding league, checks for visual elements, and takes a screenshot.
Dockerfiles: To encapsulate the template with all necessary dependencies.
Docker Compose: Configuration file to manage the multiple instances in the Odds and Results folders, with separate execution per league in the Odds folder.
Monitoring Setup: Integration with Prometheus and Grafana, with configured dashboards and defined alerts.
Complete Dashboard: A detailed Grafana dashboard with examples of how the data will be monitored and visualized in real-time.
Detailed Documentation: Explaining how to configure, run, and monitor the system.
Necessary Tools:
Docker and Docker Compose: For managing and orchestrating the instances.
Prometheus and Grafana: For real-time monitoring and observability.
Desired Profile:
Proven experience in Docker, Docker Compose, and observability systems like Prometheus and Grafana.
Knowledge in TypeScript and automation of scraping with Playwright or similar tools.
Ability to create a functional, well-documented, and scalable template.
Skill in creating and presenting monitoring dashboards, including practical examples.
Note: The freelancer should focus on creating the template and deployment infrastructure. Further development on this template will be done internally after delivery.

YOU’RE RIGHT, IF THE SCRIPT CAN SEE THIS PAGE EXACTLY AS THE IMAGE BELOW:
Related categories: Python Web Scraping Typescript Scrapy BeautifulSoup