Nessa semana tivemos a apresentação do segundo bimestre para o professor Ivan e Paladino. Por meio dessa avaliação tivemos resultados negativos referentes ao nosso projeto, tanto na programação quanto na documentação. Depois de quinta-feira, a equipe trabalhará intensamente até obtermos resultados satisfatórios, começando com a revisão das métricas e do cronograma na parte da documentação e do desenvolvimento das funcionalidades do Website na parte da programação com o prazo estipulado para a próxima apresentação que será no dia 02/07.
TRABALHO DE PDS
ESTE BLOG É UM TRABALHO DE DESENVOLVIMENTO DE SISTEMAS, FEITO PELOS ALUNOS DO IFSP DA TURMA 305.
SPORTEVENTO
O MAIS NOVO ORGANIZADOR DE EVENTOS ESPORTIVOS.
CONVIDE AMIGOS
CADASTREM-SE NO NOSSO APLICATIVO E APROVEITEM.
VERSAO MOBILE
SPORTEVENTO TAMBÉM POSSUI UMA EXTENSÃO ANDROID.
ESPORTES E TECNOLOGIA
A INTENÇÃO DO PROGRAMA É PROMOVER A INTERAÇÃO E O ESPORTE UTILIZANDO A TECONOLOGIA.
sexta-feira, 26 de junho de 2015
quinta-feira, 18 de junho de 2015
Resumo semanal - 18/06
Hoje iniciou as apresentações dos grupos de PDS e, além de estarmos finalizando o CRUD, falta terminar a documentação (cronograma, métricas) e a apresentação. Através de reuniões, decidimos abandonar a ideia da extensão mobile devido a necessidade de todos estarem desenvolvendo a parte web.
segunda-feira, 15 de junho de 2015
Apresentação de LPG dia 15/06
Hoje, eu e o Rubens fizemos a avaliação de LPG, apresentando o funcionamento de alguns métodos e certas funcionalidades como o login do SportEvento para o professor Balthazar. Tiramos 9,5 nessa prova, mas ainda há muito a se fazer antes da 2ª apresentação de PDS.
quinta-feira, 11 de junho de 2015
Resumo semanal 11/06
Nessa semana, terminei alguns ajustes no login da aplicação e ele está funcionando, assim como o cadastro dentro da mesma, Marcos fez alterações no CSS da página inicial, e está fazendo o CSS da página de usuário, Rubens fez algumas modificações nos interceptadores, que estavam barrando o login.
Hoje foi decidida a ordem de apresentações que acontecerão nas próximas semanas, e a equipe TeamToddynho vai ser a 8ª a se apresentar, logo temos duas semanas para adicionar mais funcionalidades ao nosso projeto, gerar documentos e fazer o vídeo do gource.
sábado, 6 de junho de 2015
Interceptador
Eu, responsável pela confecção do funcionamento lógico do projeto, usufrui do Spring desde o começo do desenvolvimento do programa. As Controllers já foram feitas, e direcionam corretamente o usuário para a página que ele quiser acessar. Porém, algumas dessas páginas não deveriam ser acessadas por usuários não logados. É necessário a existência de algo que barre o acesso do usuário a certas páginas. Para isso, utilizei o AutorizadorInterceptor.
O AutorizadorInterceptor implementa a interface HandlerInterceptorAdapter para poder utilizar o método preHandle. Este, por sua vez, recebe a requisição e a resposta, além do Controller que será interceptado. O retorno é um booleano que indica se pode continuar com a requisição ou não.
Como as páginas index, login e cadastro não necessitam que o usuário esteja logado para serem acessadas, coloquei a seguinte condição:
if (uri.endsWith("index") || uri.endsWith("login") || uri.endsWith("cadastro") || uri.contains("resources")) {
return true;
}
Assim, se o usuário tentar acessar um link que termine com o nome de uma dessas páginas, ele não será barrado. A pasta resources também pode ser acessada mesmo sem estar logado, pois é nela que ficam as imagens, os CSSs e os JavaScripts.
Além disso, existe outra condição para o usuário poder acessar a página requisitada:
if(request.getSession().getAttribute("usuarioLogado") != null) {
return true;
}
Ou seja, se o usuário estiver logado, ele poderá acessar a página requisitada. O Attribute "usuarioLogado" é dado à sessão pelo LoginController para o usuário que logar com sucesso (login e senhas compatíveis):
@RequestMapping("/logar")
public String efetuaLogin(Usuario usuario, HttpSession session) {
if(new JpaUsuarioDAO().existeUsuario(usuario)) {
session.setAttribute("usuarioLogado", usuario);
return "PaginaUsuario";
}
return "redirect:login";
}
E, caso nenhuma dessas requisições sejam atendidas...
response.sendRedirect("login");
return false;
O interceptador barra o acesso do usuário à página requisitada, e o mesmo é redirecionado para a página de login.
Interceptador é uma das poucas classes que não podem ser indicadas via uma anotação. Então, foi necessário indicar o local do Interceptor para o Spring no DispatcherServlet:
<mvc:interceptors>
<bean
class="br.edu.ifsp.spo.t305.teamtoddynho.sportevento.controller.interceptor.AutorizadorInterceptor" />
class="br.edu.ifsp.spo.t305.teamtoddynho.sportevento.controller.interceptor.AutorizadorInterceptor" />
</mvc:interceptors>
Assim, toda vez que o usuário requisitar o acesso à uma página (ou seja, chamar o método de algum dos Controllers), o Interceptador é chamado, e seu método irá decidir se o usuário esta autorizado ou não. Esta classe é imprescindível para garantir a segurança do site. Na verdade, ela é imprescindível para a existência de um projeto Web dinâmico. Sem ela, qualquer um teria acesso à informações que em teoria deveriam ser confidenciais, como o perfil de um usuário.
Com o Interceptador pronto, o próximo passo é permitir que o usuário cadastre-se, logue, crie uma partida e deslogue. Com o Bruno ainda terminando os DAOs, fico com a missão de realizar os JavaScripts do projeto. Até a próxima quinta, uma boa parte destas funções, se não todas, já estarão prontas.
segunda-feira, 1 de junho de 2015
Instabilidades com o SVN
Nestes últimos 4 dias o Repositório SVN ficou indisponível para utilização em diversas ocasiões, sendo que não foi possível fazer commits no mesmo no fim de semana. Ao que me parece a situação voltou ao normal hoje de manhã e pudemos fazer nossas atualizações.
Resumo semanal
Nessa semana Rubens desenvolveu algumas Controllers como LoginController, HomeController e CadastroController; além de ter modificado algumas jsps fazendo links entre elas funcionarem; ele também começou a integração do Hibernate e JPA ao projeto, assim como fez modificações em alguns DAOs e Domains e mais algumas mudanças menores. Eu e Rubens fizemos a autenticação do Login, quase finalizando esse requerimento por completo. Fiore terminou de fazer as métricas dos meses anteriores (Março e Abril) além de criar a métrica final. Lucas definiu o layout do login no projeto Android e Marcos modificou o design por completo do site, com a adição de novos arquivos de CSS e utilização de um Formoid. O layout do site já foi definido e só falta deixar o design responsivo.