No description
  • HTML 80.8%
  • JavaScript 7.3%
  • Python 6.1%
  • CSS 5.5%
  • Dockerfile 0.3%
Find a file
2026-04-21 12:32:39 +02:00
flask_app initial commit 2026-04-21 12:32:05 +02:00
screenshots initial commit 2026-04-21 12:27:10 +02:00
docker-compose.yml initial commit 2026-04-21 12:26:44 +02:00
example-apache.conf initial commit 2026-04-21 12:26:44 +02:00
init.sql initial commit 2026-04-21 12:26:44 +02:00
README.md initial commit 2026-04-21 12:32:39 +02:00

LeibnizLab Geodäsie und Geoinformatik

A web-based application as support material for the LeibnizLab Geodäsie und Geoinformatik. Containing different tasks to explain different general elements of the map matching approach used e.g. for GNSS trajectories. Built with Flask, PostgreSQL/PostGIS, and Docker.

Tech Stack

  • Backend: Flask (Python)
  • Database: PostgreSQL + PostGIS
  • Frontend: HTML, CSS, JavaScript, Leaflet.js, Blockly,js
  • Deployment: Docker, Docker Compose

Screenshots

Startpage

Application Screenshot

Task 1

Application Screenshot

Task 2

Application Screenshot

Admin Dashboard

Dashboard Screenshot 1

Description

The web application is designed as support material for the LeibnizLab Geodäsie und Geoinformatik.

This web application consists of two interactive tasks focused on map matching. In Task 1, users manually match points (a car) across different scenarios and provide reasoning for their decisions; responses are stored in a PostgreSQL database for later discussion via a dashboard. Task 2 allows users to build and test a simple, code-free map matching algorithm using the Blockly.js framework.

Prerequisites

  • Docker
  • Docker Compose

Setup & Deployment

  1. Clone the repository

    git clone https://<ACCESSTOKEN>@gitlab.uni-hannover.de/ikg-group/leibnizlab-gug.git
    cd leibnizlab-gug
    
  2. Configure environment variables

    cp ./flask_app/.env.example ./flask_app/.env
    

    Update:

    • PIN
    • Database credentials
    • Ports (if needed)
  3. Adjust docker-compose.yml

    • Volumes
    • Ports
    • Environment variables
  4. Run the application

    docker compose up -d --build
    
  5. Access the application

Admin Dashboard

The /admin provides:

  • Statistical summaries of collected data
  • Heatmap visualization
  • Individual trip inspection

Access is protected via a PIN (PIN). The default PIN is 1234.

Security

  • The /admin endpoint is protected via a PIN

  • It is strongly recommended to:

    • Use a PIN
    • Change the PIN in the app.py file
    • Restrict access via reverse proxy
    • Enable HTTPS when deployed publicly

Reverse Proxy (Optional)

To expose the application to the internet:

  • Use a reverse proxy (e.g., Apache)
  • Configure HTTPS (e.g., Let's Encrypt)
  • Forward traffic to port 5000

A basic Apache vHost file is provided in this project example-apache.conf

Project Status

This project was developed in cooperation with the Leibniz School of Education (LSE) and the Institute of Cartography and Geoinformatics as support material for the LeibnizLab Geodäsie und Geoinformatik. It is not under active development.

License

This project is licensed under the GNU General Public License (GPL).