---
# System prepended metadata

title: canvas DataVisualization - canviz?
tags: [EDWORKS, HuLAR]

---


# canvas DataVisualization - canviz?
###### tags: `HuLAR` `EDWORKS`

Two ways to fetch data from canvas 
Canvas Data API 
Canvas REST API 

Develop a LTI where user can choose between realtime data and data dumps

CANVAS DATA CLI 
 https://community.canvaslms.com/docs/DOC-6600-how-to-use-the-canvas-data-cli-tool
 
 
 TO scrape :
Use Canvas API to scrape the discussion topic, containing all entries, their authors, and their message bodies. 

Add story for administrating the stop-words.

Data visuals :D3js
> example: https://github.com/SeregPie/VueWordCloud


An LTI for Discussion analytics to display data visuals

Two issues are shown to user :
- Participation 
  a pie chart representing total number of unique participants as students with entries in discussion topic against each week 
- Concept
  a word cloud for most used concept(top 30 words)
  
###### Detailed Participation view :
- List of students containing the following attributes,
    student_number
    Names
    No of connections
    No of posts
    Each column has a possiblity to sort in asc/desc.
- a sociogram of who each student has interacted with during this week (middle).
- When clicking on a name in list on the left hand side all the posts related to that connection surface in a list (on the right hand side).
- When clicking on a connection all the posts related to that connection surface in a list (on the right hand side).
- When clicking on a post on the right hand side you go that particular post (hyperlinked).	
- The teacher can navigate from this week to previous week and next week. 

###### Concept view 
- List of most used concepts for each week 
- on click of a item in a list , all posts related to the concept is populated on right hand side where the concept is marked with a background color 
- on click of the post takes to the particular post.
- on click of administer button navigates to administer words page.
###### Administer view 
- a text area to enter words which is used to delete words in concept list. 

Data is fetched from Canvas through Canvas REST API and sent to front End .
Front end process the data through D3js to present the data visuals . 

Data Model :
conceptmodel :

````
const conceptSchema = new mongoose.Schema({
  conceptId: { type: mongoose.Schema.ObjectId, ref: "consentSet" },
  courseId: { type: String },
  user: {
    oauthId: { type: String },
    fullName: { type: String },
    canvasId: { type: String },
    mail: { type: String }
  },
  wordlists: {type: Array},
  date: {}
});

````


front-end store : 
- Participation store
- concept store
 
 Issues :
To find a way to process the dumps and store in LRS (using xAPI standard).
