Skip to content

gabripper/DSW1-Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSW1-Spring

Atividade avaliativa da disciplina Desenvolvimento de Software para Web 01 cujo objetivo é desenvolver um sistema para locação de bicicletas utilizando Spring e Java

Sistema para Locação de Bicicletas

Este projeto foi desenvolvido como uma parte avaliativa da disciplina Desenvolvimento de Software para Web 1, ministrada pelo professor Alan Demetrius. O principal objetivo desse trabalho é criar uma aplicação web para um sistema de locação de bicicletas, a partir de um conjunto de requisitos.

Requisitos da Aplicação

Aqui estão listados os requisitos que foram utilizados para desenvolver a aplicação:

O sistema deve possuir um cadastro de clientes, com os seguintes dados: e-mail, senha, CPF, nome, telefone, sexo e data de nascimento.
O sistema deve possuir um cadastro de locadoras, com os seguintes dados: e-mail, senha, CNPJ, nome e cidade.
O sistema deve possuir um cadastro de locações, com os seguintes dados: cliente, locadora e dia/horário da locação.
Assume-se que a duração da locação é de 1 hora e sempre inicia-se em “hora cheia” (13h 00min etc) O sistema deve atender aos seguintes requisitos:
R1: CRUD1 de clientes (requer login de administrador)
R2: CRUD de locadoras (requer login de administrador)
R3: Listagem de todos as locadoras em uma única página (não requer login)
R4: Listagem de todos as locadoras por cidade (não requer login). Preferencialmente a cidade deveria ser escolhida através de uma lista.
R5: Locação de uma bicicleta em uma locadora (requer login do cliente via e-mail + senha). Depois de fazer login, o cliente pode cadastrar uma locação. Para isso, deve escolher uma locadora (escolhendo a partir de uma lista), uma data, e deve ser gravado a locação na base de dados.
R6: Listagem de todas as locações de um cliente (requer login do cliente via e-mail + senha). Depois de fazer login, o cliente pode visualizar todas as suas locações gravadas.
R7: O sistema não deve permitir o cadastro de locações de um mesmo cliente ou de um mesma locadora em um mesmo dia/horário.
R8: Listagem de todas as locações de uma locadora (requer login da locadora via e-mail + senha). Depois de fazer login, a locadora pode visualizar todas as suas locações gravadas.
R9: O sistema deve ser internacionalizado em pelo menos dois idiomas: português + outro de sua escolha.
R10: O sistema deve validar (tamanho, formato, etc) todas as informações (campos nos formulários) cadastradas e/ou editadas.
O sistema deve tratar todos os erros possíveis (cadastros duplicados, problemas técnicos, etc) mostrando uma página de erros amigável ao usuário e registrando o erro no console.
**Arquitetura: ** Modelo-Visão-Controlador
Tecnologias
Spring MVC, Spring Data JPA, Spring Security & Thymeleaf (Lado Servidor)
Javascript & CSS (Lado Cliente)
Ambiente de Desenvolvimento
A compilaçao e o deployment deve ser obrigatoriamente ser realizado via maven.
Os arquivos fonte do sistema devem estar hospedados obrigatoriamente em um repositório (preferencialmente github).

  1. CRUD: Create, Read, Update & Delete.↩

Tecnologias utilizadas

Como especificado nos requisitos, o projeto foi criado utilizando as seguintes tecnologias (Lado Servidor):
• Spring MVC
• Spring Data JPA
• Spring Security
• Thymeleaf
E, no ambiente de desenvolvimento:
• Maven
• Apache Tomcat
A arquitetura de separação de arquivos utilizou o modelo MVC (Model-View-Controller), o qual é em Controladores, DAOs e Domain, no contexto da aplicação.

Página inicial

Está página é a login.html, em que é cumprido os requisitos R3 e R4, além de conter um campo de login para o usuário se autenticar como Cliente, Locadora ou Admin. Portanto, para atender os requisitos, a página apresenta um link que mostra uma página com todas as locadoras e disponibiliza um filtro para exibir apenas as locadoras de uma determinada cidade, a qual é escolhida pelo usuário.

  • Página inicial: image

  • Listagem de Locadoras: image

Página do Administrador

Esta página é a pagina referente ao administrador, na qual é possível realizar o CRUD (Create, Read, Update & Delete) de Clientes e Locadoras. Dessa forma, está página atende os requisitos R1 e R2. É importante mencionar, também, que apenas um usuário cadastrado como ADMIN tem acesso a essa página, ou seja, as permissões estão configuradas corretamente e não é possível outros usuáriso acessarem esta página (OBS: caso alguém tente acessar essa página pela URL, por exemplo, sem possuir tal permissão, aparecerá um mensagem de erro, informando que tal acesso não é permitido).

  • Página do administrador logado image
  • CRUD de Clientes image image
  • CRUD de Locadoras: image

Página do Usuário

Cliente

Esta é a página do usuário cliente, a qual atende os requisitos R5, R6 e R7. Nesta página é possível realizar o cadastro de uma locação, selecionando a locadora a partir de uma lista, a data e a a hora da locação (a hora é selecionada a partir de uma lista, para atender a especificação de que as locações tem que ser realizadas em horas inteiras). Além disso, também é possível visualizar todas as locações do cliente logado. Por fim, ao realizar a locação, o cliente e a locadora são informados via email. É importante mencionar, também, que impossibilidades e incoerências são tratadas: um cliente cadastrar mais de uma locação no mesmo dia e horário, uma locadora possuir mais de uma locação no mesmo dia e horário e o cliente tentar cadastrar uma locação em uma data anterior a data atual. Qualquer um desses casos retornará uma mensgem de erro amigável ao usuário.

  • Página inicial do Cliente image

  • Página para cadastar uma locação

image

  • Tratando a especificação de locações só poderem ser feitas em horas inteiras image

Locadora

Está é a página do usuário locadora, a qual atende o requisito R8. Neste página é possível visualizar todas as locações da locadora logada.

image

Internacionalização do sistema

Por fim, para atender o requisito R9, o sistema também está disponível em EN-US, dependendo da configuração do navegador do usuário. image image

Tratamento de erros

O sistema também trata os possíveis erros do sistema de forma amigável ao usuário, mostrando-o uma mensagem explicando o que erro ocorrido.

  • Alguns exemplos:
    • Campos em brancos ou que não atendem ao número de caracteres esperados:

      image

    • Cadastrar um usuário com um CPF já em uso:

      image

    • Cadastrar uma locação em um data anterior a data atual:

      image

    • Acessar uma página pela URL, sem possuir a autorização necessária:

      image

Colaboradores

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published