Temos um site Magento (em Linux CentOS) com material em vídeo-aulas. São produtos digitais que chamamos de "módulos".
Queremos implementar um módulo (Magento) de busca que atenda às nossas necessidades específicas.
----------------
PROBLEMA
----------------
Muitas vezes o aluno quer fazer o que chamamos de "mapeamento de edital". Na prática, ele tem um edital em mãos e quer saber que protudos de nosso site "cobrem" o conteúdo que ele precisa estudar. O edital traz um monte de palavras-chave e expressões que, em princípio, serviriam para buscar nossos produtos pela própria descrição que o produto possui na loja.
Mas, usando a própria busca do Magento, o trabalho manual é grande.
Temos a página
http://www.provasdeti.com.br/catalogsearch/advanced/, mas o aluno precisa pegar palavra por palavra e exaustivamente caçar módulos um a um.
Além disso, nem sempre a palavra que aparece nos campos usados pela busca do Magento serve para indicar o melhor módulo ao aluno. Isso porque certas palavras fazem parte da descrição do que o professor tratou em aula, mas não significam que aquele seja o tópico principal (e que o módulo seja o mais indicado). ÀS vezes é um termo fora de contexto que gera 5, 10,..
. Resultados que não têm nada a ver com o que o aluno precisa (isso para apenas um termo de busca).
Enfim, nós precisamos de um Módulo para Magento que faça uma busca por produtos usando dados de uma tabela customizada que mapeia palavras/expressões para módulos direcionados.
----------------
FRONTEND
----------------
O aluno entrará com um texto corrido e limitado a "X" caracteres, por exemplo:
"xml/xsd (xml01) json. Programação Java para Web. Servlets (JEE02), JSP (JEE03), Ajax (AJAX), JQuery e Frameworks JSF 2 (JEE03), Hibernate.
Conceitos de testes de software. Verificação e validação, tipos de teste (unidade, integração, funcional, aceitação, carga, desempenho, etc). Testes de unidade em Java com JUnit."
E receberá uma página com uma coluna organizando os módulos indicados para cada palavra (ou expressão) presente no seu texto:
JSON Produto (link p/ detalhes) Colocar no Carrinho
AJAX Produto (link p/ detalhes) Colocar no Carrinho
JEE03 Produto (link p/ detalhes) Colocar no Carrinho
"Frameworks JSF 2" Produto (link p/ detalhes) Colocar no Carrinho
"Verificação e validação" Produto (link p/ detalhes) Colocar no Carrinho
...
--------------
BACKEND
--------------
No backend, precisamos poder alimentar uma tabela (ou tabelas) onde o relacionamento entre palavras / "expressões" e os módulos será criado. Assim, nós mesmos vamos dizer que módulo/produto será indicado para cada palavra-chave ou "expressão".
Deverá ser possível escolher um módulo e listar/editar as palavras no BD:
Módulo:
XPTO (produto digital magento)
Palavras (edite abaixo as palavras ou expressões associadas):
xpto "análise de xpto" "xpto avançado" nono nono no no "qualquer expressão"
---------------
requisitos
---------------
1. Poder armazenar, no backend, mais de uma palavra/expressao por produto.
2.
Retornar mais de um produto por palavra/expressao, quando ela estiver associada a mais de um módulo/produto na loja.
3. Permitir armazenar (backend) e buscar (frontend) expressões "entre aspas".
4. Quando o resultado trouxer o mesmo módulo várias vezes, fazer a consolidação.
É Simples.
Abraço.
Delivery term: May 25, 2015