Events Search API

Drag Racing

Description

Events Search API was designed to fetch events from a third-party provider, store them in a PostgreSQL database, and offer a user-friendly endpoint for event search based on start and end dates. This project aimed to streamline event management and retrieval to offer up-to-date event information to users.

To search a event users just need to send a GET request with the start_at and ends_at query parameters defined:

curl http://<url>/search?starts_at=2000-06-30T20:00:00Z&ends_at=2021-02-10T23:00:00Z

And we will get a response with all events available during that time window:

{
  "data": {
    "events": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "title": "string",
        "start_date": "2023-09-12",
        "start_time": "22:38:19",
        "end_date": "2023-09-12",
        "end_time": "14:45:15",
        "min_price": 0,
        "max_price": 0
      }
    ]
  },
  "error": null
}

Project Goals

  • Develop a REST API
  • Create a architecture that would be easy to scale and add easy to add more event providers
  • Use ADR’s to document the architectural decisions of the project
  • Explore to use of Celery Beat to creat cronjob’s

Features

  • Search events by start and end date

Technologies Used

  • REST
  • Python
  • Flask
  • Celery
  • PostgreSQL
  • Docker