# Developer Guide

- [Quick Start: Running locally w/o Docker (on MacOS or Linux)](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/quick-start-running-locally-w-o-docker-on-macos-or-linux.md): This guide walks you through setting up the UpGrade locally using Node.js and PostgreSQL, without Docker. The steps are intentionally simple and linear so that anyone can complete the setup smoothly.
- [Quick Start: Running UpGrade with Docker (on macOS or Linux)](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/quick-start-running-upgrade-with-docker-on-macos-or-linux.md): This guide walks you through running UpGrade locally using Docker. The steps are simple and consistent so you can set up the backend, frontend, and database quickly.
- [UpGrade + AdapComp (Mooclet) in Docker](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/upgrade-+-adapcomp-mooclet-in-docker.md)
- [Walkthroughs](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/walkthroughs.md): Step by step guides
- [Your Application and UpGrade](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/walkthroughs/your-application-and-upgrade.md)
- [Example 1: A Quiz Web App](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/walkthroughs/example-1-a-quiz-web-app.md)
- [Example 2: An Online Math Game](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/walkthroughs/example-2-an-online-math-game.md)
- [Reference](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference.md)
- [API](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/api-documentation.md): Swagger API details
- [Client Libraries](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries.md)
- [TypeScript / JS](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js.md)
- [Class: UpgradeClient](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/class-upgradeclient.md)
- [Class: Assignment](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/class-assignment.md)
- [SDK Interfaces](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces.md)
- [Interface: IMetric](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-imetric.md)
- [Interface: IExperimentUser](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-iexperimentuser.md)
- [Interface: IExperimentUserAliases](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-iexperimentuseraliases.md)
- [Interface: ILog](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-ilog.md)
- [Interface: IMarkExperimentPoint](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-imarkexperimentpoint.md)
- [Interface: IMetric](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-imetric-1.md)
- [Interface: IRequestOptions](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-irequestoptions.md)
- [Interface: IResponse](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-iresponse.md)
- [Interface: IUser](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-iuser.md)
- [Interface: IUserGroup](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/client-libraries/typescript-js/sdk-interfaces/interface-iusergroup.md)
- [Environment Variables](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/environment-variables.md): Configuration Details
- [Frontend Environment](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/environment-variables/frontend-environment.md): Notes on frontend config options
- [Backend Environment](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/environment-variables/backend-environment.md): Details for Backend Configuration
- [Context Metadata](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/context-metadata.md): CONTEXT\_METADATA env var explained
- [Metrics](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/metrics.md): METRICS env var explained
- [Setting up Google-Auth](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/setting-up-google-auth.md): Steps to create a Google Client ID to allow UI login / authenticated endpoints.
- [API Authorization](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/api-authorization.md): Technical overview of setting up JWT-based auth for UpGrade endpoints
- [Caching](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/caching.md)
- [Data Architecture](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/reference/data-architecture.md): Data Tables and their description
- [Contributing Code](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/contributing-code.md)
- [Branching Workflow (Git-Flow)](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/contributing-code/branching-workflow-git-flow.md)
- [Pull Request Expectations](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/contributing-code/pull-request-expectations.md)
- [Troubleshooting](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution.md)
- [Relation ‘experiment\_condition’ already exists](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/relation-experiment_condition-already-exists.md)
- [User not found. Authorization error](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/user-not-found.-authorization-error.md)
- [Token is not present in the request header](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/token-is-not-present-in-the-request-header.md)
- [nodemon exits without explanation](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/nodemon-exits-without-explanation.md)
- [Unable to find New Relic module configuration](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/unable-to-find-new-relic-module-configuration.md)
- [No email received for export data](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/no-email-received-for-export-data.md)
- [Opening a new tab in UpGrade prompts for re-authorization](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/opening-a-new-tab-in-upgrade-prompts-for-re-authorization.md)
- [Error: Cannot find module 'upgrade\_types' (or a type from 'upgrade\_types' does not exist)](https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide/faq-error-resolution/error-cannot-find-module-upgrade_types-or-a-type-from-upgrade_types-does-not-exist.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://upgrade-platform.gitbook.io/upgrade-documentation/developer-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
