Skip to content

MarcHeiden/formula-ap1

Repository files navigation

formula-ap1

The API is not ready for production yet.

formula-ap1 is a REST API that provides data about the formula one racing series.

Why does this exist?

The project started with the idea to build an open source F1 betting game. While looking for services which could provide race data, I came across the free and handy Ergast API. Unfortunately, it does not provide all data needed, such as top speeds data. In addition to that, it looks like the API will be shut down at the end of 2024. Therefore, I made the decision to collect the data myself via a web scraper and make it accessible via a REST API.

Usage

You will find the API documentation at formula-ap1.com.

How is it built?

The API is built in Java with Spring Boot and PostgreSQL. A web scraper, built with TypeScript and Node.js, is used to scrape the data with the Crawlee library and send it to the API by using the HTTP request library got. Ansible is used to set up an Ubuntu server and deploy the API and the scraper via Docker Compose. To secure the API, traffic is routed through the reverse proxy Traefik:

Compose Project Visualization

Further documentation of each project can be found in the README in the project directory.

Docker

The API and the scraper image for linux/amd64 and linux/arm64 are available on DockerHub.

Image Tags

formula-ap1:api-<version>

This is the image of the API. More information about it can be found here.

formula-ap1:scraper-<version>

This is the image of the scraper. More information about it can be found here.

EditorConfig

EditorConfig is used to define basic format styles. The Editorconfig check workflow checks whether all files comply with the styles defined in .editorconfig when a pull request against main is created.