Search buenodc

Nesta página
  1. Objetivo do Projeto
  2. Estrutura Geral do Projeto
  3. Requisitos Obrigatórios
  4. Requisitos Não Funcionais
  5. Etapas de Desenvolvimento (Milestones)
  6. Requisitos Adicionais (Opcionais)
  7. Critérios de Avaliação
  8. Fator de Defesa Técnica
  9. Entrega e defesas

Projeto Web — Loja Virtual

Disciplina: Linguagem de Programação Web II
Curso Técnico em Informática

Objetivo do Projeto

O objetivo deste projeto é desenvolver uma aplicação web utilizando Spring Boot e Thymeleaf para simular uma pequena loja virtual. O sistema deverá integrar o front-end desenvolvido anteriormente na disciplina Web I com um back-end conectado a um banco de dados relacional. O foco principal do projeto será a implementação de funcionalidades web dinâmicas utilizando CRUD, persistência de dados e integração entre interface e banco de dados.

Estrutura Geral do Projeto

O sistema deverá simular uma pequena loja virtual contendo página inicial dinâmica, página de detalhes dos produtos, integração com banco de dados, operações de CRUD, busca de produtos e pelo menos uma funcionalidade adicional relacionada ao contexto da loja.

Requisitos Obrigatórios

O projeto deverá implementar os requisitos descritos abaixo.

1. Página Inicial e Detalhes do Produto

A página inicial deverá exibir dinamicamente os produtos cadastrados no banco de dados, apresentando nome, imagem e preço. Cada produto deverá possuir um link para uma página de detalhes, na qual serão exibidas todas as informações relacionadas ao produto selecionado.

2. CRUD

O sistema deverá possuir no mínimo duas entidades com CRUD completo. Cada entidade deverá permitir operações de cadastro, listagem, visualização individual, edição e exclusão via interface web.

Uma das entidades obrigatoriamente deverá ser Produto. A segunda entidade poderá ser definida livremente pelo aluno, desde que faça sentido dentro do contexto da loja virtual. Exemplos: Categoria, Marca, Cliente, Fornecedor etc.

Com múltiplas entidades no mesmo projeto, recomenda-se organizar e padronizar os nomes das rotas adotando o padrão amplamente utilizado pela indústria:

Convenções sobre os nomes das rotas das entidades

OperaçãoMétodoRotaArquivo HTML
Listar todosGET/produtoslista.html
Formulário novoGET/produtos/novocriar.html
Criar recursoPOST/produtosredirect
DetalhesGET/produtos/{id}detalhes.html
Formulário editarGET/produtos/{id}/editareditar.html
AtualizarPOST/produtos/{id}/atualizarredirect
ExcluirPOST/produtos/{id}/excluirredirect

3. Funcionalidade da Loja

Além das entidades principais, o sistema deverá implementar pelo menos uma funcionalidade adicional relacionada ao contexto da loja virtual. A funcionalidade deverá possuir integração com banco de dados e interface web. Exemplos:

  • Lista de Desejos: Permite que usuários salvem produtos de interesse para consultar posteriormente em uma página personalizada.
  • Comentários de Produtos: Permite registrar comentários e opiniões relacionados aos produtos cadastrados na loja.
  • Produtos em Destaque: Permite selecionar produtos específicos para serem exibidos em uma seção especial da página inicial.
  • Banner Promocional: Permite cadastrar banners promocionais contendo imagem, título e descrição para divulgação de ofertas da loja.
  • Lista de Cupons: Permite cadastrar cupons promocionais contendo código e percentual de desconto.
  • FAQ da Loja: Permite cadastrar perguntas e respostas frequentes para auxiliar usuários da loja virtual.
  • Newsletter: Permite cadastrar e listar e-mails de usuários interessados em receber novidades e promoções da loja.

Importante: cada dupla deverá implementar uma funcionalidade diferente das demais. As duplas deverão se organizar previamente para garantir que não haja repetição de funcionalidades entre os grupos. 

4. Busca

O projeto deverá implementar um mecanismo de busca na página inicial utilizando o operador LIKE do SQL. A busca deverá filtrar dinamicamente os produtos cadastrados no banco de dados e exibir os resultados diretamente na interface web.

5. Validações

A aplicação deverá conter pelo menos três validações diferentes relacionadas aos dados de entrada do sistema. As validações deverão ser implementadas no back-end da aplicação (código java). Validações no HTML são importantes e válidas, mas não contarão pontos nesse critério quando apresentadas sozinhas. Exemplos incluem campos obrigatórios, tamanho mínimo de texto, e-mails válidos e preços maiores que zero.

Requisitos Não Funcionais

A aplicação deverá possuir uma interface organizada e funcional, reutilizando os layouts desenvolvidos anteriormente na disciplina Web I. Serão considerados aspectos como alinhamento consistente dos elementos, menu funcional, tipografia legível, uso consistente de cores, navegação adequada entre páginas e organização do código.

Etapas de Desenvolvimento (Milestones)

O desenvolvimento do projeto deverá ocorrer gradualmente. Inicialmente recomenda-se configurar o projeto Spring Boot, integrar o front-end desenvolvido anteriormente e estabelecer a conexão com o banco de dados. Em seguida deverá ser implementado o CRUD completo da entidade principal, seguido da segunda entidade. Após isso recomenda-se implementar a busca, validações e melhorias finais de organização e interface.

Requisitos Adicionais (Opcionais)

A implementação de funcionalidades extras poderá aumentar a nota final do projeto até o limite máximo de 10 pontos. Entre as possibilidades estão upload de imagens para produtos, paginação da listagem, funcionalidades assíncronas utilizando AJAX (como por exemplo CEP), hospedagem e publicação, etc.

Critérios de Avaliação

CritérioSubcritériosPontos
Página inicial e detalhesListagem carregada do banco (0,4), exibição correta dos produtos (0,2), página de detalhes funcional (0,2) e navegação entre páginas (0,2)1,0
CRUD ProdutoCadastro (0,4), listagem (0,4), detalhes (0,4), edição (0,4) e exclusão (0,4) funcionando corretamente2,0
CRUD 2Cadastro (0,4), listagem (0,4), detalhes (0,4), edição (0,4) e exclusão (0,4) funcionando corretamente2,0
Funcionalidade da lojaIntegração com banco de dados (0,4), interface funcional (0,3) e funcionamento correto da funcionalidade proposta (0,3)1,0
Busca utilizando LIKECampo de busca funcional (0,4), utilização correta do LIKE (0,4) e exibição dinâmica dos resultados (0,2)1,0
ValidaçõesPresença de validações diferentes (0,5), mensagens de erro adequadas (0,3) e tratamento correto das entradas (0,2)1,0
Organização e qualidade do códigoIndentação adequada (0,2), padronização de nomes (0,3), separação correta dos arquivos (0,3) e clareza do código (0,2)1,0
Interface e navegaçãoLayout (0,2), alinhamento consistente (0,2), menu funcional (0,2), tipografia legível (0,2) e uso consistente de cores (0,2)1,0

Total: 10 pontos

Fator de Defesa Técnica

A nota final do projeto estará condicionada à defesa técnica individual dos integrantes da dupla. Durante a apresentação, os alunos poderão ser solicitados a explicar trechos do código, demonstrar o funcionamento do sistema, localizar funcionalidades no projeto e realizar pequenas modificações relacionadas ao sistema desenvolvido.

O objetivo desta etapa é verificar a compreensão do projeto implementado e a participação efetiva de cada integrante no desenvolvimento da aplicação.

Após a correção do projeto, será aplicado individualmente um fator de defesa técnica de acordo com o desempenho apresentado pelo aluno durante a apresentação.

Nível de compreensãoFator aplicado
Excelente compreensão do projeto1.0
Boa compreensão do projeto0.9
Compreensão parcial do projeto0.7
Baixa compreensão do projeto0.5
Não demonstrou compreensão mínima do projeto0.3

Exemplo de cálculo

Projeto avaliado com nota 8,0.

Desempenho na apresentaçãoNota final
Excelente compreensão (1.0)8,0
Boa compreensão (0.9)7,2
Compreensão parcial (0.7)5,6
Baixa compreensão (0.5)4,0

Projetos com funcionalidades implementadas mas sem demonstração mínima de compreensão técnica poderão ter redução significativa na nota final.

Entrega e defesas

As entregas e avaliações ocorrerão de forma gradual em duas etapas:

  • 03/06 — Primeira etapa: os critérios Página inicial e detalhes, CRUD Produto e CRUD 2 deverão estar implementados e funcionando corretamente.
  • 17/06 — Última etapa: os demais critérios deverão estar implementados e o projeto completo deverá ser apresentado.