SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Plataforma de Aplicativos
                    101
             Guilherme Cavalcanti
    Líder técnico, plataforma de aplicativos
Apresentações


• Guilherme Cavalcanti
 •   Desenvolvedor Web desde 2007

 •   Granduando, CIn-UFPE

 •   Co-fundador do Redu

 •   Líder técnico do time da
     plataforma de aplicativos @ Redu

 •   Twitter/Delicious/Github:

     •   /guiocavalcanti
Equipe

Estamos contratando!
jobs@redu.com.br




     • 15 pessoas
        • Designers
        • Desenvolvedores
        • Pesquisadores
        • Negócio
O que é a plataforma de
            aplicativos?
Mercado de educação


• Editoras
• Produtoras de mídias
  educativas
• Sistemas de Gestão
  Acadêmica
• Marketplace de
  aplicativos educacionais
Importância da disciplina




1. Necessidade de integração de tecnologias
2. Demanda por desenvolvedores de
   aplicativos educacionais
Tipo de aplicativos




• Canvas
• Externos
 • Mobile, desktop, etc

• Plugins sociais
Canvas
Canvas




• Funciona dentro do Redu
• Like facebook apps
• Para o usuário final, faz parte do Redu
Principais
funcionalidades
Sugestões de aplicativos
Infraestrutura


• Se comunica com o Redu via HTTP (API
  REST)
• As simple as an <iframe>
• Plugins sociais (em breve)
• SDK JavaScript (em breve)
• Redu Bootstrap (alpha)
Mais informações


• Vai ficar dentro da Disciplina
• Largura máxima de 720px
• Autenticação via JavaScript (OAuth2)
• Requisições cross-domain permitidas
  (CORS)
• Inicialmente compatível apenas com FF
  e Chrome (versões recentes)
Aplicativos
  externos
Aplicativos externos


• Mobile: aplicativos Android, iOS
• Plugins sociais: mural, meus cursos
• Aplicativos desktop
  • Sistema de gestão acadêmica
  • ERPs

• Analytics services
• Games
Infraestrutura




• Se comunica com o Redu via HTTP (API
  REST)
• SDKs e wrappers a serem construídos
O que temos
    pronto?
API REST




• Plain old HTTP
• 100% documentada
• Autenticação por OAuth2
API REST
WTH: API



...is a specification intended to be used as
 an interface by software components to
        communicate with each other.

                         Someone at Wikipedia
WHT: REST


• Estilo arquitetural para sistemas
  distribuidos
• Levado em conta na construção da
  World Wide Web
• Amplamente utilizado em Webservices
  públicos
• Roy Fielding
WHT: REST




• Client-server: separação de
  responsabilidades
• Stateless: escalabilidade
• Uniform inteface: portabilidade
Documentação




• Disponível em developers.redu.com.br
• Open-source:
 • https://github.com/redu/redu.github.com/
 • Aceitamos correções
Content-type




• JSON
• XML (alguém precisa?)
• form-urlencoded
Autenticação
OAuth2



• Como descobrir quem
  fez qual requisição?
• OAuth2 Provider
• Tudo depende de um
  token
Papéis




   Resource owner        Usuário da aplicação


  Client application          Aplicação


Resource/authorization
                                Redu
       Server
OAuth2 : regras


1. Client applications atuam (role play)
   em nome do resource owner
2. Client applications não guardam login
   e senha do resource owner
3. Client applications pedem autorização
   para atuar em nome do resource
   owner
Pedindo seu token em
                                        Python
 1   from rauth.service import OAuth2Service
 2
 4   redu = OAuth2Service(
 5           name='redu',
 6           authorize_url='http://redu.com.br/oauth/authorize',
 7           access_token_url='http://redu.com.br/oauth/token',
 8           consumer_key='YF6tokenI45Z2tokenk9ttokenoDmCBH',
 9           consumer_secret='kMkrtokenhfoMHLZOtokenCGAZRZtoken')
10
11   print 'Visit this URL in your browser: ' +     redu.get_authorize_url()
12
16   code = raw_input('Enter the PIN: ')
17
19   data = dict(code=code, grant_type='authorization_code',redirect_uri='')
20
23   access_token = redu.get_access_token('POST', data=data)
25
26   print 'The access token is: ' + access_token[access_token]




                                               https://github.com/redu/oauth-consumers
Pedindo seu token em
                                        Ruby

 3   require "oauth2"
 4
 5   consumer_key ='YF6btoken3jek9tRbGptokenCBH'
 6   consumer_secret ='kMkrBKyadsMHLZO3MBdasZRZEdasL'
 7
 8   client = OAuth2::Client.new(consumer_key, consumer_secret,
10                               :site => 'http://redu.com.br')
11
12   puts "Already have a PIN? [y/n]:"
13   if gets.chomp == 'n'
14     puts "Authorize: "
15     puts client.auth_code.authorize_url
16   end
17
18   puts "Insert the pin: "
19   pin = gets.chomp
20   token = client.auth_code.get_token(pin)
21   puts "The Access Token is #{token.token}"


                                     https://github.com/redu/oauth-consumers

Mais conteúdo relacionado

Semelhante a Introdução a plataforma de aplicativos Redu

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaLambda3
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilLuis Cipriani
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasJose Papo, MSc
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaSensedia
 
Modern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoModern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoJorge Tressino Rua
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 

Semelhante a Introdução a plataforma de aplicativos Redu (20)

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectada
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na AbrilComo um verdadeiro sistema REST funciona: arquitetura e performance na Abril
Como um verdadeiro sistema REST funciona: arquitetura e performance na Abril
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Spring social
Spring socialSpring social
Spring social
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Opções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e ArquiteturasOpções de Backends para seus apps móveis: Análise e Arquiteturas
Opções de Backends para seus apps móveis: Análise e Arquiteturas
 
Workshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha BásicaWorkshop Hands-On APIX 2018 - Trilha Básica
Workshop Hands-On APIX 2018 - Trilha Básica
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
Modern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticaçãoModern Apps e o novo panorama de identidade e autenticação
Modern Apps e o novo panorama de identidade e autenticação
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 

Mais de Guilherme

Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoWhere Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoGuilherme
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
Redu walled garden
Redu walled gardenRedu walled garden
Redu walled gardenGuilherme
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescerGuilherme
 
Consumindo APIs REST com Ruby
Consumindo APIs REST com RubyConsumindo APIs REST com Ruby
Consumindo APIs REST com RubyGuilherme
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsGuilherme
 
Aplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduAplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduGuilherme
 
FLOSS and Startups
FLOSS and StartupsFLOSS and Startups
FLOSS and StartupsGuilherme
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding DojoGuilherme
 
Dojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsDojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsGuilherme
 
CSS first steps
CSS first stepsCSS first steps
CSS first stepsGuilherme
 
How does the Web work?
How does the Web work?How does the Web work?
How does the Web work?Guilherme
 
0 introducao padroes_web
0 introducao padroes_web0 introducao padroes_web
0 introducao padroes_webGuilherme
 
Plano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasPlano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasGuilherme
 
Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Guilherme
 
Desevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryDesevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryGuilherme
 
3 padroes-web-intro-javascript
3 padroes-web-intro-javascript3 padroes-web-intro-javascript
3 padroes-web-intro-javascriptGuilherme
 
Desevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSDesevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSGuilherme
 
Desevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLDesevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLGuilherme
 

Mais de Guilherme (20)

Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu CódigoWhere Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
Where Does the Fat Goes? Utilizando Form Objects Para Simplificar seu Código
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
Redu walled garden
Redu walled gardenRedu walled garden
Redu walled garden
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescer
 
Consumindo APIs REST com Ruby
Consumindo APIs REST com RubyConsumindo APIs REST com Ruby
Consumindo APIs REST com Ruby
 
Aplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com RailsAplicações tipo Canvas no Redu com Rails
Aplicações tipo Canvas no Redu com Rails
 
Aplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma ReduAplicações sociais usando a plataforma Redu
Aplicações sociais usando a plataforma Redu
 
FLOSS and Startups
FLOSS and StartupsFLOSS and Startups
FLOSS and Startups
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding Dojo
 
Dojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome StylesheetsDojo: Sass - Syntactically Awesome Stylesheets
Dojo: Sass - Syntactically Awesome Stylesheets
 
Sass
SassSass
Sass
 
CSS first steps
CSS first stepsCSS first steps
CSS first steps
 
How does the Web work?
How does the Web work?How does the Web work?
How does the Web work?
 
0 introducao padroes_web
0 introducao padroes_web0 introducao padroes_web
0 introducao padroes_web
 
Plano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu RespostasPlano de Pesquisa - Redu Respostas
Plano de Pesquisa - Redu Respostas
 
Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX Desevolvimento Web Client-side - AJAX
Desevolvimento Web Client-side - AJAX
 
Desevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQueryDesevolvimento Web Client-side - jQuery
Desevolvimento Web Client-side - jQuery
 
3 padroes-web-intro-javascript
3 padroes-web-intro-javascript3 padroes-web-intro-javascript
3 padroes-web-intro-javascript
 
Desevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSSDesevolvimento Web Client-side - CSS
Desevolvimento Web Client-side - CSS
 
Desevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTMLDesevolvimento Web Client-side - HTML
Desevolvimento Web Client-side - HTML
 

Último

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometriajucelio7
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfIvoneSantos45
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Vitor Mineiro
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxssuserf54fa01
 
historia Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppthistoria Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.pptErnandesLinhares1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila RibeiroMarcele Ravasio
 

Último (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometria
 
interfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdfinterfaces entre psicologia e neurologia.pdf
interfaces entre psicologia e neurologia.pdf
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptx
 
historia Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppthistoria Europa Medieval_7ºano_slides_aula12.ppt
historia Europa Medieval_7ºano_slides_aula12.ppt
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
 

Introdução a plataforma de aplicativos Redu

  • 1. Plataforma de Aplicativos 101 Guilherme Cavalcanti Líder técnico, plataforma de aplicativos
  • 2. Apresentações • Guilherme Cavalcanti • Desenvolvedor Web desde 2007 • Granduando, CIn-UFPE • Co-fundador do Redu • Líder técnico do time da plataforma de aplicativos @ Redu • Twitter/Delicious/Github: • /guiocavalcanti
  • 3. Equipe Estamos contratando! jobs@redu.com.br • 15 pessoas • Designers • Desenvolvedores • Pesquisadores • Negócio
  • 4. O que é a plataforma de aplicativos?
  • 5. Mercado de educação • Editoras • Produtoras de mídias educativas • Sistemas de Gestão Acadêmica • Marketplace de aplicativos educacionais
  • 6. Importância da disciplina 1. Necessidade de integração de tecnologias 2. Demanda por desenvolvedores de aplicativos educacionais
  • 7. Tipo de aplicativos • Canvas • Externos • Mobile, desktop, etc • Plugins sociais
  • 9. Canvas • Funciona dentro do Redu • Like facebook apps • Para o usuário final, faz parte do Redu
  • 12. Infraestrutura • Se comunica com o Redu via HTTP (API REST) • As simple as an <iframe> • Plugins sociais (em breve) • SDK JavaScript (em breve) • Redu Bootstrap (alpha)
  • 13. Mais informações • Vai ficar dentro da Disciplina • Largura máxima de 720px • Autenticação via JavaScript (OAuth2) • Requisições cross-domain permitidas (CORS) • Inicialmente compatível apenas com FF e Chrome (versões recentes)
  • 15. Aplicativos externos • Mobile: aplicativos Android, iOS • Plugins sociais: mural, meus cursos • Aplicativos desktop • Sistema de gestão acadêmica • ERPs • Analytics services • Games
  • 16. Infraestrutura • Se comunica com o Redu via HTTP (API REST) • SDKs e wrappers a serem construídos
  • 17. O que temos pronto?
  • 18. API REST • Plain old HTTP • 100% documentada • Autenticação por OAuth2
  • 20. WTH: API ...is a specification intended to be used as an interface by software components to communicate with each other. Someone at Wikipedia
  • 21. WHT: REST • Estilo arquitetural para sistemas distribuidos • Levado em conta na construção da World Wide Web • Amplamente utilizado em Webservices públicos • Roy Fielding
  • 22. WHT: REST • Client-server: separação de responsabilidades • Stateless: escalabilidade • Uniform inteface: portabilidade
  • 23. Documentação • Disponível em developers.redu.com.br • Open-source: • https://github.com/redu/redu.github.com/ • Aceitamos correções
  • 24. Content-type • JSON • XML (alguém precisa?) • form-urlencoded
  • 26. OAuth2 • Como descobrir quem fez qual requisição? • OAuth2 Provider • Tudo depende de um token
  • 27. Papéis Resource owner Usuário da aplicação Client application Aplicação Resource/authorization Redu Server
  • 28. OAuth2 : regras 1. Client applications atuam (role play) em nome do resource owner 2. Client applications não guardam login e senha do resource owner 3. Client applications pedem autorização para atuar em nome do resource owner
  • 29. Pedindo seu token em Python 1 from rauth.service import OAuth2Service 2 4 redu = OAuth2Service( 5 name='redu', 6 authorize_url='http://redu.com.br/oauth/authorize', 7 access_token_url='http://redu.com.br/oauth/token', 8 consumer_key='YF6tokenI45Z2tokenk9ttokenoDmCBH', 9 consumer_secret='kMkrtokenhfoMHLZOtokenCGAZRZtoken') 10 11 print 'Visit this URL in your browser: ' + redu.get_authorize_url() 12 16 code = raw_input('Enter the PIN: ') 17 19 data = dict(code=code, grant_type='authorization_code',redirect_uri='') 20 23 access_token = redu.get_access_token('POST', data=data) 25 26 print 'The access token is: ' + access_token[access_token] https://github.com/redu/oauth-consumers
  • 30. Pedindo seu token em Ruby 3 require "oauth2" 4 5 consumer_key ='YF6btoken3jek9tRbGptokenCBH' 6 consumer_secret ='kMkrBKyadsMHLZO3MBdasZRZEdasL' 7 8 client = OAuth2::Client.new(consumer_key, consumer_secret, 10 :site => 'http://redu.com.br') 11 12 puts "Already have a PIN? [y/n]:" 13 if gets.chomp == 'n' 14 puts "Authorize: " 15 puts client.auth_code.authorize_url 16 end 17 18 puts "Insert the pin: " 19 pin = gets.chomp 20 token = client.auth_code.get_token(pin) 21 puts "The Access Token is #{token.token}" https://github.com/redu/oauth-consumers