- HTML 80.8%
- JavaScript 7.3%
- Python 6.1%
- CSS 5.5%
- Dockerfile 0.3%
| flask_app | ||
| screenshots | ||
| docker-compose.yml | ||
| example-apache.conf | ||
| init.sql | ||
| README.md | ||
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
Task 1
Task 2
Admin Dashboard
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
-
Clone the repository
git clone https://<ACCESSTOKEN>@gitlab.uni-hannover.de/ikg-group/leibnizlab-gug.git cd leibnizlab-gug -
Configure environment variables
cp ./flask_app/.env.example ./flask_app/.envUpdate:
PIN- Database credentials
- Ports (if needed)
-
Adjust
docker-compose.yml- Volumes
- Ports
- Environment variables
-
Run the application
docker compose up -d --build -
Access the application
- App: http://localhost:5000
- Admin Dashboard: http://localhost:5000/admin
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
/adminendpoint is protected via aPIN -
It is strongly recommended to:
- Use a
PIN - Change the
PINin theapp.pyfile - Restrict access via reverse proxy
- Enable HTTPS when deployed publicly
- Use a
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).



