Palestra Joomla Day Rio - Case Portal Unisinos com Joomla 3.1.5

44
PORTAL UNISINOS UTILIZANDO JOOMLA 3.1.5

description

Palestra apresentada em 15/11/2013 no Joomla Day Rio sobre o case do Portal Unisinos utilizando o Joomla 3.1.5.

Transcript of Palestra Joomla Day Rio - Case Portal Unisinos com Joomla 3.1.5

PORTAL UNISINOS UTILIZANDO JOOMLA 3.1.5

• Johnny Salazar Reidel

• Gaúcho, morador do Rio Grande do Sul

• Gerente de Projetos Web na TI Corporativa da Unisinos

• Desenvolvedor Joomla desde 2006

• A Universidade do Vale do Rio dos Sinos – UNISINOS, é mantida pela rede Jesuítas e possui cerca de 30 mil alunos.

• Possui o campus principal em São Leopoldo, no Rio Grande do Sul, além de estar presente em outras 10 localidades.

• A área de Tecnologia da Informação é ligada diretamente a mantida e conta com 92 colaboradores.

Por que utilizamos Joomla?• Estrutura adequada para construções complexas

• Projeto Open Source com vasta contribuição

• Fácil de administrar

Temos 38 sites e 1 portal rodando em Joomla!!

Quando utilizamos Joomla?

sites, portais e aplicações

blogs

aplicações internas

Versões do Portal Unisinos

Portal Unisinos 1.0• Lançado em 2005

• Construído utilizando Mambo

• Chegou a ser migrado até a versão 1.15 do Joomla

• Composto de +/- 300 instalações Mambo / Joomla

Portal Unisinos 2.0• Lançado em 2010

• Construído utilizando Joomla 1.5

• Chegou a ser migrado até a versão 2.5 do Joomla

• Composto de 14 instalações Joomla

• Passou a incluir a área autenticada denominada como Minha Unisinos

Portal Unisinos 3.0• Lançado em Agosto/2013

• Construído utilizando uma única instalação Joomla 3.1.5

• Possui mais de mais de 7 mil páginas

• Mais de 2,5 milhões de visualizações de páginas/mês

• Aproximadamente 600 mil acessos/mês

• Processamento 77,78% mais rápido que o Portal anterior

Itens cadastrados no AdministratorArtigos 4264Módulos 2684Itens de menu 7723Menus 24Categorias 874

Itens ConstruídosComponentes back-end 12Componentes front-end 15Módulos front-end 32Plugins 6Templates 1

Como foi o projeto?• Conceito e Design empresa Brivia e Núcleo Digital da

Universidade

• Desenvolvimento 4 desenvolvedores da TI da Universidade

• Gerenciamento do Projeto utilizado método ágil – SCRUM

• Horas de desenvolvimento 3080 horas

• Período de desenvolvimento 6 meses

Desafios do projeto• Atualizar a versão do Joomla, utilizando uma única instalação

• Melhorar a performance

• Reformular o design e navegação

• Permitir acesso mobile

• Estabelecer novos padrões e nomenclaturas para o desenvolvimento

• Atender mudanças no posicionamento estratégico da Universidade

• Estruturar um novo ambiente mais seguro, estável e escalável

Infraestrutura do Portal

Arquitetura do Portal• Administração centralizada

• Funcionalidades genéricas e escaláveis

• Estrutura dividida por sites

• Definição de padrões de nomenclaturas

• Controle de ACL por funcionalidade

Integração com o ERP Totvs• Cursos de Extensão e Eventos

• Minha Unisinos (Perfis | Consulta de Turmas | Notas)

• Inscrições e Matrículas

• Gerenciamento de ERP Offline

• Central de Contatos

• Perguntas Frequentes

• ....

Autenticador• Autenticador único para o Portal, o ERP e outras aplicações

• Compartilha sessão entre sites Joomla

• Gera logs de acesso

• Autentica via LDAP

Diretório DEF• Estrutura de diretórios compartilhada com outras

aplicações

• Contempla:

• Parametrizações gerais

• Classes globais, de conexões e de integrações com ERP

• Scripts de CRONS

• Bibliotecas

• Webservice

Gerenciador de Cursos• Componente que gerencia todos os cursos da Universidade

• Possibilita de forma simples parametrizar a localidade, os períodos de inscrições e matrículas, os valores e as páginas de um curso

• Utiliza as bibliotecas do Joomla para gerar itens de menus, artigos e módulos

• Integrado com o ERP Totvs Educacional

• Cursos de extensão são cadastrados a partir de uma CRON

Vamos então ver na prática..http://unisinos.br

Mas nem tudo foi perfeito no projeto...

FALTANDO UMA SEMANA PARA COLOCAR O PROJETO NO AR, SURGE UM ENORME

PROBLEMA...

RESULTADO DO TESTE DE CARGA:

Somente 20 usuários simultâneos conseguem acessar o Portal.

O que fazer em um momento desses?

1ºAvisa a família que vaidormir no trabalho...

COLOCAR FOTO DO FELIPE DORMINDO COM A SEGUINTE LEGENDA “sim! Nós trabalhamos dia e noite e finais de semana para cumprir o prazo”

2ºCorre atrás do problema...

E qual era o problema?A lógica do framework não comporta a quantidade de itens de menu cadastrados.

Impactos no back-end

Aba “Atribuir itens de menus” na edição de um módulo

• Tempo de carregamento da página• Erro de Javascript ao salvar

Listagem de módulos cadastrados • Opção de filtro “Todos”• Coluna “Páginas” onde módulo é carregado

Aba “Módulo de atribuição deste item de menu” na edição de um item de menu

• Obtém todos os módulos e seus relacionamentos com menus

Impactos no front-end

Todas as páginas

• Função “load()” da classe “JMenuSite” carrega todos os itens de menu cadastrados e os percorre em vários laços “foreach”

OBS: o teste de carga foi realizado quando havia somente 4 mil itens de menu.

E como fica o mandamentode nunca mexer nos arquivos do Joomla?

Faltando uma semanapara colocar o projeto

no ar?

Só resta alterar o Joomla!

Solução 1• Somente os grupos

de menus são carregados.

• Itens de menus de cada nível são carregados a partir de requisições AJAX.

• Validação JS é feita somente em itens selecionados.

Solução 2• Removida a opção “Todos” do filtro de busca

• Removida a coluna “Página”

Solução 3• Removida a coluna “Módulo de Atribuição deste Item de Menu”

Solução 4 (a principal)• Reescrita a classe “JMenuSite” de forma a trabalhar

somente com os itens de menus necessários para o funcionamento da página• Breadcrumb

• Menus

• Página atual

Sugestões para a comunidade Joomla• Reformular a lógica de uso dos itens de menu

• Criar possibilidade de uso de categorias para os módulos

• Armazenar log de criação/edição de módulos

• Tornar administrável as opções de filtros nas listagens de registros dos componentes nativos do Joomla

Obrigado!

[email protected]

linkedin.com/in/johnnymgo

facebook.com/johnnymgo