SlideShare a Scribd company logo
1 of 47
Educator Dashboard 101

                                       Presenter: Takashi Osako
                                         Prepared by: David Wu and Sivan Hermon


                                                           September 29, 2012
                                                             Cambridge, MA


Contains Company Confidential Material – Do Not Disclose
Agenda

 •     Goals for this presentation
 •     Introduction
 •     High-level Architecture
 •     Visualizing Data
 •     Advanced Topics
         o
          Working with the SLC API
         o
          Configuration


Contains Company Confidential Material – Do Not Disclose
Goals

 •     Understanding why Dashboard was built
 •     Give overview of Dashboard functionality
       and architecture
 •     Provide information for developers to find
       their way around the code




Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction

                                        What is the Dashboard?




Contains Company Confidential Material – Do Not Disclose
What is the Dashboard?


     • A highly-configurable reporting and
             visualization tool for students' data,
             provided by the SLC
     •       A web application
     •       A "reference" client application for the
             SLC platform



Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction


       Allows educators to see information
        about their students individually or
        by class, school, and other
        organizational levels.




Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction


       Allows staff (principals, IT admins,
        etc) to see and configure
        information about education
        organizations, schools, and
        students



Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction


       Why is Dashboard a powerful tool for teachers?
       • Education technology is behind the rest of the tech
         world
       • Data is often spread across different applications
       • Allows education leaders to create holistic views of
         student data, for instructional purposes
       • Allows cross-correlations between different student
         data (test scores, grades, attendance)




Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction


       How is Dashboard configurable?
       • Dashboard pages are configurable by individual
         states and districts
       • Waterfall logic - Districts can override state-level
         configurations
       • Real-time - changes are immediately viewable




Contains Company Confidential Material – Do Not Disclose
Dashboard Introduction - Main Modules

     Profiles
     •Student, School, Teacher, Section, Ed-Org
     •Used for navigation and displaying information
     •Multiple pages in a profile
     •Multiple panels in a page


     Dashboard Builder
     •IT admins can modify and configure content of profiles


     Student Search
Contains Company Confidential Material – Do Not Disclose
Live Demo




Contains Company Confidential Material – Do Not Disclose
Extending Dashboard


       Dashboard brings together diverse data,
        giving educators and staff a holistic view
        of their students
       Dashboard is configurable by individual
        states, districts, and ed-orgs




Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture

                                          Architectural Overview




Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture




Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture


     Drivers, Key Concepts
     •Robustness
     •Tested, reliable technologies
     •Familiar languages
     •Approachable, understandable to developers
     •Modularity, separation of layers
     •Performance
     •Ease of build and deploy
     •Cross-platform compatibility


Contains Company Confidential Material – Do Not Disclose
Dashboard Technology


       • Java
       • Spring / Spring Modules
               o
                     Robust, widely-used web app framework
       •     FreeMarker
               o
                     Template for HTML generation
               o
                     Lean, fast
       o
             Maven




Contains Company Confidential Material – Do Not Disclose
Dashboard Technology

       • jQuery/jQuery UI
       • jqGrid
               o
                     Base for client-side grids
               o
                     Easy data binding and customization
       • Bootstrap
       • Raphael
       • Angular.js
               o
                     MVC framework, with templating, 2-way data binding
                     (model <-> view)
               o
                     Non-prescriptive - plays nicely with other frameworks
                     and application code

Contains Company Confidential Material – Do Not Disclose
Dashboard Technology


     Testing Tools
     •JUnit
     •QUnit
     •Cucumber
     •Selenium




Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture




Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture - Java Modules

     How does Dashboard retrieve API data?
     •Controllers
               o
                     Handles incoming requests, calls Managers
     •Layout Assembly
     •Managers
               o
                     Use API Client to retrieve data, perform biz logic (e.g.
                     filtering, aggregation, formatting)
     •API Client
               o
                     Uses the SLC SDK for Java to communicate with API




Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization


        Keep in mind - Education data is grouped into logical
        families
        •student-based
        •section-based
        •school-based
        •etc.


        Remembering this will help you design your
        application, and also navigate the SLC API more
        efficiently

 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization


        The API returns data in its raw form

        The Dashboard presents that data graphically, so that
          it is understandable in a glance
        • e.g. green is good, red needs attention




 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization - Student Profile

      Panel




        Page (Tab)                                          Page (Tab)

         Panel




 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization - Section Profile




                                                            Grid



 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization - Section Profile


                                                     Fuel Gauge Widget   Tear Drop Widget   Colored Text




 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization


      Dashboard pages are assembled from components
      •Layouts
      •Tabs (page)
      •Panels
                o
                      Grids, Tree Grids, etc.
      •Widgets




 Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization


      Layout Assembly
      •Reads JSON configuration files
      •Figures out what panels and pages to display on
      profiles
      •Makes all the necessary API calls for these panels and
      pages
      •Assembles everything into a complete web page




 Contains Company Confidential Material – Do Not Disclose
Dashboard Architecture


     Examples

     {id : "attendanceHist",
      type : "GRID",
      name : "Attendance History",
      data :{
                     entity: "studentAttendance",
                     alias: "studentAttendance",
       },
       root: 'attendance',
       items : [
                     {id: "col0", name: "Month", type:"FIELD", datatype: "string", field: "eventDate", width: 90},
                     {id: "col1", name: "Attendance Rate %", type:"FIELD", datatype: "string", field: "attendanceRate", width: 100, formatter:
     PercentCompleteFormatter, params:{low:91}},
                     {id: "col1", name: "Attendance Rate", type:"FIELD", datatype: "string", field: "attendanceRate", width: 100, formatter:
     PercentBarFormatter, params:{low:85, medium:92}},
                     {id: "col2", name: "Absence Exc", type:"FIELD", datatype: "string", field: "excusedAbsenceCount", width: 70}] }




Contains Company Confidential Material – Do Not Disclose
Dashboard Visualization


      On the client side, Javascript is used extensively for
      visualization
      •Code is modularized in a similar way to server-side
      Java code
      •Separate .js files for panels, visual widgets, utils
      •Started using AngularJs for an MVC framework




 Contains Company Confidential Material – Do Not Disclose
Q&A

                                           What's on your mind?




Contains Company Confidential Material – Do Not Disclose
Dashboard Advanced Topics




Contains Company Confidential Material – Do Not Disclose
Working with the SLI API




Contains Company Confidential Material – Do Not Disclose
Dashboard Advanced Topics


     There can be more than one method of obtaining the
     same set of data.

     Different methods will have different performance and
     complexity
     •Number of API calls
     •Network overhead
     •Code complexity



Contains Company Confidential Material – Do Not Disclose
Best Practices


      Make batch calls as much as possible
      •Use multi-level API calls
               •     e.g.
                     students/<student_id>/studentSectionAssociations/secti
                     ons
      •Query for multiple entities at once, instead of one at a
      time




 Contains Company Confidential Material – Do Not Disclose
Example 1 - Students in a Section




 Contains Company Confidential Material – Do Not Disclose
Example 1 - Students in a Section
      Our initial implementation
      •Get info for the section
           o
              /sections/<sectionId>
      •Get students in the section
           o
              /sections/<sectionId>/studentSectionAssociations
      •For each student, get attendance data
           o
              /students/<studentId>/attendances
      •For each student, get assessment data
           o /students/<studentId>/studentAssessments

      •For each assessment, get cut points, meta data
           o /assessments/<assessmentId>

      •For each student, get current grades
           o /students/<studentId>/courseTranscripts

 Contains Company Confidential Material – Do Not Disclose
Example 1 - Students in a Section


      How we refactored it
      •Make a single 4-part URI call with optional view
      parameters
                o
                      /
                      sections/<sectionId>/studentSectionAssociations/studen
                      ts?views=assessments,attendances,transcript


      The difference?
      •Hundreds of API calls vs. a single API call
      •Reduced network overhead (improved performance)


 Contains Company Confidential Material – Do Not Disclose
Best Practices


      Make focused API calls for the data you want
      •Instead of calling /students to get all students...
      •Let the user choose the section they're interested in
      first...
      •Then call the API for the students in that section


      Take into account UX design and page load
      requirements
      •What needs to be shown at initial page load?
      •What can be shown after the page is displayed?

 Contains Company Confidential Material – Do Not Disclose
Example 2 - Population Widget




Contains Company Confidential Material – Do Not Disclose
Example 2 - Population Widget


     Initial implementation
     •Get all schools accessible to user
               o
                     /schools
     •Get parent ed-orgs of the schools
               o
                     /educationOrganizations/<id>
     •Get all sections accessible to user
               o
                     /sections
     •Get courses that match sections
               o
                     /courses/<id1,id2,...>
     In Java, programmatically create a hierarchical JSON
     structure to pass to the front-end
Contains Company Confidential Material – Do Not Disclose
Example 2 - Population Widget


     Issues we ran into
     •For state-level users, there can be hundreds of
     schools, thousands of courses and sections.
     Performance issues loading it all up-front.
     •Using /courses/<id1,id2,...> notation with many ids
     runs into URL length limit in some web servers




Contains Company Confidential Material – Do Not Disclose
Example 2 - Population Widget


     Refactored implementation:
     Before page load,
     •Get schools accessible to user
               o
                     /schools
     •Get parent ed-orgs
               o
                     /educationOrganizations/<id>




Contains Company Confidential Material – Do Not Disclose
Example 2 - Population Widget


     Refactored implementation (cont.):
     When user selects an ed-org and school,
     •For school-level users
               o
                     /sections
               o
                     /courses
               o
                     Match programmatically
     •For state- and district-level users
               o
                     /schools/<schoolId>/sections
               o
                     /courses
               o
                     Match programmatically


Contains Company Confidential Material – Do Not Disclose
Best Practices


        •     Use a REST client for ad-hoc API calls.
              Handy for debugging and testing.

        •     Know your query parameters - includeFields,
              excludeFields, views, offset, limit, sortBy, sortOrder,
              field-specific value matching

        •     Caching – use it if you need it
               •     ehcache



 Contains Company Confidential Material – Do Not Disclose
Dashboard Security


       •     Security
               o
                     Spring Interceptor
                       
                             checks authentication before controllers are called
                       
                             if user is not logged in, they are redirected to login page
                       
                             when authenticated, we receive a token
                    Scribe OAuth library
               o
                     We make sure our API calls contain token and correct
                     HTTP headers
               o
                     Protecting the authentication token is the responsibility
                     of the application




Contains Company Confidential Material – Do Not Disclose
Open Source


       • https://github.com/slcedu/dashboard




Contains Company Confidential Material – Do Not Disclose
Q&A

                                           What's on your mind?




Contains Company Confidential Material – Do Not Disclose

More Related Content

What's hot

Share Point Sat Share Point 2010 And Content Migration
Share Point Sat Share Point 2010 And Content MigrationShare Point Sat Share Point 2010 And Content Migration
Share Point Sat Share Point 2010 And Content MigrationNadir Kamdar
 
Aras PLM Software Solutions
Aras PLM Software SolutionsAras PLM Software Solutions
Aras PLM Software SolutionsAras
 
InfoPath 2010 Scaling up 1 to 100
InfoPath 2010 Scaling up 1 to 100InfoPath 2010 Scaling up 1 to 100
InfoPath 2010 Scaling up 1 to 100Chris Grist
 
A Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowA Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowFishbowl Solutions
 
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...Alfresco Software
 
SPTechCon - July 2012 - Effective requirements gathering workshops
SPTechCon - July 2012 - Effective requirements gathering workshopsSPTechCon - July 2012 - Effective requirements gathering workshops
SPTechCon - July 2012 - Effective requirements gathering workshopsRuven Gotz
 
SPSCincinnati - Effective requirements gathering workshops spscinci- octobe...
SPSCincinnati - Effective requirements gathering workshops   spscinci- octobe...SPSCincinnati - Effective requirements gathering workshops   spscinci- octobe...
SPSCincinnati - Effective requirements gathering workshops spscinci- octobe...Ruven Gotz
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
20100604 unyoug apex40_bauser
20100604 unyoug apex40_bauser20100604 unyoug apex40_bauser
20100604 unyoug apex40_bauserahmed farouk
 
Turning Relational Database Tables into Hadoop Datasources by Kuassi Mensah
Turning Relational Database Tables into Hadoop Datasources by Kuassi MensahTurning Relational Database Tables into Hadoop Datasources by Kuassi Mensah
Turning Relational Database Tables into Hadoop Datasources by Kuassi MensahData Con LA
 
[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya
[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya
[Uruguay] DB2 for i: 7.1 Overview - Hernando BedoyaIBMSSA
 
HTML5 and Timed Media Playback
HTML5 and Timed Media PlaybackHTML5 and Timed Media Playback
HTML5 and Timed Media PlaybackSidra Abbasi
 
SharePoint Careers and Introduction to SharePoint 2013 Services and Topology
SharePoint Careers and Introduction to SharePoint 2013 Services and TopologySharePoint Careers and Introduction to SharePoint 2013 Services and Topology
SharePoint Careers and Introduction to SharePoint 2013 Services and TopologyEli Robillard
 
Building a SharePoint Platform That Scales
Building a SharePoint Platform That ScalesBuilding a SharePoint Platform That Scales
Building a SharePoint Platform That ScalesScott Hoag
 
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Brian Huff
 
WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013Fishbowl Solutions
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersBrian Huff
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterBrian Huff
 

What's hot (20)

Share Point Sat Share Point 2010 And Content Migration
Share Point Sat Share Point 2010 And Content MigrationShare Point Sat Share Point 2010 And Content Migration
Share Point Sat Share Point 2010 And Content Migration
 
Aras PLM Software Solutions
Aras PLM Software SolutionsAras PLM Software Solutions
Aras PLM Software Solutions
 
Hybernat and structs, spring classes in mumbai
Hybernat and structs, spring classes in mumbaiHybernat and structs, spring classes in mumbai
Hybernat and structs, spring classes in mumbai
 
40020
4002040020
40020
 
InfoPath 2010 Scaling up 1 to 100
InfoPath 2010 Scaling up 1 to 100InfoPath 2010 Scaling up 1 to 100
InfoPath 2010 Scaling up 1 to 100
 
A Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowA Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to Know
 
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
CASE-6 Structured Content Authoring and Publishing through Alfresco and Compo...
 
SPTechCon - July 2012 - Effective requirements gathering workshops
SPTechCon - July 2012 - Effective requirements gathering workshopsSPTechCon - July 2012 - Effective requirements gathering workshops
SPTechCon - July 2012 - Effective requirements gathering workshops
 
SPSCincinnati - Effective requirements gathering workshops spscinci- octobe...
SPSCincinnati - Effective requirements gathering workshops   spscinci- octobe...SPSCincinnati - Effective requirements gathering workshops   spscinci- octobe...
SPSCincinnati - Effective requirements gathering workshops spscinci- octobe...
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint Beast
 
20100604 unyoug apex40_bauser
20100604 unyoug apex40_bauser20100604 unyoug apex40_bauser
20100604 unyoug apex40_bauser
 
Turning Relational Database Tables into Hadoop Datasources by Kuassi Mensah
Turning Relational Database Tables into Hadoop Datasources by Kuassi MensahTurning Relational Database Tables into Hadoop Datasources by Kuassi Mensah
Turning Relational Database Tables into Hadoop Datasources by Kuassi Mensah
 
[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya
[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya
[Uruguay] DB2 for i: 7.1 Overview - Hernando Bedoya
 
HTML5 and Timed Media Playback
HTML5 and Timed Media PlaybackHTML5 and Timed Media Playback
HTML5 and Timed Media Playback
 
SharePoint Careers and Introduction to SharePoint 2013 Services and Topology
SharePoint Careers and Introduction to SharePoint 2013 Services and TopologySharePoint Careers and Introduction to SharePoint 2013 Services and Topology
SharePoint Careers and Introduction to SharePoint 2013 Services and Topology
 
Building a SharePoint Platform That Scales
Building a SharePoint Platform That ScalesBuilding a SharePoint Platform That Scales
Building a SharePoint Platform That Scales
 
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
Integrating ECM (WebCenter Content) with your Enterprise! 5 Tips to Try, 5 Tr...
 
WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenter
 

Similar to Slc dashboard presentation-boston_sep2012

Designing your SharePoint Internet site: The basics
Designing your SharePoint Internet site: The basicsDesigning your SharePoint Internet site: The basics
Designing your SharePoint Internet site: The basicsC/D/H Technology Consultants
 
Project Training in Noida
Project Training in NoidaProject Training in Noida
Project Training in NoidaTech Mentro
 
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...Agile Infrastructure Automation Presentation to Wall Street Technology Associ...
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...Alex Henthorn-Iwane
 
Better insight 2010 nov 30 bucharest
Better insight 2010 nov 30 bucharestBetter insight 2010 nov 30 bucharest
Better insight 2010 nov 30 bucharestDoina Draganescu
 
(Oracle) DBA and Other Skills Needed in 2020
(Oracle) DBA and Other Skills Needed in 2020(Oracle) DBA and Other Skills Needed in 2020
(Oracle) DBA and Other Skills Needed in 2020Markus Michalewicz
 
reInvent reCap 2022
reInvent reCap 2022reInvent reCap 2022
reInvent reCap 2022CloudHesive
 
SauravResume(4Years Exp)
SauravResume(4Years Exp)SauravResume(4Years Exp)
SauravResume(4Years Exp)saurav kumar
 
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Midori Oge
 
MySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise EditionMySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise EditionMark Swarbrick
 
Get An Attractive Score in AWS Developer Associate (DVA-C02) Exam
Get An Attractive Score in AWS Developer Associate (DVA-C02) ExamGet An Attractive Score in AWS Developer Associate (DVA-C02) Exam
Get An Attractive Score in AWS Developer Associate (DVA-C02) ExamAdinaCoyle
 
SQL Server and Azure Mobile Business Intelligence
SQL Server and Azure Mobile Business IntelligenceSQL Server and Azure Mobile Business Intelligence
SQL Server and Azure Mobile Business IntelligenceJen Stirrup
 
Assessing Your Company's Cloud Readiness
Assessing Your Company's Cloud ReadinessAssessing Your Company's Cloud Readiness
Assessing Your Company's Cloud ReadinessAmazon Web Services
 
Addvantum Oracle Profile OFMW
Addvantum  Oracle Profile OFMW Addvantum  Oracle Profile OFMW
Addvantum Oracle Profile OFMW Addvantum
 

Similar to Slc dashboard presentation-boston_sep2012 (20)

AbhishekDullu_Res
AbhishekDullu_ResAbhishekDullu_Res
AbhishekDullu_Res
 
Designing your SharePoint Internet site: The basics
Designing your SharePoint Internet site: The basicsDesigning your SharePoint Internet site: The basics
Designing your SharePoint Internet site: The basics
 
Cover_Letter
Cover_LetterCover_Letter
Cover_Letter
 
Suresh_Resume
Suresh_ResumeSuresh_Resume
Suresh_Resume
 
Project Training in Noida
Project Training in NoidaProject Training in Noida
Project Training in Noida
 
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...Agile Infrastructure Automation Presentation to Wall Street Technology Associ...
Agile Infrastructure Automation Presentation to Wall Street Technology Associ...
 
Better insight 2010 nov 30 bucharest
Better insight 2010 nov 30 bucharestBetter insight 2010 nov 30 bucharest
Better insight 2010 nov 30 bucharest
 
(Oracle) DBA and Other Skills Needed in 2020
(Oracle) DBA and Other Skills Needed in 2020(Oracle) DBA and Other Skills Needed in 2020
(Oracle) DBA and Other Skills Needed in 2020
 
Vidhya_J_CV
Vidhya_J_CVVidhya_J_CV
Vidhya_J_CV
 
reInvent reCap 2022
reInvent reCap 2022reInvent reCap 2022
reInvent reCap 2022
 
SauravResume(4Years Exp)
SauravResume(4Years Exp)SauravResume(4Years Exp)
SauravResume(4Years Exp)
 
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
 
MySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise EditionMySQL Manchester TT - MySQL Enterprise Edition
MySQL Manchester TT - MySQL Enterprise Edition
 
Get An Attractive Score in AWS Developer Associate (DVA-C02) Exam
Get An Attractive Score in AWS Developer Associate (DVA-C02) ExamGet An Attractive Score in AWS Developer Associate (DVA-C02) Exam
Get An Attractive Score in AWS Developer Associate (DVA-C02) Exam
 
SQL Server and Azure Mobile Business Intelligence
SQL Server and Azure Mobile Business IntelligenceSQL Server and Azure Mobile Business Intelligence
SQL Server and Azure Mobile Business Intelligence
 
Alok.Resume_3.4
Alok.Resume_3.4Alok.Resume_3.4
Alok.Resume_3.4
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Assessing Your Company's Cloud Readiness
Assessing Your Company's Cloud ReadinessAssessing Your Company's Cloud Readiness
Assessing Your Company's Cloud Readiness
 
Kasi Resume
Kasi ResumeKasi Resume
Kasi Resume
 
Addvantum Oracle Profile OFMW
Addvantum  Oracle Profile OFMW Addvantum  Oracle Profile OFMW
Addvantum Oracle Profile OFMW
 

More from SLC is now inBloom!

Cognitive Maps by Gagan Annamreddy
Cognitive Maps by Gagan AnnamreddyCognitive Maps by Gagan Annamreddy
Cognitive Maps by Gagan AnnamreddySLC is now inBloom!
 
Herding Cats 2.0 by Team Blended Cats
Herding Cats 2.0 by Team Blended CatsHerding Cats 2.0 by Team Blended Cats
Herding Cats 2.0 by Team Blended CatsSLC is now inBloom!
 
Shared Learning Collaborative (SLC) Overview
Shared Learning Collaborative (SLC) OverviewShared Learning Collaborative (SLC) Overview
Shared Learning Collaborative (SLC) OverviewSLC is now inBloom!
 
Concept: Data Driven Professional Development by Team: Double Ds
Concept: Data Driven Professional Development by Team: Double DsConcept: Data Driven Professional Development by Team: Double Ds
Concept: Data Driven Professional Development by Team: Double DsSLC is now inBloom!
 
Concept: Intelli-Seats by The A-Team
Concept: Intelli-Seats by The A-Team Concept: Intelli-Seats by The A-Team
Concept: Intelli-Seats by The A-Team SLC is now inBloom!
 
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...SLC is now inBloom!
 
Concept: Herding Cats by Team: Cool Cats
Concept: Herding Cats by Team: Cool CatsConcept: Herding Cats by Team: Cool Cats
Concept: Herding Cats by Team: Cool CatsSLC is now inBloom!
 
Concept: Personalizing Mastery by Team: Runnin' Rebels
Concept: Personalizing Mastery by Team: Runnin' RebelsConcept: Personalizing Mastery by Team: Runnin' Rebels
Concept: Personalizing Mastery by Team: Runnin' RebelsSLC is now inBloom!
 
Slc technology101 boston-sep2012
Slc technology101 boston-sep2012Slc technology101 boston-sep2012
Slc technology101 boston-sep2012SLC is now inBloom!
 
Slc ingestion presentation-boston_sep2012
Slc ingestion presentation-boston_sep2012Slc ingestion presentation-boston_sep2012
Slc ingestion presentation-boston_sep2012SLC is now inBloom!
 
Slc camp technology getting started and api deep dive-boston_sep2012
Slc camp technology getting started and api deep dive-boston_sep2012Slc camp technology getting started and api deep dive-boston_sep2012
Slc camp technology getting started and api deep dive-boston_sep2012SLC is now inBloom!
 
SLC tagging content-Chicago_sept2012
SLC tagging content-Chicago_sept2012SLC tagging content-Chicago_sept2012
SLC tagging content-Chicago_sept2012SLC is now inBloom!
 
Slc entity fam diagrams v4 06072012_lrg_map
Slc entity fam diagrams v4 06072012_lrg_mapSlc entity fam diagrams v4 06072012_lrg_map
Slc entity fam diagrams v4 06072012_lrg_mapSLC is now inBloom!
 
Slc data mapping supplement v5 06252012
Slc data mapping supplement v5 06252012Slc data mapping supplement v5 06252012
Slc data mapping supplement v5 06252012SLC is now inBloom!
 

More from SLC is now inBloom! (20)

3R radar
3R radar3R radar
3R radar
 
Note e-fi team case nex
Note e-fi team case nexNote e-fi team case nex
Note e-fi team case nex
 
Rapid RtL - Forefront Math
Rapid RtL - Forefront MathRapid RtL - Forefront Math
Rapid RtL - Forefront Math
 
Kidget
KidgetKidget
Kidget
 
Intelliseats 2012
Intelliseats 2012Intelliseats 2012
Intelliseats 2012
 
Cognitive Maps by Gagan Annamreddy
Cognitive Maps by Gagan AnnamreddyCognitive Maps by Gagan Annamreddy
Cognitive Maps by Gagan Annamreddy
 
Herding Cats 2.0 by Team Blended Cats
Herding Cats 2.0 by Team Blended CatsHerding Cats 2.0 by Team Blended Cats
Herding Cats 2.0 by Team Blended Cats
 
Shared Learning Collaborative (SLC) Overview
Shared Learning Collaborative (SLC) OverviewShared Learning Collaborative (SLC) Overview
Shared Learning Collaborative (SLC) Overview
 
SLC Camp Denver Bounty Rules
SLC Camp Denver Bounty RulesSLC Camp Denver Bounty Rules
SLC Camp Denver Bounty Rules
 
Concept: Data Driven Professional Development by Team: Double Ds
Concept: Data Driven Professional Development by Team: Double DsConcept: Data Driven Professional Development by Team: Double Ds
Concept: Data Driven Professional Development by Team: Double Ds
 
Concept: Intelli-Seats by The A-Team
Concept: Intelli-Seats by The A-Team Concept: Intelli-Seats by The A-Team
Concept: Intelli-Seats by The A-Team
 
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...
Concept: Refining RTI: A systems approach to unifying scores by Team: The Ble...
 
Concept: Herding Cats by Team: Cool Cats
Concept: Herding Cats by Team: Cool CatsConcept: Herding Cats by Team: Cool Cats
Concept: Herding Cats by Team: Cool Cats
 
Concept: Personalizing Mastery by Team: Runnin' Rebels
Concept: Personalizing Mastery by Team: Runnin' RebelsConcept: Personalizing Mastery by Team: Runnin' Rebels
Concept: Personalizing Mastery by Team: Runnin' Rebels
 
Slc technology101 boston-sep2012
Slc technology101 boston-sep2012Slc technology101 boston-sep2012
Slc technology101 boston-sep2012
 
Slc ingestion presentation-boston_sep2012
Slc ingestion presentation-boston_sep2012Slc ingestion presentation-boston_sep2012
Slc ingestion presentation-boston_sep2012
 
Slc camp technology getting started and api deep dive-boston_sep2012
Slc camp technology getting started and api deep dive-boston_sep2012Slc camp technology getting started and api deep dive-boston_sep2012
Slc camp technology getting started and api deep dive-boston_sep2012
 
SLC tagging content-Chicago_sept2012
SLC tagging content-Chicago_sept2012SLC tagging content-Chicago_sept2012
SLC tagging content-Chicago_sept2012
 
Slc entity fam diagrams v4 06072012_lrg_map
Slc entity fam diagrams v4 06072012_lrg_mapSlc entity fam diagrams v4 06072012_lrg_map
Slc entity fam diagrams v4 06072012_lrg_map
 
Slc data mapping supplement v5 06252012
Slc data mapping supplement v5 06252012Slc data mapping supplement v5 06252012
Slc data mapping supplement v5 06252012
 

Recently uploaded

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 

Recently uploaded (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 

Slc dashboard presentation-boston_sep2012

  • 1. Educator Dashboard 101 Presenter: Takashi Osako Prepared by: David Wu and Sivan Hermon September 29, 2012 Cambridge, MA Contains Company Confidential Material – Do Not Disclose
  • 2. Agenda • Goals for this presentation • Introduction • High-level Architecture • Visualizing Data • Advanced Topics o Working with the SLC API o Configuration Contains Company Confidential Material – Do Not Disclose
  • 3. Goals • Understanding why Dashboard was built • Give overview of Dashboard functionality and architecture • Provide information for developers to find their way around the code Contains Company Confidential Material – Do Not Disclose
  • 4. Dashboard Introduction What is the Dashboard? Contains Company Confidential Material – Do Not Disclose
  • 5. What is the Dashboard? • A highly-configurable reporting and visualization tool for students' data, provided by the SLC • A web application • A "reference" client application for the SLC platform Contains Company Confidential Material – Do Not Disclose
  • 6. Dashboard Introduction Allows educators to see information about their students individually or by class, school, and other organizational levels. Contains Company Confidential Material – Do Not Disclose
  • 7. Dashboard Introduction Allows staff (principals, IT admins, etc) to see and configure information about education organizations, schools, and students Contains Company Confidential Material – Do Not Disclose
  • 8. Dashboard Introduction Why is Dashboard a powerful tool for teachers? • Education technology is behind the rest of the tech world • Data is often spread across different applications • Allows education leaders to create holistic views of student data, for instructional purposes • Allows cross-correlations between different student data (test scores, grades, attendance) Contains Company Confidential Material – Do Not Disclose
  • 9. Dashboard Introduction How is Dashboard configurable? • Dashboard pages are configurable by individual states and districts • Waterfall logic - Districts can override state-level configurations • Real-time - changes are immediately viewable Contains Company Confidential Material – Do Not Disclose
  • 10. Dashboard Introduction - Main Modules Profiles •Student, School, Teacher, Section, Ed-Org •Used for navigation and displaying information •Multiple pages in a profile •Multiple panels in a page Dashboard Builder •IT admins can modify and configure content of profiles Student Search Contains Company Confidential Material – Do Not Disclose
  • 11. Live Demo Contains Company Confidential Material – Do Not Disclose
  • 12. Extending Dashboard Dashboard brings together diverse data, giving educators and staff a holistic view of their students Dashboard is configurable by individual states, districts, and ed-orgs Contains Company Confidential Material – Do Not Disclose
  • 13. Dashboard Architecture Architectural Overview Contains Company Confidential Material – Do Not Disclose
  • 14. Dashboard Architecture Contains Company Confidential Material – Do Not Disclose
  • 15. Dashboard Architecture Drivers, Key Concepts •Robustness •Tested, reliable technologies •Familiar languages •Approachable, understandable to developers •Modularity, separation of layers •Performance •Ease of build and deploy •Cross-platform compatibility Contains Company Confidential Material – Do Not Disclose
  • 16. Dashboard Technology • Java • Spring / Spring Modules o Robust, widely-used web app framework • FreeMarker o Template for HTML generation o Lean, fast o Maven Contains Company Confidential Material – Do Not Disclose
  • 17. Dashboard Technology • jQuery/jQuery UI • jqGrid o Base for client-side grids o Easy data binding and customization • Bootstrap • Raphael • Angular.js o MVC framework, with templating, 2-way data binding (model <-> view) o Non-prescriptive - plays nicely with other frameworks and application code Contains Company Confidential Material – Do Not Disclose
  • 18. Dashboard Technology Testing Tools •JUnit •QUnit •Cucumber •Selenium Contains Company Confidential Material – Do Not Disclose
  • 19. Dashboard Architecture Contains Company Confidential Material – Do Not Disclose
  • 20. Dashboard Architecture - Java Modules How does Dashboard retrieve API data? •Controllers o Handles incoming requests, calls Managers •Layout Assembly •Managers o Use API Client to retrieve data, perform biz logic (e.g. filtering, aggregation, formatting) •API Client o Uses the SLC SDK for Java to communicate with API Contains Company Confidential Material – Do Not Disclose
  • 21. Dashboard Visualization Keep in mind - Education data is grouped into logical families •student-based •section-based •school-based •etc. Remembering this will help you design your application, and also navigate the SLC API more efficiently Contains Company Confidential Material – Do Not Disclose
  • 22. Dashboard Visualization The API returns data in its raw form The Dashboard presents that data graphically, so that it is understandable in a glance • e.g. green is good, red needs attention Contains Company Confidential Material – Do Not Disclose
  • 23. Dashboard Visualization - Student Profile Panel Page (Tab) Page (Tab) Panel Contains Company Confidential Material – Do Not Disclose
  • 24. Dashboard Visualization - Section Profile Grid Contains Company Confidential Material – Do Not Disclose
  • 25. Dashboard Visualization - Section Profile Fuel Gauge Widget Tear Drop Widget Colored Text Contains Company Confidential Material – Do Not Disclose
  • 26. Dashboard Visualization Dashboard pages are assembled from components •Layouts •Tabs (page) •Panels o Grids, Tree Grids, etc. •Widgets Contains Company Confidential Material – Do Not Disclose
  • 27. Dashboard Visualization Layout Assembly •Reads JSON configuration files •Figures out what panels and pages to display on profiles •Makes all the necessary API calls for these panels and pages •Assembles everything into a complete web page Contains Company Confidential Material – Do Not Disclose
  • 28. Dashboard Architecture Examples {id : "attendanceHist", type : "GRID", name : "Attendance History", data :{ entity: "studentAttendance", alias: "studentAttendance", }, root: 'attendance', items : [ {id: "col0", name: "Month", type:"FIELD", datatype: "string", field: "eventDate", width: 90}, {id: "col1", name: "Attendance Rate %", type:"FIELD", datatype: "string", field: "attendanceRate", width: 100, formatter: PercentCompleteFormatter, params:{low:91}}, {id: "col1", name: "Attendance Rate", type:"FIELD", datatype: "string", field: "attendanceRate", width: 100, formatter: PercentBarFormatter, params:{low:85, medium:92}}, {id: "col2", name: "Absence Exc", type:"FIELD", datatype: "string", field: "excusedAbsenceCount", width: 70}] } Contains Company Confidential Material – Do Not Disclose
  • 29. Dashboard Visualization On the client side, Javascript is used extensively for visualization •Code is modularized in a similar way to server-side Java code •Separate .js files for panels, visual widgets, utils •Started using AngularJs for an MVC framework Contains Company Confidential Material – Do Not Disclose
  • 30. Q&A What's on your mind? Contains Company Confidential Material – Do Not Disclose
  • 31. Dashboard Advanced Topics Contains Company Confidential Material – Do Not Disclose
  • 32. Working with the SLI API Contains Company Confidential Material – Do Not Disclose
  • 33. Dashboard Advanced Topics There can be more than one method of obtaining the same set of data. Different methods will have different performance and complexity •Number of API calls •Network overhead •Code complexity Contains Company Confidential Material – Do Not Disclose
  • 34. Best Practices Make batch calls as much as possible •Use multi-level API calls • e.g. students/<student_id>/studentSectionAssociations/secti ons •Query for multiple entities at once, instead of one at a time Contains Company Confidential Material – Do Not Disclose
  • 35. Example 1 - Students in a Section Contains Company Confidential Material – Do Not Disclose
  • 36. Example 1 - Students in a Section Our initial implementation •Get info for the section o /sections/<sectionId> •Get students in the section o /sections/<sectionId>/studentSectionAssociations •For each student, get attendance data o /students/<studentId>/attendances •For each student, get assessment data o /students/<studentId>/studentAssessments •For each assessment, get cut points, meta data o /assessments/<assessmentId> •For each student, get current grades o /students/<studentId>/courseTranscripts Contains Company Confidential Material – Do Not Disclose
  • 37. Example 1 - Students in a Section How we refactored it •Make a single 4-part URI call with optional view parameters o / sections/<sectionId>/studentSectionAssociations/studen ts?views=assessments,attendances,transcript The difference? •Hundreds of API calls vs. a single API call •Reduced network overhead (improved performance) Contains Company Confidential Material – Do Not Disclose
  • 38. Best Practices Make focused API calls for the data you want •Instead of calling /students to get all students... •Let the user choose the section they're interested in first... •Then call the API for the students in that section Take into account UX design and page load requirements •What needs to be shown at initial page load? •What can be shown after the page is displayed? Contains Company Confidential Material – Do Not Disclose
  • 39. Example 2 - Population Widget Contains Company Confidential Material – Do Not Disclose
  • 40. Example 2 - Population Widget Initial implementation •Get all schools accessible to user o /schools •Get parent ed-orgs of the schools o /educationOrganizations/<id> •Get all sections accessible to user o /sections •Get courses that match sections o /courses/<id1,id2,...> In Java, programmatically create a hierarchical JSON structure to pass to the front-end Contains Company Confidential Material – Do Not Disclose
  • 41. Example 2 - Population Widget Issues we ran into •For state-level users, there can be hundreds of schools, thousands of courses and sections. Performance issues loading it all up-front. •Using /courses/<id1,id2,...> notation with many ids runs into URL length limit in some web servers Contains Company Confidential Material – Do Not Disclose
  • 42. Example 2 - Population Widget Refactored implementation: Before page load, •Get schools accessible to user o /schools •Get parent ed-orgs o /educationOrganizations/<id> Contains Company Confidential Material – Do Not Disclose
  • 43. Example 2 - Population Widget Refactored implementation (cont.): When user selects an ed-org and school, •For school-level users o /sections o /courses o Match programmatically •For state- and district-level users o /schools/<schoolId>/sections o /courses o Match programmatically Contains Company Confidential Material – Do Not Disclose
  • 44. Best Practices • Use a REST client for ad-hoc API calls. Handy for debugging and testing. • Know your query parameters - includeFields, excludeFields, views, offset, limit, sortBy, sortOrder, field-specific value matching • Caching – use it if you need it • ehcache Contains Company Confidential Material – Do Not Disclose
  • 45. Dashboard Security • Security o Spring Interceptor  checks authentication before controllers are called  if user is not logged in, they are redirected to login page  when authenticated, we receive a token  Scribe OAuth library o We make sure our API calls contain token and correct HTTP headers o Protecting the authentication token is the responsibility of the application Contains Company Confidential Material – Do Not Disclose
  • 46. Open Source • https://github.com/slcedu/dashboard Contains Company Confidential Material – Do Not Disclose
  • 47. Q&A What's on your mind? Contains Company Confidential Material – Do Not Disclose

Editor's Notes

  1. Delete?