Overview
metasurvey includes a Shiny web application for interactively exploring, searching, and managing recipes and workflows. The application connects to the metasurvey API to display community-contributed recipes, or works in offline mode with built-in sample data.
Launching the application
library(metasurvey)
# Open in your default browser
explore_recipes()
# Or specify host and port
explore_recipes(port = 3838, host = "127.0.0.1")The explore_recipes() function starts the Shiny
application and opens it in the browser. No additional configuration is
needed: the application automatically connects to the production
API.
Interface navigation
The application has three main tabs in the top navigation bar:
Recipes tab
The Recipes tab is the main entry point. It displays a searchable grid of published recipes, each presented as a card with:
- Name and edition as metadata
- Description (truncated to two lines)
- Category tags with colored badges (Labor Market, Income, Education, Health, Demographics, Housing)
-
Certification level indicated by the card header
color:
- Indigo = Official
- Emerald = Reviewed
- Slate = Community
- Download count and a “View” button
Search and filtering
The top of the Recipes tab offers four filters:
| Filter | Options | Purpose |
|---|---|---|
| Search | Free text | Searches recipe name and description |
| Survey type | ECH, EAII, EPH, EAI | Filter by survey |
| Category | Labor Market, Income, Education, Health, Demographics, Housing | Filter by topic |
| Certification | Official, Reviewed, Community | Filter by trust level |
Filters are applied client-side for instant results. Use the refresh button to reload data from the API.
Statistics row
Below the filters, three statistics boxes summarize the current data:
- Total recipes in the registry
- Official recipes with institutional certification
- Total downloads across all recipes
Recipe detail modal
Click “View” on any recipe card to open a detail modal showing:
- Metadata: name, description, edition, survey type
- Author information: creator name, institution, trust level
- Input variables: what the recipe expects to find in the survey data (displayed as chips)
- Output variables: what the recipe creates (displayed as chips)
-
Pipeline visualization: interactive step graph (if
the
visNetworkpackage is installed) - Dependent recipes: other recipes this one depends on (with navigation links)
- Referencing workflows: workflows that use this recipe (with a link to navigate to the Workflows tab)
- ANDA metadata: variable labels from the INE data catalog, when available (unofficial integration; verify against the official codebook)
Workflows tab
The Workflows tab displays published estimation workflows. Each workflow card shows the estimation type (Annual, Quarterly, Monthly) and the recipes it references.
Workflows use the same search and filtering interface as recipes. The detail modal shows:
- All estimation calls (
svymean,svytotal,svyratio,svyby) presented as a visual timeline - Cross-references to the recipes used for data preparation
- Click a referenced recipe to navigate directly to its detail
Cross-navigation
Recipes and workflows are linked bidirectionally:
- From a recipe detail, click a referencing workflow to go to the Workflows tab and open that workflow’s detail
- From a workflow detail, click a referenced recipe to return to the Recipes tab and open that recipe’s detail
This allows tracing the complete analysis pipeline: from data transformation (recipe) to estimation (workflow).
Profile tab
The Profile tab changes based on the authentication state:
Before logging in: displays a login/registration form with two sub-tabs:
- Login: email and password
- Register: name, email, password, account type (Individual, Institutional Member, or Institution)
After logging in: displays the profile with:
- Name, account type, trust level, email, and institution
- My Recipes button to view published recipes
- API Token section to generate a long-lived token for use in scripts
- Logout button
Generating an API Token
From the Profile tab, click “Generate API Token” to create a 90-day token for use in R scripts:
# Use the token generated from the app
Sys.setenv(METASURVEY_TOKEN = "your-token-here")
# Now API calls work without interactive login
recipes <- api_list_recipes(survey_type = "ech")This is useful for automated scripts and CI/CD pipelines.
Offline mode
If the API is unavailable, the application automatically switches to offline mode using built-in sample data. This includes 13 sample recipes and 6 sample workflows covering common ECH use cases:
- Labor market indicators
- Income distribution and poverty
- Education and health coverage
- Demographics and housing
- Innovation indicators (EAII)
Offline mode is useful for demonstrations and for exploring the interface without network access.
Docker deployment
For production deployment or team-internal use, the application includes a Dockerfile:
# Build the image
docker build -t metasurvey-shiny inst/shiny/
# Run on port 3838
docker run -p 3838:3838 \
-e METASURVEY_API_URL="https://metasurvey-api-production.up.railway.app" \
metasurvey-shinyThe METASURVEY_API_URL environment variable configures
which API the application connects to. It can point to a self-hosted
instance.
Next steps
- API and Database Reference – Technical details about the API endpoints and MongoDB schema
- Creating and Sharing Recipes – Build recipes programmatically and publish them
-
Estimation
Workflows – Compute weighted survey estimates with
workflow()