alessandroliafook / projetosi Goto Github PK
View Code? Open in Web Editor NEWProjejto para conclusão da disciplina de SI
License: MIT License
Projejto para conclusão da disciplina de SI
License: MIT License
O front-end do sistema, que usa o thymeleaf, está altamente acoplado ao back-end. Solução, desacoplar substituindo o thymeleaf pelo AngularJS.
Problema: Existe uma classe com nome "An" que é a responsável por controlar a comunicação entre o repositório e a comunicação com o frontend.
Solução: Modificar a denominação da classe para um nome que indique sua função.
Problema: No frontend o tipo do usuário é controlado por um inteiro, fazendo uso de um swith/case na classe UserServiceImpl.
Solução: Utilizar o padrão Type-Safe Enum para classificar os tipos de usuário, e receber o tipo como uma string.
Problema: O bando de dados de armazenamento utilizado insere a necessidade de instalação de sistemas auxiliares, aumentando ao complexidade do sistema sem nenhum ganho aparente.
Solução: Remoção do uso do banco de dados do postgres para o bando de dados default do springboot.
Descrição: Usuário pode cadastrar um novo tipo de anúncio: serviço (por exemplo, encanador, ou eletricista). O usuário que comprar o serviço pode agendar um dia e horário. Apenas usuários Pessoa Jurídica podem colocar anúncios de Empregos e Serviços.
Descrição: O usuário quer visualizar um ranking de vendedores, baseado na avaliação dos seus anúncios.
Descrição: O projeto deve fornecer autenticação e acesso criptografado (https).
Escrever um documento contendo a descrição das bad smells e as soluções implementadas.
Problema: A classe Notas se constitui apenas de um único atributo que guarda uma coleção de constates.
Solução: Aplicação do padrão Type-Safe Enum.
Problema: Existe uma classe responsável pela administração do repositório chamada UsuarioServiceImpl que é instanciada na classe do título com uso de seus métodos internos.
Solução: Excluir a classe do título transferindo o método para a classe UsuarioServiceImpl.
Problema: Existência de método que não indica claramente o que faz(getR) na classe do título.
Solução: Substituição do nome do método por algo que indique sua funcionalidade.
Descrição: Vendedores podem ser notificados sobre mudanças nos seus anúncios (compras).
Problema: As classes de usuário e anúncio encontram-se no mesmo pacote.
Solução: Separar as classes em pacotes distintos e com nomes sigificativos.
Descrição: Cada usuário que comprar algo de um anúncio fica com débito, e se vender algo fica com crédito. Assim, toda vez que o usuário logar, deve ser exibido na sua tela um extrato de seu saldo créditos/débitos, sendo que o saldo deve ser exibido em todas as telas.
Descrição: Um anúncio pode ser comprado por qualquer usuário (se forem móveis ou imóveis, apenas). Quando comprar, o usuário fica com o débito do valor, e o usuário que anunciou fica com o crédito. Neste caso, o anúncio já não existe mais no sistema, assim que for comprado/vendido.
Base da interface com as dependências a serem utilizadas
Descrição: O sistema deve verificar a entrada: e-mail está correto? valor do anúncio é um número positivo? etc.
Problema: A classe usuário e a classe UsuárioForm tem muitos membros idênticos.
Solução: remoção de uma das classes do sistema, com as devidas adptações.
Descrição: Vendedores e compradores podem avaliar anúncio (pelo comprador) ou comprador (pelo vendedor), com estrelas e comentários;
Descrição: Cada usuário pode fazer busca de anúncios por tipo e data; cada usuário pode também visualizar seus próprios anúncios.
Problema: Existe duplicação de membros nas classes Anuncio e AuncioForm.
Solução: Remover uma das duas, e fazer as devidas adaptações no sistema.
Descrição: Usuário pode visualizar perfil dos anunciantes, e definir seus anunciantes favoritos.
Problema: Uso de interfaces para implementar serviços sem a necessidade de mudança de comportamento.
Solução: Exclusão das interfaces, e uso de classes singulares para cada serviço a ser administrado.
Problema: Cada anúncio carrega um conjunto com as nomenclaturas de todas as constantes que indicam seu tipo.
Solução: Usar o padrão Type-Safe Enum para classificar os tipos que são constantes no sistema.
Descrição: O projeto deve ser colocado no Heroku, para facilitar a correção.
Construir tela principal do app utilizando as diretivas do Material Design.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.