📗
UpGrade Platform - Documentation
6.1
6.1
  • UpGrade Overview
  • Creating an Experiment
    • Unit of Assignment
    • Simple Experiment
    • Factorial Experiment
    • Inclusion and Exclusion
    • Schedule and Post-Rule
    • Exporting Experiment Data and Design
  • Creating a Feature Flag
  • Working with Segments
  • How UpGrade Works
  • Developer Guide
    • ⚡Quick Start: Running UpGrade Locally with Docker
    • ⚡Quick Start: Running locally w/o Docker (on MacOS or Linux)
    • UpGrade + AdapComp (Mooclet) in Docker
    • 🚶‍♀️Walkthroughs
      • Your Application and UpGrade
      • Example 1: A Quiz Web App
      • Example 2: An Online Math Game
    • 📚Reference
      • API
      • Client Libraries
        • TypeScript / JS
          • Class: UpgradeClient
          • Class: Assignment
          • SDK Interfaces
            • Interface: IMetric
            • Interface: IExperimentUser
            • Interface: IExperimentUserAliases
            • Interface: ILog
            • Interface: IMarkExperimentPoint
            • Interface: IMetric
            • Interface: IRequestOptions
            • Interface: IResponse
            • Interface: IUser
            • Interface: IUserGroup
      • Environment Variables
        • Frontend Environment
        • Backend Environment
      • Context Metadata
      • Metrics
      • Setting up Google-Auth
      • API Authorization
      • Data Architecture
    • 👨‍💻Contributing Code
      • Branching Workflow (Git-Flow)
      • Pull Request Expectations
    • 😅Troubleshooting
      • Relation ‘experiment_condition’ already exists
      • User not found. Authorization error
      • Token is not present in the request header
      • nodemon exits without explanation
      • Unable to find New Relic module configuration
      • No email received for export data
      • Opening a new tab in UpGrade prompts for re-authorization
      • Error: Cannot find module 'upgrade_types' (or a type from 'upgrade_types' does not exist)
  • Glossary
Powered by GitBook
On this page

How UpGrade Works

PreviousWorking with SegmentsNextDeveloper Guide

The diagram below gives a highly simplified overview of how UpGrade interacts with an EdTech application:

Here is the key idea: Every place in the code where we can randomly show learning experiences to the users becomes a decision point. At this decision point, we send the user's ID and ask it to assign a condition to that user ID. Based on the condition returned by UpGrade, we can give the appropriate experience to the user.

Once the user has seen version A or B of a learning experience, we can let the UpGrade know that they have seen it by calling a markExperimentPoint routine.

UpGrade also tracks the outcome metrics of users and lets us analyze these metrics for users in different conditions. We can periodically send the user's log data to UpGrade by calling the log function.

// Some code