SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Django para portais de alta visibilidade.
http://github.com/avelino
@avelino0 - /in/avelino0
http://github.com/rochacbruno
@rochacbruno - /in/rochacbruno
OPen Publishing System
"Opps é uma plataforma ou toolkit para “montar” um CMS,
desenvolvido com Django, acompanha diversos pacotes
que visam suprir a necessidade de grandes portais de
conteúdo. Além disso o Opps possui uma estrutura flexível
para criação de novas apps."
YACOWS
+16 apps
Versão 0.1.x (Stable)
Versão 0.2.x (Developer)
Evolução do projeto
O Opps é utilizado em portais de grande trafego.
www.guiame.com.br
+ de 1,370,392 pageviews/dia,
+ de 2500 requests simultaneos
● Django é uma ótima plataforma (para trabalhar com banco relacional);
● CMS em Django não são tão legais como outros no mercado;
● Mercado editorial tem algumas peculiaridades;
● Alguns projetos Open Source não quiseram seguir com a proposta sugerida;
● Controle de todos os apps externos do CMS;
● Performance: inner join não é a melhor opção para tudo;
● Escalabilidade;
Porque criar um novo CMS?
● CMS escrito em Django;
● Escalabilidade;
● Denormalização (para performance);
● Foco no jornalista, workflow padrão simples;
● Multi-site, gerenciar multi sites dentro de apenas uma interface;
● Flexivel para desenvolvimento de novas apps;
● Modular (facilidade para criar apps);
● Integracao com Thumbor e outros serviços de imagens;
● Conceito de BOX que facilita o desenvolvimento front-end;
● Nunca perder uma URL que já existiu (redirecionamentos);
Qual é o diferencial do Opps?
● Organizacao de conteudo baseado em arvore de canais (mptt)
● Criação de tipos de conteúdo customizados (Container)
● Gerenciamento de urls (smart slug)
● Gestão de imagens, crop, multi upload e integrações (THUMBOR)
● Organizacao de homepages baseado no conceito de "boxes"
● Mobile middleware
● Django resources: Multisite framework e Redirect framework
● Customização do admin dinâmicamente via settings
● Admin personalizado com Django x-admin (versão 0.2)
● Gerador de "bootstrap" para criação de novas apps
Key features
canal subcanal conteúdo
{% load box_tags %}
<section>
{% get_box 'slider-home' template='slider_home.html' %}
</section>
Arquitetura
Arquitetura (Tipo de conteúdo)
Arquitetura (Controle de versão)
Performance
Opps apps
● Flatpages
● Post
● Link
● Imagens
● Ganalytics
● wiki
● gamification
● blogs
● registration
● facebook-comments
● sponsor
● Hubcast
● ...
github.com/opps/opps-feedcrawler | pip install opps-feedcrawler
$> manage.py refresh_feeds
Box dinâmico
{% load box_tags %}
<section>
{% get_box 'blog-birner' template='blog_birner.html' %}
</section>
http://virgula.com.br/esporte
RSS, JSON, XML, XML + FTP etc..
● Documentação;
● Sprint mensal;
● Código: desenvolver recursos propostos via issues;
● Divulgação;
● Utilizando;
● Testando;
● Feedback;
Como contribuir?
github.com/opps
Sprint, venha você também!
http://www.soudevcon.com.br
Trilha #Python
21 de Setembro
Osasco - SP
Perguntas?

Mais conteúdo relacionado

Mais procurados

5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introduçãoAgrupamento de Escolas da Batalha
 
Oficina Joomla para Iniciantes
Oficina Joomla para IniciantesOficina Joomla para Iniciantes
Oficina Joomla para IniciantesEliel Cruz
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno Rocha
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMSleogermani
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteHaste Design
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasSusana Oliveira
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressWordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressRuan Barbosa
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressJulian Fernandes
 
LAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialLAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialGabriela Ferrara
 
Introdução ao Wordpress
Introdução ao WordpressIntrodução ao Wordpress
Introdução ao WordpressAline Corso
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
Gestão de conteúdos com aplicações instaladas em servidores
Gestão de conteúdos com aplicações instaladas em servidoresGestão de conteúdos com aplicações instaladas em servidores
Gestão de conteúdos com aplicações instaladas em servidoresHenriqueta Sofia Djalo
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Celso Fernandes
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websitesIntrus
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Wordpress SEO - Muito além de plugins
Wordpress SEO - Muito além de pluginsWordpress SEO - Muito além de plugins
Wordpress SEO - Muito além de pluginsFabio Ricotta
 

Mais procurados (20)

5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
5 – Desenvolvimento de Páginas Web Dinâmicas PHP: introdução
 
Oficina Joomla para Iniciantes
Oficina Joomla para IniciantesOficina Joomla para Iniciantes
Oficina Joomla para Iniciantes
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
WordPress como CMS
WordPress como CMSWordPress como CMS
WordPress como CMS
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Conhecendo o WordPress
Conhecendo o WordPressConhecendo o WordPress
Conhecendo o WordPress
 
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPressWordCamp SP 2014 - SEO para Desenvolvedores WordPress
WordCamp SP 2014 - SEO para Desenvolvedores WordPress
 
Melhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPressMelhorando o desempenho do seu WordPress
Melhorando o desempenho do seu WordPress
 
LAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivialLAMP: Desenvolvendo além do trivial
LAMP: Desenvolvendo além do trivial
 
Introdução ao Wordpress
Introdução ao WordpressIntrodução ao Wordpress
Introdução ao Wordpress
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)
 
Gestão de conteúdos com aplicações instaladas em servidores
Gestão de conteúdos com aplicações instaladas em servidoresGestão de conteúdos com aplicações instaladas em servidores
Gestão de conteúdos com aplicações instaladas em servidores
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websites
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Wordpress SEO - Muito além de plugins
Wordpress SEO - Muito além de pluginsWordpress SEO - Muito além de plugins
Wordpress SEO - Muito além de plugins
 

Destaque

Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CIPython Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CIBruno Rocha
 
Flask admin vs. DIY
Flask admin vs. DIYFlask admin vs. DIY
Flask admin vs. DIYdokenzy
 
What The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsWhat The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsBruno Rocha
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBBruno Rocha
 
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015Bruno Rocha
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flaskJim Yeh
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python MeetupAreski Belaid
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoLoiane Groner
 
When to use Node? Lessons learned
When to use Node? Lessons learnedWhen to use Node? Lessons learned
When to use Node? Lessons learnedbeatlevic
 

Destaque (11)

Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CIPython Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CI
 
Flask admin vs. DIY
Flask admin vs. DIYFlask admin vs. DIY
Flask admin vs. DIY
 
What The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIsWhat The Flask? and how to use it with some Google APIs
What The Flask? and how to use it with some Google APIs
 
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDBFlask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
Flask Full Stack - Desenvolvendo um CMS com Flask e MongoDB
 
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
Data Developer - Engenharia de Dados em um time de Data Science - Uai python2015
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python Meetup
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está ComeçandoCurso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
When to use Node? Lessons learned
When to use Node? Lessons learnedWhen to use Node? Lessons learned
When to use Node? Lessons learned
 

Semelhante a Opps - Uma plataforma em Django para portais de conteúdo de alta visibilidade

Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: TodeschiniMMDA
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6SEA Tecnologia
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portaisFelipe Perin
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015Emanuel Santos
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesEdgar Silva
 

Semelhante a Opps - Uma plataforma em Django para portais de conteúdo de alta visibilidade (20)

Django
DjangoDjango
Django
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: Todeschini
 
Workshop - Ionic + firebase
Workshop - Ionic + firebaseWorkshop - Ionic + firebase
Workshop - Ionic + firebase
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Angularjs
AngularjsAngularjs
Angularjs
 
Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portais
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
As Novidades do I3geo
As Novidades do I3geoAs Novidades do I3geo
As Novidades do I3geo
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
WSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e SuportesWSO2 - Portfólio de Produtos, Soluções e Suportes
WSO2 - Portfólio de Produtos, Soluções e Suportes
 

Mais de Bruno Rocha

Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rustBruno Rocha
 
The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!Bruno Rocha
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laBruno Rocha
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
 
Carreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de TrabalhoCarreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de TrabalhoBruno Rocha
 
Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014Bruno Rocha
 
Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Bruno Rocha
 
Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Bruno Rocha
 
Guia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultosGuia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultosBruno Rocha
 
Using web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksUsing web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksBruno Rocha
 
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconDesenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconBruno Rocha
 

Mais de Bruno Rocha (11)

Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!The quality of the python ecosystem - and how we can protect it!
The quality of the python ecosystem - and how we can protect it!
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Carreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de TrabalhoCarreira de Programador e Mercado de Trabalho
Carreira de Programador e Mercado de Trabalho
 
Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014Quokka CMS - Content Management with Flask and Mongo #tdc2014
Quokka CMS - Content Management with Flask and Mongo #tdc2014
 
Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014
 
Flask for CMS/App Framework development.
Flask for CMS/App Framework development.Flask for CMS/App Framework development.
Flask for CMS/App Framework development.
 
Guia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultosGuia alimentar de dietas vegetarianas para adultos
Guia alimentar de dietas vegetarianas para adultos
 
Using web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworksUsing web2py's DAL in other projects or frameworks
Using web2py's DAL in other projects or frameworks
 
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qconDesenvolvimento web ágil com Python e web2py #qconsp #qcon
Desenvolvimento web ágil com Python e web2py #qconsp #qcon
 

Opps - Uma plataforma em Django para portais de conteúdo de alta visibilidade

  • 1. Django para portais de alta visibilidade.
  • 3. OPen Publishing System "Opps é uma plataforma ou toolkit para “montar” um CMS, desenvolvido com Django, acompanha diversos pacotes que visam suprir a necessidade de grandes portais de conteúdo. Além disso o Opps possui uma estrutura flexível para criação de novas apps."
  • 6. Versão 0.1.x (Stable) Versão 0.2.x (Developer) Evolução do projeto
  • 7. O Opps é utilizado em portais de grande trafego. www.guiame.com.br + de 1,370,392 pageviews/dia, + de 2500 requests simultaneos
  • 8.
  • 9. ● Django é uma ótima plataforma (para trabalhar com banco relacional); ● CMS em Django não são tão legais como outros no mercado; ● Mercado editorial tem algumas peculiaridades; ● Alguns projetos Open Source não quiseram seguir com a proposta sugerida; ● Controle de todos os apps externos do CMS; ● Performance: inner join não é a melhor opção para tudo; ● Escalabilidade; Porque criar um novo CMS?
  • 10. ● CMS escrito em Django; ● Escalabilidade; ● Denormalização (para performance); ● Foco no jornalista, workflow padrão simples; ● Multi-site, gerenciar multi sites dentro de apenas uma interface; ● Flexivel para desenvolvimento de novas apps; ● Modular (facilidade para criar apps); ● Integracao com Thumbor e outros serviços de imagens; ● Conceito de BOX que facilita o desenvolvimento front-end; ● Nunca perder uma URL que já existiu (redirecionamentos); Qual é o diferencial do Opps?
  • 11. ● Organizacao de conteudo baseado em arvore de canais (mptt) ● Criação de tipos de conteúdo customizados (Container) ● Gerenciamento de urls (smart slug) ● Gestão de imagens, crop, multi upload e integrações (THUMBOR) ● Organizacao de homepages baseado no conceito de "boxes" ● Mobile middleware ● Django resources: Multisite framework e Redirect framework ● Customização do admin dinâmicamente via settings ● Admin personalizado com Django x-admin (versão 0.2) ● Gerador de "bootstrap" para criação de novas apps Key features
  • 13. {% load box_tags %} <section> {% get_box 'slider-home' template='slider_home.html' %} </section>
  • 15. Arquitetura (Tipo de conteúdo)
  • 18. Opps apps ● Flatpages ● Post ● Link ● Imagens ● Ganalytics ● wiki ● gamification ● blogs ● registration ● facebook-comments ● sponsor ● Hubcast ● ... github.com/opps/opps-feedcrawler | pip install opps-feedcrawler $> manage.py refresh_feeds Box dinâmico {% load box_tags %} <section> {% get_box 'blog-birner' template='blog_birner.html' %} </section> http://virgula.com.br/esporte RSS, JSON, XML, XML + FTP etc..
  • 19. ● Documentação; ● Sprint mensal; ● Código: desenvolver recursos propostos via issues; ● Divulgação; ● Utilizando; ● Testando; ● Feedback; Como contribuir? github.com/opps
  • 21.