Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This document describes about Discussion Forum architecture

Table of Contents

Background:

Problem Statement:

...

  1. Categories list

    1. Category list with details

    2. Category list with only name(as a list)


  2. Topics list

    1. Filter options & search query should be the config for the widget (optional for now)
      Note: Think this can be independent widget itself can be used at any place


  3. Topic thread(with new post, list of posts & reply to post)


  4. Create a Topic

  5. Create Category


  6. Post/Reply

    1. Post card

    2. Replay to post

    3. After posting the reply(expanded view)

...

GroupId or userId either one of these is mandatory.

Use authentication

Description:

Telemetry Events

Description: Telemetry events generated by discussion forum

Event Format:

Code Block
{
    eid: INTERACT,
    edata: {
        id: 'category',
        type: 'CLICK',
        pageid: 'discussion-category',
    },
    context: [
        {
            type: Category
            id: {categoryId}
        },
        {
            type: Topic
            id: {topicId}
        },
        {
            type: Post
            id: {postId}
        },
    ]    
}

Integrating events triggered by the Discussion Library:

Code Block
  import { DiscussionEventsService } from 'discussion-ui';
 
  constructor(private discussionEvents: DiscussionEventsService) { }

  ngOnInit() {
    this.discussionEvents.telemetryEvent.subscribe(event => {
      console.log('telemetryEvent', event);
    });
  }

telemetryEvent:

Code Block
{
    eid: INTERACT,
    edata: {
        id: 'category',
        type: 'CLICK',
        pageid: 'discussion-category',
    },
    context: [
        {
            type: 'Category'
            id: '1'
        }
    ]    
}
Code Block
{
  "eid": "IMPRESSION",
  "edata": {
    "type": "view",
    "pageid": "discussion-home",
    "uri": "/discussion"
  }
}

Related Wiki’s:

Discussion forum as a solution:

Discussions - Solution Design

Discussion forum api's:

Discussions - API Design

How to integrate discussion forum:

Discussion Forum: Integration

Discussion forum telemetry events:

Discussion Forum: Telemetry Events

Discussion forum generalization integration:

Discussion Forum: Generalisation of Course & Groups integration logic