No description
  • Jupyter Notebook 78.9%
  • HTML 11.7%
  • JavaScript 5.1%
  • Python 3.7%
  • CSS 0.5%
  • Other 0.1%
Find a file
2026-03-26 10:57:43 +01:00
app Initial commit 2026-03-26 10:55:58 +01:00
images Initial commit 2026-03-26 10:54:15 +01:00
dashboard_plots.ipynb Initial commit 2026-03-26 10:53:20 +01:00
docker-compose.yml Initial commit 2026-03-26 10:53:49 +01:00
example-apache.conf Initial commit 2026-03-26 10:53:20 +01:00
init.sql Initial commit 2026-03-26 10:53:20 +01:00
LICENSE Initial commit 2026-03-26 10:53:20 +01:00
README.md Updated description 2026-03-26 10:57:43 +01:00

Semantic Sequence Survey

A web-based application for collecting semantically annotated human movement sequences as stop-point based trips. Built with Flask, PostgreSQL/PostGIS, and Docker.

Designed for "quick & dirty" research data collection.

Tech Stack

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

Screenshots

Application

Application Screenshot

Leaderboard

Leaderboard Screenshot

Dashboard

Dashboard Screenshot 1 Dashboard Screenshot 2

Description

The Semantic Sequence Survey application is designed to collect annotated movement sequences of participants in the form of ordered stop points.

Users interact with a web map (Leaflet) and a side panel to:

  • Add locations sequentially
  • Annotate each stop (activity, stay duration, etc.)
  • Submit complete trips

Submitted trips are processed by a Flask backend and stored in a PostgreSQL database with PostGIS extension.

A leaderboard is included to encourage participation through gamification, while a dashboard provides statistical insights and spatial exploration (e.g., heatmaps and trip visualization).

Prerequisites

  • Docker
  • Docker Compose

Setup & Deployment

  1. Clone the repository

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

    cp ./app/.env.example ./app/.env
    

    Update:

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

    • Volumes
    • Ports
    • Environment variables
  4. Update dashboard contact info

    • Edit /app/templates/dashboard.html
    • Change the email address in the leaderboard section
  5. Run the application

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

Usage

  1. Start your day by adding your first location (e.g., home)
  2. Add stops sequentially throughout the day
  3. Annotate each stop before adding the next one
  4. Adjust marker positions if needed
  5. Submit the trip once complete

You can:

  • Edit annotations by clicking on markers
  • Add days in any order

Dashboard

The /dashboard provides:

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

Access is protected via a PIN (DASHBOARD_PIN).

Security

  • The /dashboard endpoint is protected via a PIN

  • It is strongly recommended to:

    • Use a DASHBOARD_PIN
    • 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

Privacy Notice

This application collects location-based movement data.

Ensure that:

  • Participants are aware and provide informed consent
  • Data is anonymized where required

Project Status

This project was developed for a one-time research effort and is not under active development.

License

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

If you use this project in your research, you might also find this paper interesting:

  • Golze, J., & Sester, M. (2024) Determining User Specific Semantics of Locations Extracted from Trajectory Data Transportation Research Procedia: 25th Euro Working Group on Transportation Meeting, Vol. 78, pp. 215221
    DOI: https://doi.org/10.1016/j.trpro.2024.02.028
@article{golze2024user_semantics,
   author    = {Golze, J. and Sester, M.},
   title     = {Determining User Specific Semantics of Locations Extracted from Trajectory Data},
   journal   = {Transportation Research Procedia},
   volume    = {78},
   pages     = {215--221},
   year      = {2024},
   doi       = {10.1016/j.trpro.2024.02.028}
}
  • Golze, J., Sester, M., Feuerhake, U., & Brenner, C. (2024) Exploring User Semantic Annotation from Trajectories in the Scenario of Shared Locations AGILE GIScience Series, 5, 25
    DOI: https://doi.org/10.5194/agile-giss-5-25-2024
@article{golze2024shared_locations,
   author    = {Golze, J. and Sester, M. and Feuerhake, U. and Brenner, C.},
   title     = {Exploring User Semantic Annotation from Trajectories in the Scenario of Shared Locations},
   journal   = {AGILE GIScience Series},
   volume    = {5},
   pages     = {25},
   year      = {2024},
   doi       = {10.5194/agile-giss-5-25-2024}
}