Theodoros Grammenos

socials: github linkedin

e-mail: teogramm [at] outlook [dot] com

interests: trains, public transport, movies, programming, Linux, mapping

Projects

SL departures sign

The project involved using a Raspberry Pi Zero, along with an OLED display to create a sign that mimics the signs displaying metro departures in the Stockholm metro. Besides departures, the application also displays deviation messages about disruptions on the network.

Although the sign mimics the style of a metro display, it can be used to display information about other modes. The program gives the user the ability to control the transport modes that are displayed, as well as the direction of travel. Moreover, there is an option to control the hours when the sign is on.

The required data was obtained from the public API of SL1. Displaying the data on the screen required tweaking the u8g2 library so it works with the wiringPi library. The use of the u8g2 library means that the sign can be easily made to work with any other display or platform which is supported by the library.

1. SL is the public transport authority of Stockholm

Thessaloniki Transport application

Android application for viewing information about buses in Thessaloniki. It allows viewing detailed information about each line: its scheduled departure times, alongside a map of the line route and its stops. In addition, it supports checking out real-time arrivals at a stop. The novel feature of the app is getting push notifications on bus arrivals. Since the buses in Thessaloniki rarely adhere to the schedule, the app allows the user to get a notification when a bus line is within a specified number of minutes of a specific stop.

Docker image for the Koha ILS and integration guide with the Vufind search system

Koha is the most widely used open source integrated library system (ILS), used for managing cataloguing, loans and acquisitions. It is a complex piece of software, requiring many services running concurrently in the background. This makes it relatively complex to containerise it. This project involved creating a Docker container for Koha, which runs as few services as possible, that can retain Koha's state on disk, even if the container is destroyed and recreated, and that supports configuration by environment variables. To manage Koha's requirement of running multiple processes concurrently, s6-overlay was used.

The image is available in Docker Hub.


In addition to the Docker image, a guide was composed that contains instructions for installing Koha in a non-containerised environment and integrating it with Vufind. Vufind is an open source search system designed for finding content from multiple sources. Although Koha has its own publicly available search catalogue, Vufind can combine information from multiple sources, which can also be Koha libraries.

Besides the guide itself, the repository contains information about running Koha in RedHat and SUSE-based distros, which are not supported officially by the project. Ansible playbooks are provided to automate this process.

Library for OASTH data

This Kotlin library enables fetching data about the bus network of Thessaloniki (managed by OASTH), by utilising the operator's undocumented API. The library supports fetching:
  • Static data, which includes information about bus stops, routes and lines. The scheduled departure times of each line from the starting stop are also included.
  • Live data about the position of buses, as well as the estimated arrival times of buses at a stop.
The library is publicly available at Maven Central. In addition, documentation is available at Readthedocs, containing usage information, in addition to reference documentation about its classes and functions.
Other smaller projects can be found on my GitHub page. Namely, during my bachelor's degree, I implemented various algorithms and developed smaller applications, the code for which can be found in this repository.

Publications

Two-way chemotaxis-based communication for biological nanonetworks. Int J Commun Syst. 2022; 35(16):e5312—Joint work with K. Kantelis, P. Nicopolitidis and G. Papadimitriou [1] [2]
Developed as part of my bachelor thesis and involved the examination of a new communication protocol for biological nanonetworks, based on chemotaxis. For the evaluation, a biological nanonetwork simulator was developed in Anylogic and different transmission scenarios were tested.

Effects of curvature, gradient and path width on cyclist behaviour: Empirical analysis of a bike path in Stockholm [1]
My master's thesis, done in collaboration with the Swedish National Road and Transport Research Institute (VTI). The thesis involved analysing a large amount of bicycle trajectory data from a bicycle path in Stockholm and matching it with manually annotated bicycle type data. Data processing and analysis was done using the polars Python library. Matching the annotations to the trajectory data was done by creating a graph and finding the minimum-cost maximum matching. The code for processing the data is available on GitHub.

Made with care by me. This website does not use cookies or track you in any way.