- Jupyter Notebook 78.9%
- HTML 11.7%
- JavaScript 5.1%
- Python 3.7%
- CSS 0.5%
- Other 0.1%
| app | ||
| images | ||
| dashboard_plots.ipynb | ||
| docker-compose.yml | ||
| example-apache.conf | ||
| init.sql | ||
| LICENSE | ||
| README.md | ||
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
Leaderboard
Dashboard
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
-
Clone the repository
git clone https://<ACCESSTOKEN>@gitlab.uni-hannover.de/ikg-group/semantic-sequence-survey.git cd semantic-sequence-survey -
Configure environment variables
cp ./app/.env.example ./app/.envUpdate:
DASHBOARD_PIN- Database credentials
- Ports (if needed)
-
Adjust
docker-compose.yml- Volumes
- Ports
- Environment variables
-
Update dashboard contact info
- Edit
/app/templates/dashboard.html - Change the email address in the leaderboard section
- Edit
-
Run the application
docker compose up -d --build -
Access the application
- App: http://localhost:5000
- Leaderboard: http://localhost:5000/leaderboard
- Dashboard: http://localhost:5000/dashboard
Usage
- Start your day by adding your first location (e.g., home)
- Add stops sequentially throughout the day
- Annotate each stop before adding the next one
- Adjust marker positions if needed
- 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
/dashboardendpoint is protected via a PIN -
It is strongly recommended to:
- Use a
DASHBOARD_PIN - 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
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).
Related Work
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. 215–221
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}
}



