GraphQL - Hackathon 2022

At geOps, developers are constantly exploring cutting edge technologies to ensure applications use the most modern web technology standards. Therefore, it goes without saying that GraphQL has been a frequent topic during development. GraphQL is a powerful API query language that has earned a reputation in recent years as a flexible and feature-rich alternative to RESTful APIs. This moved geOps towards making use of it in recent projects and to explore its full potential.

In 2022 members from the geOps developer team decided to organise an internal, collaborative coding event. It was aimed at discovering the possibilities, tools and libraries focused on GraphQL and applying them to existing geOps projects by re-engineering specific components. Thus, the GraphQL-Hackathon was brought to life.

A team of seven developers took part, including backend and frontend engineers. A full day was planned as a time frame for the hackathon. The event started out with the main motivators providing a brief insight into the core principles of GraphQL, how the query language works and what benefits are gained by its usage. Then the team discussed which component from which project could be implemented using GraphQL considering the limited time frame. It was concluded that the geOps-developed Live Map of the S-Bahn Munich would be a suitable project to experiment on, since it requires standard data requests as well as real-time data subscriptions, which are essential in many geOps projects. The team started to develop a departure board for a station, including backend and frontend.

Based on a limited feature set, a minimal GraphQL schema was defined and provided common ground for a frontend and backend team to work in parallel. The backend team focused on getting to know the Strawberry library and hit the ground running with our existing station finder API and real-time database. At noon a prototype was already available to the frontend team. In the meantime the frontend team decided to try out different GraphQL browser libraries with a focus on support for GraphQL subscriptions. The results were mixed and will provide valuable insights for further endeavours into GraphQL frontend territory. In the end we had two different prototypes which implemented a simple user interface to find stations and display real-time information about incoming and outgoing trains.

The whole team was pretty excited about the benefits and possibilities GraphQL has to offer. The quick progress by the backend team was especially promising and everybody was looking forward to a follow-up hackathon.

written by Friedjoff Trautwein & Daniel Marsh-Hunn | 1/30/2023
More on this topic
9 min reading time › | Blog

Snapping stops to vehicle trajectories

How to snap points to a line string in a given order and what it has to do with quality assurance when importing public transport schedules.

read more
7 min reading time › | Blog

Using Redis Subscriptions efficiently in Python

Inspired by the websockets broadcast feature we built a subscription multiplexer for redis subscriptions to subscribe to Redis channels and patterns once for all relevant clients.

read more
6 min reading time › | Blog

Export and print web maps as PDF

For some time now, some of our apps have offered the export of our maps in PDF format. This article presents our solutions for some updates of this feature.

read more
3 min reading time › | Blog

beyond tellerrand 2023

On 11th September 2023 members from the geOps frontend team set out to Berlin to attend a very interesting and extraordinary event: beyond tellerrand conference.

read more
3 min reading time › | Blog

React 18 support for create-react-web-component

We want to update five year old dependencies the trafimage-maps project. But it appears one project dependency is deprecated. What should we do? Fix the project or use something else? We decided to fix the project and give back to the community.

read more
8 min reading time › | Blog

Adding type hints to existing code in Python

The Python interpreter handles types in a dynamic and flexible way without constraints on what type of object a variable is assigned to. Since Python 3.5 programmers have the option to add type annotations to their code. Here we how it's done.

read more

Contact

geOps AG
Solothurnerstrasse 235
CH-4600 Olten

fon: +41 61 588 05 05
mail: info@geops.ch
geOps GmbH
Bismarckallee 10
D-79098 Freiburg im Breisgau

fon: +49 761 458 925 0
mail: info@geops.de
Imprint | Privacy | Terms of service