{"id":18685070,"url":"https://github.com/matiascarabella/formula1-driver-api","last_synced_at":"2026-04-16T10:35:28.206Z","repository":{"id":159118205,"uuid":"344321805","full_name":"MatiasCarabella/formula1-driver-API","owner":"MatiasCarabella","description":"CRUD API of F1 drivers 🏁🏎️ that showcases the use of Spring Boot, MySQL \u0026 Docker as its main technologies.","archived":false,"fork":false,"pushed_at":"2024-11-25T01:50:55.000Z","size":181,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T00:23:50.024Z","etag":null,"topics":["api","crud","crud-api","docker","f1","formula1","java","mysql","rest","restful-api","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MatiasCarabella.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-04T02:10:56.000Z","updated_at":"2024-11-29T22:19:06.000Z","dependencies_parsed_at":"2024-12-28T00:22:47.641Z","dependency_job_id":"75bb9df4-32ff-4a07-ac9a-98dde2610e27","html_url":"https://github.com/MatiasCarabella/formula1-driver-API","commit_stats":null,"previous_names":["matiascarabella/formula1-driver-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatiasCarabella%2Fformula1-driver-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatiasCarabella%2Fformula1-driver-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatiasCarabella%2Fformula1-driver-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatiasCarabella%2Fformula1-driver-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MatiasCarabella","download_url":"https://codeload.github.com/MatiasCarabella/formula1-driver-API/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239540501,"owners_count":19656024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","crud","crud-api","docker","f1","formula1","java","mysql","rest","restful-api","spring-boot"],"created_at":"2024-11-07T10:20:19.441Z","updated_at":"2026-04-16T10:35:28.186Z","avatar_url":"https://github.com/MatiasCarabella.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"user-content-toc\"\u003e\n  \u003cul align=\"center\" style=\"list-style: none;\"\u003e\n    \u003cimg src=\"https://www.pngmart.com/files/23/F1-Logo-PNG-HD.png\" width=400\u003e\n    \u003csummary\u003e\n      \u003ch1\u003eFormula 1 Driver API\u003c/h1\u003e\n    \u003c/summary\u003e\n  \u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.oracle.com/java/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Java-25-ED8B00?logo=openjdk\u0026logoColor=white\" alt=\"Java 25\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://spring.io/projects/spring-boot\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Spring%20Boot-3.5.0-6DB33F?logo=springboot\u0026logoColor=white\" alt=\"Spring Boot\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://gradle.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Gradle-02303A?logo=gradle\u0026logoColor=white\" alt=\"Gradle\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.mysql.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/MySQL-9.5.0-4479A1?logo=mysql\u0026logoColor=white\" alt=\"MySQL\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.docker.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=fff\" alt=\"Docker\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://swagger.io/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Swagger-85EA2D?logo=swagger\u0026logoColor=black\" alt=\"Swagger\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://documenter.getpostman.com/view/10146128/2s93JoxRFG\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Postman-Collection-orange?logo=postman\" alt=\"Postman Collection\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003ch1\u003e\u003c/h1\u003e\n\nThis Formula 1 Driver API is a fully dockerized RESTful service for managing Formula 1 driver data. Built with Spring Boot and MySQL, it offers endpoints for CRUD operations, seamless local or containerized deployment, and API documentation via Swagger and Postman.\n\n## Setup Instructions\n\n### Prerequisites\n- [**Docker**](https://docs.docker.com/get-started/get-docker/) and [**Docker Compose**](https://docs.docker.com/compose/)\n\n### Installation\n1. Clone the repository:\n```\ngit clone https://github.com/MatiasCarabella/formula1-driver-API.git\ncd formula1-driver-API\n```\n\n2. Build and start the application using Docker Compose:\n```bash\n docker compose up --build \n ```\n_This will automatically build the Docker containers and start the application._\n\n3. Access the application on http://localhost:9096/api. You should get the following response:\n```json\n{\n    \"message\": \"Ready to go! 🚦🏁\",\n    \"status\": 200\n}\n ```\n\n## Project Structure\n```\nformula1-driver-API/\n├── src\n│   ├── main\n│   │   ├── java\n│   │   │   └── com\n│   │   │       └── motorsport\n│   │   │           └── formula1\n│   │   │               ├── Formula1Application.java\n│   │   │               ├── controller\n│   │   │               │   ├── IDriverController.java\n│   │   │               │   ├── IPingController.java\n│   │   │               │   └── impl\n│   │   │               │       ├── DriverController.java\n│   │   │               │       └── PingController.java\n│   │   │               ├── entity\n│   │   │               │   ├── Driver.java\n│   │   │               │   └── Response.java\n│   │   │               ├── repository\n│   │   │               │   └── DriverRepository.java\n│   │   │               ├── response\n│   │   │               │   └── ResponseHandler.java\n│   │   │               ├── usecase\n│   │   │               │   ├── ICreateDrivers.java\n│   │   │               │   ├── IDeleteDriver.java\n│   │   │               │   ├── IGetAllDrivers.java\n│   │   │               │   ├── IGetDriversFromJson.java\n│   │   │               │   ├── IGetDriversWithFilters.java\n│   │   │               │   ├── IGetDuplicateDrivers.java\n│   │   │               │   ├── IInitializeDatabase.java\n│   │   │               │   ├── IIsDatabasePopulated.java\n│   │   │               │   ├── IUpdateDriver.java\n│   │   │               │   └── impl\n│   │   │               │       ├── CreateDrivers.java\n│   │   │               │       ├── DeleteDriver.java\n│   │   │               │       ├── GetAllDrivers.java\n│   │   │               │       ├── GetDriversFromJson.java\n│   │   │               │       ├── GetDriversWithFilters.java\n│   │   │               │       ├── GetDuplicateDrivers.java\n│   │   │               │       ├── InitializeDatabase.java\n│   │   │               │       ├── IsDatabasePopulated.java\n│   │   │               │       └── UpdateDriver.java\n│   │   │               └── util\n│   │   │                   └── DocumentationHelper.java\n│   │   └── resources\n│   │       ├── application.properties\n│   │       └── data\n│   │           └── drivers.json\n│   └── test\n│       └── java\n│           └── com\n│               └── motorsport\n│                   └── formula1\n│                       └── usecase\n│                           └── impl\n│                               ├── CreateDriversTest.java\n│                               ├── DeleteDriverTest.java\n│                               ├── GetAllDriversTest.java\n│                               ├── GetDriversFromJsonTest.java\n│                               ├── GetDriversWithFiltersTest.java\n│                               ├── GetDuplicateDriversTest.java\n│                               ├── InitializeDatabaseTest.java\n│                               ├── IsDatabasePopulatedTest.java\n│                               └── UpdateDriverTest.java\n├── Dockerfile\n├── docker-compose.yml\n├── Dockerfile\n├── docker-compose.yml\n├── gradlew\n├── gradlew.bat\n├── build.gradle\n├── settings.gradle\n├── .gitignore\n│── LICENSE\n└── README.md\n```\n\n## Usage\n### API Endpoints\n\n| Endpoint                     | Method | Description                              |\n|------------------------------|--------|------------------------------------------|\n| `/api`                        | **GET** | Check the service status with a message |\n| `/api/drivers`                | **GET** | Get all drivers, with optional filters   |\n| `/api/drivers`                | **POST**| Add new drivers to the database          |\n| `/api/drivers/{id}`           | **PUT** | Update driver information by ID         |\n| `/api/drivers/{id}`           | **DELETE**| Delete a driver by ID                   |\n| `/api/drivers/initialize`     | **POST**| Initialize the database with sample data |\n\n## API Documentation\n\n### Swagger\n\nOnce the application is running, you can access the generated OpenAPI docs at:\n- [http://localhost:9096/v3/api-docs](http://localhost:9096/v3/api-docs)\n\n### Postman\n\nYou can also view and test the API using the following Postman docs:\n- [Postman Documentation](https://documenter.getpostman.com/view/10146128/2s93JoxRFG)\n\n## Running Code Quality and Tests Locally\n\nIf you have Java and Gradle installed locally (or use the wrapper), you can use the following commands:\n\n### Run the application\n  ```sh\n  ./gradlew run\n  ```\n  _Or use `bootRun`_\n\n### Format code with Spotless\n  ```sh\n  ./gradlew spotlessApply\n  ```\n### Run all tests\n  ```sh\n  ./gradlew test\n  ```\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Acknowledgements\n\n- [**@DaianaArena**](https://github.com/DaianaArena) 💜 for creating the banner image.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatiascarabella%2Fformula1-driver-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatiascarabella%2Fformula1-driver-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatiascarabella%2Fformula1-driver-api/lists"}