# Rescuelog: A Shiny (and ODK) Based Monitoring System for Lifeguards

David Carayon

► To cite this version:

David Carayon. Rescuelog: A Shiny (and ODK) Based Monitoring System for Lifeguards. Shiny In Production, Jumping Rivers, Oct 2025, Newcastle Upon Tyne, United Kingdom. hal-05312032

HAL Id: hal-05312032

https://hal.inrae.fr/hal-05312032v1

Submitted on 13 Oct 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
Rescuelog: A (and ) Based
Monitoring System for Lifeguards
Insights from Southwest France

<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /></figure>

David CARAYON

Database administrator (DBA)

French National Research Institute for Agriculture,
Food and Environment (INRAE)
# Planning a trip to SW France 😂?

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>
# Beautiful... but dangerous 😞

<figure><img src="image_9.png" /><figcaption>(a)</figcaption></figure>

<figure><img src="image_10.png" /><figcaption>(b)</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>(c)</figcaption></figure>

* One of the most dangerous coasts in the world (Castelle et al. 2019) : heavy rip current, shore break

* Surveillance mainly during summer : Thousands of rescues each year

* 20 to 30 fatal drownings each year

<figure><img src="image_12.png" /></figure>
# The challenge of data collection

<figure><img src="image_13.png" /></figure>

* Lifesaving activity was collected on paper

* A pain for lifeguards

* So much precious data thrown away

* Digitalised data collection -> Better reporting, better science

<figure><img src="image_14.png" /></figure>
# Offline surveys with Shiny

<figure><img src="image_15.png" /></figure>

**Colleague**: "Hey David, could you build a Shiny app to collect all this data, directly on the beach, without any network connection, to allow easy reporting AND predictive models using R ?"

<figure><img src="image_16.png" /></figure>

<figure><img src="image_17.png" /></figure>
# Offline surveys with Shiny

<figure><img src="image_18.png" /></figure>

**Colleague**: "Hey David, could you build a Shiny app to collect all this data, directly on the beach, without any network connection, to allow easy reporting AND predictive models using R ?"

<figure><img src="image_19.png" /></figure>

<figure><img src="image_20.png" /></figure>

**Me**: "Sorry, I'm not ThinkR... let's find something else 😳"

<figure><img src="image_21.png" /></figure>
# Meet Open Data Kit 😊

<figure><img src="image_22.png" /></figure>

* Open-source field data collection (works fully offline)

* Self-hosted deployment

* Easy data entry: only an Android device needed

<figure><img src="image_23.png" /></figure>

* Database-ready export formats

* Integration with R and Python

<figure><img src="image_24.png" /></figure>

<figure><img src="image_25.png" /></figure>
# How ODK works

<figure><img src="image_26.png" /></figure>
Excel ?! 😞 Let's stick to R with {ODKBuildR}

<figure><img src="image_27.png" /></figure>

ODKBuildR GUI - Work in Progress

github.com/davidcarayon (coming soon)

<figure><img src="image_28.png" /></figure>
# Rescuelog pipeline : ODK Component

<figure><img src="image_29.png" /></figure>

* **80+ beaches equipped with Android devices**

* **Lifesavers on duty** - data that saves lives

* **Asynchronous uploads to ODK Central (INRAE Datacenter)**

<figure><img src="image_30.png" /></figure>

<figure><img src="image_31.png" /></figure>
# Rescuelog pipeline : Fueling the database

<figure><img src="image_32.png" /></figure>
# Rescuelog pipeline: Research & predictive models

<figure><img src="image_33.png" /></figure>

* **Predictive workflow:** interventions forecasted from weather & ocean data

* **Decision support** for lifesavers & emergency services

* **Integrated predictions** directly in our Shiny app

<figure><img src="image_34.png" /></figure>
# Rescuelog pipeline : Shiny on SK8

<figure><img src="image_35.png" /></figure>

Learn more about SK8 :

<figure><img src="image_36.png" /></figure>

<figure><img src="image_37.png" /></figure>
# Rescuelog pipeline : The App

https://rescuelog.sk8.inrae.fr

* Secure access: password-based authentication with {shinymanager}

* Robust architecture with {golem}

* Modern UI using {bslib} and info boxes

* Fresh data: database query triggered at login

* Key features: daily & weekly statistics

<figure><img src="image_38.png" /></figure>

<figure><img src="image_39.png" /></figure>

<figure><img src="image_40.png" /></figure>
# Rescuelog pipeline : app features

<figure><img src="image_41.png" /></figure>

Plots, tables, exploration widgets, interactive maps

<figure><img src="image_42.png" /></figure>

Quarto branded reports

<figure><img src="image_43.png" /></figure>

BRAND.YML
Two years of statistics

<figure><img src="image_44.png" /></figure>

Submissions each year
15 000+

<figure><img src="image_45.png" /></figure>

Beaches
80+

<figure><img src="image_46.png" /></figure>

People reached through
interventions
150 000+

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>

* **Broad adoption** in South-West France (ODK forms & Shiny app)

* **Close collaboration** between lifeguards and researchers

* **Strong engagement:** lifeguards actively contribute feedback

* **Fully open-source** workflow, easy to replicate anywhere

<figure><img src="image_49.png" /></figure>
# Take home message : The {ShinyODK} framework

<figure><img src="image_50.png" /></figure>
Thank you!

<figure><img src="image_51.png" /><figcaption>↑ French Poster ↑</figcaption></figure>

@ david.carayon@inrae.fr

<figure><img src="image_52.png" /></figure>

<figure><img src="image_53.png" /></figure>