On this page:
Congame
8.14

Congame🔗

Marc Kaufmann <marc@trichotomy.xyz>

Congame is a platform for designing and deploying web-based research studies, and is the best experimental economics software written in Racket.

Once deployed, a Congame study becomes a web application. People can use their browsers to enroll in the study and participate by walking through each of the study’s steps, providing responses to questions and even interacting in controlled ways with other participants. Congame collects the responses and provides the data to study authors for further analysis.

Congame includes:

Installation: See Installing Congame and Conscript.

Getting help: If you have questions about Congame or about this documentation, create a post in the Discussions area of Congame’s GitHub repository, and the authors will respond.

    1 Introduction: a quick tour using Conscript

      1.1 First example: the simplest study

        1.1.1 Creating a new file

        1.1.2 Writing the simplest study code

        1.1.3 Test-driving the simplest study

          1.1.3.1 Aside: one-time connection setup

          1.1.3.2 Make an instance and enroll

      1.2 Second example: addings steps and getting input

        1.2.1 Being a good provider

        1.2.2 Review: the code so far

        1.2.3 Test-driving the age study

        1.2.4 Reviewing collected responses

      1.3 Wrapping it up

    2 Overview

      2.1 Help and Support

      2.2 Programming in Racket

      2.3 Basic Congame Concepts

      2.4 Web Pages

      2.5 “Scribble Syntax” in Conscript

      2.6 Markdown in Scribble syntax in Racket

    3 Conscript

      3.1 Installing Congame and Conscript

        3.1.1 Prerequisites

          3.1.1.1 Install Racket

          3.1.1.2 Install Docker

        3.1.2 Download Congame and Conscript

        3.1.3 Install the packages

        3.1.4 Build the Docker container

        3.1.5 Normal use: starting, stopping, and logging in

        3.1.6 Updating the software

      3.2 Conscript tutorial: the Prisoner’s Dilemma

        3.2.1 Modeling our data

          3.2.1.1 Understanding variables and scope

          3.2.1.2 Prisoner’s Dilemma variables

        3.2.2 The “continue” step

        3.2.3 Pairing up Prisoners

        3.2.4 Making choices

        3.2.5 Sentencing time

        3.2.6 Testing the Prisoner’s Dilemma

      3.3 Conscript Style Guide

        3.3.1 Study provides

        3.3.2 Indentation

      3.4 Conscript Cookbook

        3.4.1 How to add links

        3.4.2 How to display monetary amounts

      3.5 Conscript Reference

        3.5.1 Core

          3.5.1.1 Local Testing

        3.5.2 Page Content

          3.5.2.1 Markdown

          3.5.2.2 HTML

          3.5.2.3 Forms

          3.5.2.4 Resources

        3.5.3 Survey Tools

        3.5.4 Matchmaking

        3.5.5 Admin

    4 The Congame Server

      4.1 Installing and Setting up Congame servers

        4.1.1 Congame Prerequisites

          4.1.1.1 Preparing PostgreSQL databases

        4.1.2 Installing Congame Packages

        4.1.3 Environment setup

        4.1.4 Starting the server

        4.1.5 Adding an admin user

        4.1.6 Installing study packages

        4.1.7 Clearing study caches

      4.2 Congame Configurations

        4.2.1 Basic setup: single congame server

        4.2.2 Privacy-first setup

      4.3 Congame tutorial:

      4.4 Congame Reference

        4.4.1 Studies and Steps

          4.4.1.1 Steps

          4.4.1.2 Step Widgets

        4.4.2 Transition Graphs

        4.4.3 Bots

          4.4.3.1 Making Bots

          4.4.3.2 Bot Actions

          4.4.3.3 Running Bots From Studies

      4.5 Deploying Congame Servers in Production

    5 (Original Docs)

      5.1 Introduction (Original)

        5.1.1 Basic Setup: single congame server

        5.1.2 Privacy-Friendly Setup

        5.1.3 How to configure Identity Server with SMTP Proxy

      5.2 How Tos (Original)

        5.2.1 How to add a new study

        5.2.2 How to bulk archive study instances

        5.2.3 How to pass values from a substudy to its caller

        5.2.4 Scheduling tasks at most once

        5.2.5 Conscript Style Guide (Original)

      5.3 Multiple-Person Review Study

      5.4 Conscript (Original)

        5.4.1 Goals and Philosophy

        5.4.2 Grammar

        5.4.3 How Tos

          5.4.3.1 How to add buttons to jump to various pages

          5.4.3.2 How to have a form input with multiple checkboxes

          5.4.3.3 Displaying results from previous forms

          5.4.3.4 How to add the @ sign on a page

          5.4.3.5 How to add a CSS class to an HTML element

          5.4.3.6 How to add a form with many sliders

          5.4.3.7 How to add a table to a page

          5.4.3.8 How to customize the text of a submit button

          5.4.3.9 How to add blank lines

          5.4.3.10 How to provide error message when wrong radio button is chosen

          5.4.3.11 How to display radio buttons on a single line

          5.4.3.12 Page with dice roll button

          5.4.3.13 How to select a random value from a list of items

          5.4.3.14 How to generate a random number

          5.4.3.15 How to have radio buttons with images

          5.4.3.16 How to add a Radio Button with a button for an Other option

          5.4.3.17 How to have a select button with a default option that cannot be submitted

          5.4.3.18 How to add a timer to a page

          5.4.3.19 How to add a timer that spans multiple pages

          5.4.3.20 How to display a waiting page until some condition is met

          5.4.3.21 How to repeat a task until a timer runs out

          5.4.3.22 How to reuse similar steps with different roles

      5.5 Conscript Tutorial

        5.5.1 Create researcher account

        5.5.2 Syntax Hightlighting and Checking in DrRacket

        5.5.3 The first study

          5.5.3.1 Create a New Study

          5.5.3.2 Create a New Instance of the Study

        5.5.4 Multi-Step Studies

          5.5.4.1 How to write a simple form

          5.5.4.2 How to get and use stored data

          5.5.4.3 How to sequence multiple steps

          5.5.4.4 Putting it all together

        5.5.5 Using Racket functions

        5.5.6 Input Types

        5.5.7 Writing pages in Markdown

        5.5.8 Reusing steps and whole studies

        5.5.9 Other inputs: radio, select

        5.5.10 CSS with #:style

        5.5.11 Randomizing participants into treatments

          5.5.11.1 Random Assignment to Additional Groups

        5.5.12 How to add Images

        5.5.13 Basic Arithmetic

        5.5.14 Studies with Logic

          5.5.14.1 Conditions

      5.6 Reference (Original)