Giter Club home page Giter Club logo

locadoraspringboot's Introduction

LocadoraSpringBoot

Projeto Spring Boot para criação dos testes unitários e bug report

Instruções para execução

Crie um banco de dados mysql com o nome de locadora

Rotas:

localhost:8080
localhost:8080/usuario
localhost:8080/filme
localhost:8080/locacao

API REST para teste

GET requisições para /api/usuario retorna uma lista de usuários em formato JSON

GET requisições para /api/usuario/1 retorna o usuário com o ID 1

POST requisições para /api/usuario com um objeto Usuario JSON cria um novo usuário

PUT requisições para /api/usuario/1 com um objeto Usuario JSON atualiza o usuário com ID 1

DELETE requisições para /api/usuario/1 deleta o usuário com ID 1

DELETE requisições para /api/usuario deleta todos os usuários

As mesmas rotas estão disponíveis para Filme e Locacao.

Falha ao rodar o Maven?

Em caso de falha ao executar o maven, é provável que o motivo seja o Cache do Netbeans.

Neste caso, remova todo conteúdo da pasta ~/AppData/Local/Netbeans/Cache e também do diretório ~/AppData/Roaming/Netbeans/8.2/var. Onde "8.2" representa a versão da IDE instalada.

locadoraspringboot's People

Contributors

angelogluz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

locadoraspringboot's Issues

Erro ao gerar javadoc

Ao tentar gerar javadoc, o programa da erro no arquivo dataUtils.java pois nos comentários possui caracteres de ">" e "<"

Locação

Quando o usuário efetua a locação, na lista abaixo dos filmes disponíveis não aparece qual filme foi locado, simplesmente some da lista de filmes disponíveis. Não temos controle de qual filme está com o usuário.

Locação sem Valor

A lista de Locações não possui informações do valor total da locação.
es06

Segurança

Usuário sem senha no banco com permissão total.

🐛 Erro de semântica no filme.html, locacao.html e usuario.html

    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>

        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"/>
    
<nav class="nav">
  <a class="nav-link active" href="/usuario">Usuario</a>
  <a class="nav-link" href="/filme">Filme</a>
  <a class="nav-link" href="/locacao">Locação</a>
</nav>
    
    </head>

Dentro da tag <head> não pode conter elementos do layout

Locação sem Filmes

A lista de Locações não possui informações sobre os Filmes locados em cada Locação.
es06

Pouco controle de informações no cadastro de usuário.

Na página de cadastro de usuário existem poucos campos para controlar o usuário. Apenas o campo nome aparece como forma de identificação, quando na verdade é necessário outros campos, como e-mail, telefone, endereço, entre outros, para que se o cliente alugar um filme e não devolver no prazo correto, seja possível contatá-lo.

Erro de CSS nas páginas de erro

Erro de CSS nas páginas de erro, arquivos: 404.html e 500.html.
Na linha 209 nos dois arquivos, a propriedade color da classe button não contém uma cor definida, causando erro.

Erro encontrado:
color: !important;

🐛 Select sem ID para label

                <input type="hidden" th:field="*{id}" />
                <label for="usuario">Usuário</label>
                <select class="custom-select" th:field="*{usuario}">
                    <option th:each="usuario : ${usuarios}"
                            th:value="${{usuario}}"
                            th:text="${usuario.nome}">
                        Usuário
                    </option>    
                </select>

<label for="usuario"> mas não no select não tem id="usuario"

🍺 Erro de sintaxe nos retornos de erro nas API's

    @RequestMapping(value = "/filme", method = RequestMethod.GET)
    public ResponseEntity<List<Filme>> listAllFilmes() {
        List<Filme> filmes = filmeDAO.findAll();
        if (filmes.isEmpty()) {
            return new ResponseEntity(HttpStatus.NO_CONTENT);
        }
        return new ResponseEntity<>(filmes, HttpStatus.OK);
    }

Se o array de filmes estiver vazio, vai chamar uma exceção, pois está retornando um ResponseEntity ao invés de ResponseEntity<>

Esse erro se repete em todos os retornos se o array ou variavel é nula das classes: FilmeControllerAPI LocacaoControllerAPI UsuarioControllerAPI

Perda de dados ao reinicar a aplicação

Podemos inserir novos usuários, filmes e locações. Feito isso analisamos as informações no banco de dados e vemos que tudo foi inserido corretamente. Porém quando paramos de rodar o main e recomeçamos logo em seguida, nota-se que o banco de dados perdeu as novas informações colocadas lá, ou seja, o novo usuário, filme e/ou locação que tínhamos acabado de inserir foi perdida assim que a aplicação parou de rodar.

Não permite a baixa do estoque

Aplicação oferece simplesmente a data de locação e a data de entrega, não conta como funcionalidades para verificar se o filme realmente foi entregue na data determinada bem como as multas

Campo preço mal formatado

Campo "Preço de Locação" da tela de "Filmes" não está formatado corretamente para visualização de valores em reais.

Validação no HTML

A validação ocorre somente no HTML, sendo assim e tomando de exemplo a locação de filmes podemos retirar o campo required e mesmo assim o filme vai ser alugado só que sem data de devolução.

erro1

Atualização na Página da Locação

Cada vez que o usuário seleciona determinado cliente, clica em salva se ele pressiona F5 para atualizar a página ele consegue alugar várias vezes o mesmo filme.

Campos de datas mal formatados

Campos "Data de Locação" e "Data de Entrega" do menu "Locação" não estão formatados corretamente para visualizar datas no formato PT-BR.

Documentação Readme com informação incorreta

Na seção Instruções de Execução há informações incorretas com relação as rotas.

Onde consta: localhost://8080
Corrigir para: localhost:8080

Onde consta: localhost://8080/usuario
Corrigir para: localhost:8080/usuario

Onde consta: localhost://8080/filme
Corrigir para: localhost:8080/filme

Onde consta: localhost://8080/locacao
Corrigir para: localhost:8080/locacao

Não permite exclusão de usuário.

A página de cadastro de usuário não da a possibilidade de exclusão de usuário, que faz com que cadastros que não eram pra acontecer permaneçam ao olhar do utilizador sem possibilidade de ação do mesmo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.