Intercode Documentation

website·Indexed 33 days ago

https://intercode.interactiveliterature.org

Technical documentation for Intercode, featuring a comprehensive guide to Liquid templates, including custom drops, filters, and tags for convention management, as well as GraphQL type definitions for notification sources and other system objects.

Tokens
135.9K
Snippets
791
Records
1.6K
Agent score
50%

What's inside Intercode

  1. Overview of Intercode convention management software

    Intercode is a web application designed for conventions to serve as a public-facing website, automate attendee signup and payment, and streamline business processes for convention staff.
  2. Overview of Intercode convention management software

    Intercode is a web application designed for managing conventions. It provides integrated functionality for content management, attendee registration, payment processing, and event proposal handling.
  3. Overview of Liquid template language in Intercode

    Intercode utilizes the Liquid template language to allow convention admins to create dynamic, user-tailored content. It supports all standard Liquid filters, tags, and blocks as defined in the official Liquid documentation. Additionally, Intercode provides custom extensions specifically for accessing data regarding conventions, events, and users within CMS templates. These extensions include custom variables, blocks, drops, filters, and tags.
  4. Overview of the Intercode GraphQL API

    Intercode provides a GraphQL API used by the Intercode platform and third-party applications. The API supports two primary types of operations: queries (for fetching data) and mutations (for modifying data). The schema consists of standard GraphQL types including scalars, objects, enums, interfaces, unions, and input objects.
  5. Event GraphQL Object Reference

    The Event object represents an event at a convention. It contains details about the event's description, timing, registration, and associated convention.
    type Event {
      admin_notes: String
      age_restrictions: String @deprecated
      author: String
      bucket_ids_with_pending_signups_or_requests: [ID!]!
      bucket_keys_with_pending_signups_or_requests: [String!]! @deprecated
      can_play_concurrently: Boolean!
      con_mail_destination: String
      content_warnings: String
      convention: Convention!
      created_at: Date
      current_user_form_item_viewer_role: FormItemRole!
      current_user_form_item_writer_role: FormItemRole!
      description: String
      description_html: String
      email: String
      event_category: EventCategory!
      form: Form
      form_response_attrs_json(itemIdentifiers: [String!]): Json
      form_response_attrs_json_with_rendered_markdown(itemIdentifiers: [String!]): Json
      form_response_changes: [FormResponseChange!]!
      id: ID!
      images: [ActiveStorageAttachment!]!
      length_seconds: Int!
      maximum_event_provided_tickets_overrides: [MaximumEventProvidedTicketsOverride!]!
      my_rating: Int
      organization: String
      participant_communications: String
      private_signup_list: Boolean
      provided_tickets: [Ticket!]!
      registration_policy: RegistrationPolicy
      run(id: ID): Run!
      runs(excludeConflicts: Boolean, finish: Date, start: Date): [Run!]!
      short_blurb: String
      short_blurb_html: String
      slots_limited: Boolean
      status: String
      team_members: [TeamMember!]!
      ticket_types: [TicketType!]!
      title: String
      total_slots: Int
      url: String
    }
  6. Understand the Convention object in Intercode

    In the Intercode GraphQL schema, a Convention represents a website hosted by Intercode. While named 'Convention' for historical reasons, it is functionally a 'web site'. Depending on the site_mode configuration, a Convention can represent:

    • A real-world convention (most common).
    • A single event (site_mode set to single_event).
    • A series of events over time (site_mode set to event_series).
  7. Use the CouponsPagination object for coupon pagination

    The CouponsPagination object implements the PaginationInterface and is used to retrieve a paginated list of coupons. It provides metadata about the current page, the total number of entries, and the total number of pages available.
    type CouponsPagination implements PaginationInterface {
      current_page: Int!
      entries: [Coupon!]!
      per_page: Int!
      total_entries: Int!
      total_pages: Int!
    }
  8. Access fields of the SignupMoveResultDrop

    The SignupMoveResultDrop provides information about a signup that has been automatically moved from one state or bucket to another. It includes details about the current and previous bucket assignments and the state transition of the signup.
    {% # Example usage of SignupMoveResultDrop fields %}
    Signup: {{ signup.name }}
    New State: {{ state }}
    Previous State: {{ prev_state }}
    New Bucket: {{ bucket_name }}
    Previous Bucket: {{ prev_bucket_name }}
  9. Reference the Ticket GraphQL object fields

    The Ticket object represents a ticket entity in the system. It contains metadata about the ticket's creation, ownership, and its relationship to conventions, events, and user profiles.
    type Ticket {
      convention: Convention!
      created_at: Date!
      id: ID!
      order_entry: OrderEntry
      provided_by_event: Event
      run: Run
      ticket_type: TicketType!
      updated_at: Date!
      user_con_profile: UserConProfile!
    }
  10. Access convention and organization data in templates

    Global variables are available to provide context about the current convention or a list of all entities in the Intercode instance.
    <!-- convention (ConventionDrop): Present only within a convention site -->
    Hello and welcome to {{ convention.name }}!
    
    <!-- conventions (Array<ConventionDrop>): All conventions in this instance -->
    <!-- organizations (Array<OrganizationDrop>): All organizations in this instance -->
  11. CmsParent GraphQL Interface Overview

    The CmsParent interface represents a website managed by Intercode. It serves as the primary container for CMS content, including pages, partials, files, layouts, variables, content groups, and user-defined GraphQL queries. Most CmsParent instances are convention-specific and scoped to a domain name, while the root site handles requests where no convention is associated with the domain.
    interface CmsParent {
      id: ID!
      cmsPages: [Page!]!
      cmsPartials: [CmsPartial!]!
      cmsFiles: [CmsFile!]!
      cmsLayouts: [CmsLayout!]!
      cmsVariables: [CmsVariable!]!
      cmsContentGroups: [CmsContentGroup!]!
      cmsGraphqlQueries: [CmsGraphqlQuery!]!
      cmsNavigationItems: [CmsNavigationItem!]!
      defaultLayout: CmsLayout!
      rootPage: Page!
    }
  12. Use the UserSignupConstraints GraphQL object

    The UserSignupConstraints object provides information about the signup limits and current signup status for a user at a particular convention. It includes the current count of signups, whether the user has reached their maximum limit, and a reference to the associated user convention profile.
    type UserSignupConstraints {
      at_maximum_signups: Boolean!
      current_signup_count: Int!
      user_con_profile: UserConProfile!
    }