Giter VIP home page Giter VIP 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 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

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.

Erro ao gerar javadoc

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

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.

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.

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

Locação sem Filmes

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

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

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

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.

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.

🍺 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

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.

🐛 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"

Locação sem Valor

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

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;

Segurança

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

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.

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.