Atividade avaliativa da disciplina Desenvolvimento de Software para Web 01 cujo objetivo é desenvolver um sistema para locação de bicicletas utilizando Spring e Java
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.
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).
- CRUD: Create, Read, Update & Delete.↩
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.
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.
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).
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.
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.
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.
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:
- Thales Winther de Castro Moreira, aluno BCC UFSCar, github: https://github.com/thaleswinther
- Matheus Goulart Ranzani, aluno BCC UFSCar, github: https://github.com/matheusranzani
- Arisa Abiko Sakaguti, aluna BCC UFSCar, github: https://github.com/arisaabiko
- Gabriel Ripper de Mendonça Furtado, aluno BCC UFSCar, github: https://github.com/gabripper