Università di Bologna /
Grin-Up
Tracking students’ mobility and consumption habits

An advanced iOS and Android mobile app to increase student participation in a university research project.
The system turns scientific data collection on urban mobility into an engaging gamified experience, ensuring continuous GPS tracking while fully respecting privacy.
The University of Bologna needed to collect real, continuous data about students’ urban mobility.
Researchers had already involved thousands of students through traditional questionnaires, but to raise the bar they needed a tailored solution balancing scientific rigor, GDPR constraints, and a user experience able to keep engagement high beyond the first weeks of use.

The University of Bologna needed to collect real, continuous data about students’ urban mobility.

Researchers had already involved thousands of students through traditional questionnaires, but to raise the bar they needed a tailored solution balancing scientific rigor, GDPR constraints, and a user experience able to keep engagement high beyond the first weeks of use.

An app for students, a back office for those who design the research.
Challenges as research units
Challenges are research periods lasting from a few days to a few weeks, that students can join whenever they want.
Through the back-office portal, the research team can open and close challenges without any technical intervention.
Challenges as research units
Challenges are research periods lasting from a few days to a few weeks, that students can join whenever they want.
Through the back-office portal, the research team can open and close challenges without any technical intervention.
Challenges as research units
Challenges are research periods lasting from a few days to a few weeks, that students can join whenever they want.
Through the back-office portal, the research team can open and close challenges without any technical intervention.
GPS tracking of mobility

Students are asked only within rotating time windows, to distribute data evenly across the week instead of gathering it all at the same moment.
Cloaking parameters are adjustable from the panel and synced with the app at every new challenge.
GPS tracking of mobility
Students are asked only within rotating time windows, to distribute data evenly across the week instead of gathering it all at the same moment.
Cloaking parameters are adjustable from the panel and synced with the app at every new challenge.

GPS tracking of mobility
Students are asked only within rotating time windows, to distribute data evenly across the week instead of gathering it all at the same moment.
Cloaking parameters are adjustable from the panel and synced with the app at every new challenge.

Weekly surveys and spot surveys
They are created and scheduled directly from the back office and linked to the Qualtrics platform already in use at the University.
Weekly surveys and spot surveys
They are created and scheduled directly from the back office and linked to the Qualtrics platform already in use at the University.
Weekly surveys and spot surveys
They are created and scheduled directly from the back office and linked to the Qualtrics platform already in use at the University.
Points and leaderboard

Every completed activity awards points that feed the leaderboard, keeping participation alive beyond the first day.
Points and leaderboard
Every completed activity awards points that feed the leaderboard, keeping participation alive beyond the first day.

Points and leaderboard
Every completed activity awards points that feed the leaderboard, keeping participation alive beyond the first day.

Numbers aside, the University obtained longitudinal data on student mobility that a traditional questionnaire cannot provide, while respecting GDPR with anonymization that happens before the data ever leaves the phone.
The first PoC had to answer one question only: does the battery hold up?
The project started with a discovery to map the research team’s needs, regulatory constraints, and students’ expectations around privacy and usability.
Then a technical PoC focused on two critical points: battery endurance during background tracking and data anonymization.
Development continued in iterative cycles, with progressive releases that let us test individual features and gather feedback along the way. Before rollout, a round of user testing with a small group of researchers and volunteer students refined onboarding, push notifications, and location permissions.
The work also opened two paths that had never been taken at the University. Consent for real-time tracking was built together with the DPO, and remains a reference for similar cases today. The same goes for the prize rules tied to the challenges: they didn’t exist before, and are now a reusable procedural base for anyone who wants to do something similar.

There was always a lot of collaboration throughout the journey. Plenty of willingness to revisit early choices as well.
This experience created a case that can also help anyone who wants to do something similar — including on the procedural side.
Cloud architecture and in-app privacy-by-design
On the cloud side
Directus acts as the headless backend, deployed on ECS Fargate in serverless mode: no servers to manage, automatic scaling, and costs tied to real usage. The database is an Aurora PostgreSQL serverless instance with encryption at rest.
The architecture is zero-trust between components, with university SSO authentication and all communications over HTTPS/TLS.
The distinctive choice: anonymized GPS data never passes through our backend. The app sends it directly to Qualtrics as answers to dedicated technical surveys, in GeoJSON format — a smaller attack surface and simpler GDPR compliance.
Every Monday at 3 a.m. a scheduled job regenerates the tracking windows assigned to students, keeping data distribution even across the week.
On the app side
App built in Flutter, a single codebase for iOS and Android. Tracking combines the GPS signal with accelerometer and motion sensors to estimate the transport mode used.
The spatial cloaking algorithm runs entirely on-device: every GPS point becomes a polygonal area generated from random points distributed between 200 and 500 meters, before the data ever leaves the phone. Temporal sequence and transport mode stay intact, so scientific value for the research is preserved.