Unterstützen
Zurück zur Projektdatenbank

Von Umfragedaten zu Grafiken: App zur Optimierung von Datenvisualisierungsworkflows

Import/Export, manuelle Datenaufbereitung in Excel und zeitaufwändige Fehlerprüfung: So sah der Datenvisualisierungsprozess bei More in Common bis jetzt aus. Wir entwickeln eine Shiny-App, um diese Arbeitsabläufe zu optimieren und teilweise zu automatisieren.

VisualisierungAutomatisierung Umfrage
Status
Teamauswahl
Projektzeitraum
Mai 2026 – Februar 2027 (geplant)
Partner
More in Common e.V.

More in Common widmet sich ganz dem Thema des sozialen Zusammenhalts. Das Ziel der Organisation ist es, eine Gesellschaft zu fördern, die in ihrem Kern gestärkt ist und in der Lage ist, gemeinsam und widerstandsfähig auf den sozialen Wandel zu reagieren. Für More in Common ist sozialer Zusammenhalt weit mehr als nur ein friedliches und rücksichtsvolles Miteinander – er ist eine Voraussetzung für ein zentrales Merkmal einer lebendigen Demokratie: die Fähigkeit, trotz aller Unterschiede konstruktiv miteinander zu diskutieren. More in Common ist überparteilich und arbeitet mit institutionellen Partnern aus einer Vielzahl von Sektoren zusammen. Die Organisation hat Teams in den Vereinigten Staaten, dem Vereinigten Königreich, Frankreich, Polen, Spanien, Brasilien und Deutschland, die grenzüberschreitend zusammenarbeiten und voneinander lernen.

Homepage

The main project language will be English - that's why this call for application is written in English. German skills are beneficial for understanding the data / UI but can be worked around with using LLMs/translation tools.

The Challenge

More in Common conducts data-driven research to better understand public attitudes and strengthen social cohesion. In collaboration with survey institutes, they regularly collect large-scale survey data. This data is stored and analyzed using Crunch, a platform specialized in survey analysis. While Crunch provides strong analytical capabilities (e.g. cross tables, breakdowns), its data visualization features are limited. This is why the team relies on Flourish to communicate findings.

Currently, creating visualizations in Flourish involves:

  • Exporting aggregated data from Crunch to Excel
  • Manually cleaning and reshaping the data in Excel, especially “longifying” data
  • Uploading data into Flourish
  • Creating, adjusting and customizing visualizations in Flourish
  • Manually checking results for accuracy - accuracy is critical to More in Common and a lot of time is invested in this step

This manual process is very time consuming, error-prone and depends on the skills of a small number of individuals.

The Project

We aim to build a Shiny application that (partially/mostly) automates this workflow — from data extraction to the creation of visualizations.

The tool will:

  • Connect directly to Crunch with the crunchy R package
  • Automatically process and prepare data for Flourish
  • Enable easy creation of high-quality visualizations within the app, using Flourish’s R package
  • Support export to PowerPoint and other formats

The goal is to move from a manual workflow to a reproducible, semi-automated system.

We build on two existing prototypes built by More in Common staff members:

  • Crunch Explorer is a Shiny app that allows users to browse and load datasets from Crunch. It already includes partially functional data preparation that allows them to be readily used for further data visualizations. Code quality is ok, but there are still some bugs with data processing that affect reliability and accuracy of results. Code for general data loading and some of the data wrangling can probably be reused but should be extended with rigorous tests.
  • Chart Maker, a vibe-coded prototype for generating Flourish-style charts. While it offers strong ideas for features and user interface design, the current implementation is inefficient and prone to errors. Code can probably only be reused after critical evaluation.

In addition, More in Common has defined Flourish templates for various chart types that can be used as the default for charts in the Shiny application.

Project Areas

This project includes significant exploratory components, with open questions to be explored and addressed along the way. Instead of fixed work packages, we outline project areas with example tasks, open questions, and potential risks. This gives you the opportunity to explore and shape solutions – within the overall goals and technologies described here.

PA 1: App Design & User Experience

Goal: Design an intuitive tool that fits the research team’s workflows.

Example tasks:

  • Acquire better understanding of data, requirements, needs, and workflows of the More in Common researchers
  • Define interaction patterns and visual design (colors…)
  • Optional: Develop user stories
  • Optional: Create UI mockups (e.g. Figma)

Open questions:

  • What are the most important user workflows?
  • How do More in Common researchers think/work when generating insights/visualizations from data (visualisation-based/slide-based/question-based?)?
  • What filtering options are needed in practice? → Risk: Important filters are missed or too many filters clutter the interface

PA 2: Data Ingestion, Data Processing, Accuracy

Goal: Enable loading of survey data via the Crunch API and ensure clean, accurate, and reproducible data transformations from Crunch data structure to Flourish data structure - each Flourish chart type requires data to be shaped in a specific way.

Example tasks:

  • Evaluate, adapt/extend and integrate code of existing Crunch Explorer prototype
  • Implement user interface
  • Transform data loaded from Crunch into Flourish target shapes for different visualization types.
  • Add statistical configuration options (e.g. survey weights)
  • Ensure correctness of outputs → write tests for data wrangling functions, investigate edge cases.

Open questions and risks:

  • How should large datasets be handled efficiently? → Risk: Poor Performance
  • How complex are statistical configurations (e.g. survey weights)? → Risk: too complex to test for all edge cases and establish confidence in accuracy → researchers still need to check all results manually.

PA 3: Flourish Visualizations in Shiny

Goal: Enable users to create and configure high-quality Flourish visualizations within the app.

Example tasks:

  • Recreate Flourish’ chart-building interface in Shiny
    • Implement different Flourish chart types (~5-10) in Shiny, including defaults for common configurations from More in Common Flourish templates
    • Implement visualization suggestions based on metadata from selected crunch data
    • Implement user interface for adjustments to charts, with sensible / responsive defaults based on data and visualization type

Open questions and risks:

  • Risk: configuration options may differ vastly between chart types → challenge for user interface to remain clean.
  • Open question: in addition to visualization types (bar chart…) in Flourish, More in Common specific categories exist (e.g. based on survey question). How do we integrate them with the more technical view of chart types and represent this in the user interface?
  • Open question: how do data types / survey question types map to visualizations and default configurations? How to best organize and store this information (JSON, Flourish templates, Excel sheet)?
  • Risk: implement too much suggestion/default logic into the application, making it complex and hard to maintain/understand

PA 4: Export & Reproducibility

Goal: Allow users to export and reproduce their work easily.

Example tasks:

  • Export to PowerPoint and other formats (e.g. JSON)
  • Enable multi-slide / multi-visualization workflows

Open questions and risks:

  • How should analyses be stored and shared? Do we need some sort of “state” / “memory” within the app or is this something that is handled outside the application (e.g. a save and reload configuration functionality would be sufficient)? → Risk: if it is necessary that the app has a “state”/”memory”: open how to implement this (database, some sort of Shiny mechanism?)
  • Risk: performance of PowerPoint export (based on experience with prototype)

PA 5: Testing & Iteration

Goal: Continuously improve the tool through user feedback.

Example tasks:

  • Conduct user testing sessions (with Falco and/or other researchers)
  • Identify usability issues
  • Iterate on workflows and features

Open questions and risks:

  • Risk: only Falco as our main project partner regularly tests and sees the app. Less technical researchers only see the app at the end of the project and their needs/input cannot be considered.
  • Open question: how to do this somewhat regularly but not cause too much overhead for volunteers/More in Common?

PA 6: Deployment & Handover

Goal: Ensure the tool can be used and maintained long-term.

Example tasks:

  • Explore deployment options (e.g. Posit, Crunch) together with Falco from More in Common
  • Prepare production setup
  • Write documentation, clean up repository
  • Conduct handover workshop

Open questions and risks:

  • Can crunch hosting be used?
  • If additional resources (see PA 6) are needed: is this something that crunch offers as well?

Impact

This project will:

  • Save researchers significant time by automating manual workflows
  • Reduce dependency on individual technical experts
  • Increase confidence in data accuracy and reproducibility
  • Enable clearer communication of research findings

By improving how data is analyzed and visualized, the tool supports More in Common to inspire better-informed discussions in society and policymaking with the goal of strengthening social cohesion.

Your Team and Your Role

In the Data4Good project with More in Common, you will become part of a team consisting of Falco from More in Common, as well as 3–5 other volunteers from CorrelAid. Together, you can use your skills and potential for a good cause, support a great nonprofit organization, and most importantly: have fun. Here’s what you can expect as a CorrelAid Data4Good volunteer:

  • A place for learning: A CorrelAid project is a great place to share knowledge, learn new skills, or to deepen existing ones and apply them in practice.
  • (Shared) responsibility: Together with your teammates, you take responsibility for the entire project. You are (co-)responsible for specific tasks and outputs, depending on your team role (see below).
  • Support and collaboration: You support each other within the team, coordinate closely, and share knowledge. You can ask for advice in the CorrelAid Slack community. The full-time CorrelAid team is available in the background if problems arise.
  • Flexibility: You can organize your time flexibly and work on the project whenever and wherever you want. You can work independently or meet with teammates for (online) co-working or collaboration.
  • Online communication: You coordinate with other team members via Slack and regularly participate in meetings with your project partners (approximately every 1–3 weeks, depending on the project and phase). Occasionally, additional meetings or coordination with project partners or team members may be necessary.
  • A supportive environment for everyone: CorrelAid’s goal is to ensure that everyone in the community—regardless of background, prior experience, gender, or other personal characteristics—can contribute and grow as a person. A respectful and safe environment is essential for this. Therefore, collaboration within the project team follows the values and principles outlined in the Code of Ethics and Code of Conduct. The Ethics Commission and Community Team provide concrete and enforceable processes to support you if you observe or experience violations of these rules and values during the project.
  • Time commitment: You can expect a time commitment of approximately 4 hours per week.

To help you better assess where you can contribute most effectively with your skills and experience, we outline different team roles below. In the application form, you can select one or more roles that appeal to you.

There are two specific roles that do not require technical knowledge or prior experience:

Team Coordinator: As a team coordinator, you do not need technical skills, but you should be motivated to coordinate and organise teams.

Team Trainee: The team trainee role is for individuals who have little or no technical knowledge but would like to gain technical skills during the project. As a team trainee, you still share responsibility for the project’s success and are responsible for shaping your own learning experience - for example, by collaborating with one of the technical roles.

Role: Volunteer Statistical Integrity and Accuracy

Your responsibility & impact: As the “Statistical Integrity and Accuracy” volunteer, you are responsible for ensuring the accuracy of the data transformations. Thanks to your code and rigid testing of it, More in Common employees are confident in the reliability and accuracy of results and they don’t need to manually double-check individual calculations anymore - valuable time that can be spent on more meaningful and impactful tasks.

Your tasks:

  • You’ll mainly work on project areas 1 (Product Design & User Experience) and 2 (Data Ingestion, Data Processing, Accuracy)
  • Get familiar with typical survey configurations of More in Common (typical weights, cross-tabs etc.) and their statistical parameters
  • Implement functions for loading data from Crunch and transforming them (Crunch format -> Flourish format)
  • Work with More in Common researchers to identify test cases and implement a wide range of tests (e.g. using the testthat R package) to ensure correctness of functions
  • Some Shiny coding: Integrate your functions into the Shiny backend, implement UI for parameters

What you’ll learn:

  • How survey data are used in practice and (statistical) pitfalls when transforming them for analysis
  • Implementing tests for data transformation functions

Your profile:

  • At least beginner to intermediate R skills, particularly tidyverse (dplyr, tidyr) and writing functions
  • Motivation to delve deep into concepts related to survey data (statistics) and think hard about data accuracy
  • Motivation to come up and write a lot of good, meaningful tests to ensure data accuracy (and not simply outsource that to LLMs)
  • Some experience with aggregating data in crosstabs, pivot tables etc. (in R or other languages) and data wrangling (particularly reshaping/pivoting data)
  • Optional: advanced experience with/knowledge of survey data and/or survey statistics (e.g. survey weights)
  • Optional: prior experience with Shiny, Crunch or Flourish

Role: Shiny Developer - Focus Flourish, UI & UX

Your responsibility & impact: As Shiny developer, you are responsible for implementing the vision of the Shiny app, in particular the chart maker. In addition, you are responsible for defining and elaborating the needs of More in Common together with their researchers and mapping that to the layout, design and general structure of the Shiny application (UI). Thanks to your effort, the resulting application is not just a more or less random collection of buttons, tabs and visualizations but is designed for the particular visualization needs & workflows of More in Common researchers (UX).

Your tasks:

  • You develop Shiny code (functions, UI, …) in PA 2-4, depending on your preference and distribution of tasks within the team. You evaluate and adapt code from the prototypes if fit for use.
  • Focus Flourish, UI & UX:
    • Focus on PA3 within Shiny development
    • Familiarise yourself with concepts of UX and associated methods
    • Organize and facilitate workshops and discussions with Falco (and potentially other More in Common researchers) to get a better understanding of product design and user experience (PA 1: App Design & User Experience)
    • Support More in Common to organize templates and information on defaults (“map” survey questions -> visualization types -> configuration defaults)
    • Organise user testing a suitable manner (PA 4: Testing & Iteration)
    • Theming of Shiny app (using themes and/or CSS)

What you’ll learn:

  • How survey data is used in the real world by researchers
  • Designing and developing an application with users in mind
  • Facilitating discussions and workshops surrounding UX and organising user testing sessions

Your profile:

  • You have intermediate (or higher) R skills (writing functions) (“user” & upwards on our scale)
  • You have previous experience with Shiny or a high motivation to learn it
  • You are motivated to look into Shiny themes and customize them with CSS
  • You are motivated to research and delve deeper into topics surrounding UX and app design processes
  • Optional:
    • Experience with using APIs of visualization libraries (e.g. plotly)
    • Experience with UX (research) and methods
    • Experience with CSS

Role: Shiny Developer - Focus Code Quality & Data Flows

Your responsibility & impact: As Shiny developer, you are responsible for implementing the vision of the Shiny app, with a particular focus on the overall technical structure of the app and code quality. In addition, you are responsible for topics of deployment and export. Thanks to your effort and the technical quality of the app, the app can be deployed and maintained by More in Common long term and it contains the features that allows the researchers to create and export helpful outputs (e.g. slide decks) with visualizations.

Your tasks:

  • You develop Shiny code (functions, UI, …) in PA 2-4, depending on your preference and distribution of tasks within the team. You evaluate and adapt code from the prototypes if fit for use.
  • Focus Code Quality and Data Flows:
    • Focus on PA2 and PA4 within Shiny development
    • Research and implement what technical framework works best for the scope and size of the Shiny app (PA 1: App Design & User Experience), e.g. Golem
    • Discuss open questions surrounding export & reproducibility with More in Common, research, explore and test technical approaches (PA 4: Export & Reproducibility)
      • Implement needed export functionality (e.g. PowerPoint export, JSON export)
      • If needed: implement database or other technical solution to give the app a “memory” across different users and sessions
    • Consult More in Common on hosting solutions (e.g. Crunch, Posit) and ensure app can be easily deployed and maintained
    • Work on performance of the app

What you’ll learn:

  • How survey data is used in the real world by researchers
  • Designing and developing an application with users in mind
  • Frameworks and approaches to structuring mid-sized Shiny applications (e.g. Golem)
  • How Shiny apps can store data across user sessions
  • Deployment of Shiny apps

Your profile:

  • You have intermediate (or higher) R skills (writing functions) (“user” & upwards on our scale)
  • You have previous experience with Shiny or a high motivation to learn it
  • You have an affinity for well-structured code and exploring and implementing technical frameworks
  • You are motivated to research and delve deeper into technical details of Shiny such as state management, interface to databases and deployment
  • Optional:
    • Experience with developing larger Shiny applications using frameworks (i.e. more than app.R + R folder)
    • Experience with deployment
    • Experience with integrating R with databases

Role: Team Trainee

As an educational community, it is important to us to provide a space for people who have little or no prior technical knowledge. That is why the team trainee role exists. As a team trainee, you are still co-responsible for the project’s success. More importantly, you are responsible for seeking out your learning experiences. What exactly you do and learn in the project is decided together with the team. The team coordinator supports you in this.

If you belong to a group marginalized in data science (e.g. cis women, trans/nonbinary/inter people, queer people), we would like to encourage you to apply for a regular team role even if you may not meet all the requirements. CorrelAid projects are a great place to take on responsibility, expand your comfort zone, and grow – supported by others and as part of a community.

Role: Team Coordinator

If the “Team Coordinator” role cannot be filled, the tasks will be distributed within the team.

Your responsibility & your impact: You make sure that all project team members work together in a focused, aligned, and motivated way. You help create a space in which everyone can use their volunteer time effectively, have fun, learn, and at the same time bring the project’s vision to life. You will be supported by Leo from the full-time CorrelAid team – he will onboard you into your role before the project and be available as a point of contact throughout the project.

Your tasks:

  • You support the team in distributing, prioritizing, and tackling tasks
  • You keep an overview of project goals and the timeline
  • You keep an eye on the other team members and project partners and act as a point of contact in case of challenges. You help the team trainee orient themselves in the project and find learning opportunities
  • You act as an interface to the full-time CorrelAid team around Leo
  • You co-moderate the project kickoff together with Leo from the full-time team and enable a strong project start. You work with the team to define how you want to collaborate and organize yourselves
  • You plan and moderate regular check-ins – synchronously as meetings or asynchronously via Slack
  • Optional: if you have time, motivation and capacities beyond filling your role as team coordinator, you are free to contribute to or take on project tasks yourself (e.g. writing code, creating visualizations, …). But this is not expected by any means!

What you will learn in the project:

  • Enabling work in an interdisciplinary, volunteer team
  • Finding the balance between structure, self-determination and volunteer work
  • Collaboration with partners from nonprofit organizations
  • Working with project management tools (e.g. GitHub Projects or Trello)

Your profile:

  • You are motivated to organize and facilitate teams or projects
  • You enjoy structuring and enabling collaboration, and you have a good understanding of people and their strengths and needs
  • Optional: prior experience organizing teams, e.g. in other (volunteer) contexts or as an agile coach, scrum master, project manager, or similar

Next Steps & Timeline

  • Until (incl.) Sunday, 26th of April: Apply using the application form
  • Until Wednesday, 29th of April: we’ll let you know if you are part of the project.
  • Starting April 30th: Onboarding
  • Tuesday, May 5th, 18:00 - 20:00: Kickoff with More in Common. Please save the date if possible. The kickoff is important for everyone to have a good start to the project. If you can’t participate, you’ll get an individual onboarding by Leo or by the other team members.
  • Project duration: until February 2027
Newsletter