Curso da Ciência da Computação Disciplina Desenvolvimento de Aplicações Web Semestre 2011.02 Turma 852 Trabalho Final 1. Descrição dos Requisitos da Aplicação Construir uma aplicação Java que implemente uma pequena parte de um sistema para uma locadora de automóveis, com as funcionalidades de cadastro e listagem de automóveis. O sistema deverá apresentar uma tela inicial (Figura 1) oferecendo um menu com as opções “Cadastrar” e “Listar” automóveis. Figura 1 – Tela inicial da aplicação "Locadora de Automóveis". A tela de cadastro deverá oferecer as opções para pesquisar, inserir, alterar e excluir um automóvel (Figura 2). A chave de pesquisa será o chassi do automóvel. Já a tela de listagem deverá exibir a lista completa com todas as informações dos automóveis disponíveis para aluguel (Figura 3). 2 Figura 2 - Tela "Cadastro de Automóvel". Figura 3 - Tela "Lista de Automóveis". 3 2. Descrição da Implementação da Aplicação Deverá ser construída uma pequena aplicação web dinâmica, utilizando os diferentes recursos ensinados em sala de aula para construir aplicações web: frames, tabelas, links, imagens, css, java script, servlets e jsps. A aplicação deverá ser implementada seguindo a estrutura de entidades ilustrada no diagrama a seguir (Figura 4): Figura 4 - Entidades da aplicação "Locadora de Automóveis". Os dados de automóveis deverão ser armazenados no banco de dados relacional MySQL. O script SQL “LocadoraAutomoveis.sql”, para criar a tabela “AUTOMOVEL” do banco de dados “LOCADORA_AUTOMOVEIS”, deverá ser fornecido dentro de uma subpasta “bd” do projeto. 4 A tabela “AUTOMOVEL” deverá possuir os seguintes campos (Figura 5): CHASSI (uma seqüência alfanumérica de 17 caracteres, por exemplo, “9B4ABW45121192B57”), MODELO (string que descreve o modelo do automóvel, por exemplo, “Palio 1.0 Celebration 1.0 Flex”), MARCA (string que descreve o nome da empresa fabricante do automóvel, por exemplo, “Fiat”, “Ford”, “Honda”, etc), PLACA (uma seqüência alfanumérica de 7 caracteres, por exemplo, “BDI3423”), COR (string que descreve a cor do automóvel, por exemplo, “Prata”, “Branco”, “Vermelho”, etc), ANO_FABRICACAO (inteiro indicando ano de fabricação do automóvel, por exemplo, “2010”), AR_CONDICIONADO (string que indica se o automóvel possui ar condicionado, por exemplo, “Sim” ou “Não”), PORTAS (inteiro indicando o número de portas do automóvel, por exemplo, “4”), FOTO (nome do arquivo de imagem, armazenado na pasta “img” da aplicação, com a foto miniatura do automóvel, como por exemplo, “./img/auto1.jpg”) e VALOR_DIARIA (valor da diária em reais do aluguel do automóvel, por exemplo, “200.00”). 5 Figura 5 - Estrutura de campos da tabela "AUTOMOVEL". 6 Deverá ser utilizada a seguinte estrutura de pastas para organizar os arquivos estáticos do programa: css, img, html e js. Todas as classes Java criadas dentro do projeto deverão ser armazenadas a partir do seguinte pacote raiz: br.edu.unicarioca.semestre22011.infA09.turma852.alunoXX XXXXXXXX.locadoraAutomovel, onde XXXXXXXXXX é o código de 10 dígitos de matrícula do aluno. A estrutura de pacotes a ser criada deve seguir o modelo Model View Controler (MVC), com um pacote para as classes de modelo e um segundo para as classes de controle. A visão, por sua vez, será representada pelos jsps armazenados na pasta “/WEB-INF/jsp”. A figura a seguir (Figura 6) ilustra a estrutura de pastas a ser seguida pelo projeto “LocadoraAutomoveis” criado no Eclipse. 7 Figura 6 - Estrutura de pastas do projeto “LocadoraAutomoveis”. 8 OBS: Este trabalho final segue uma estrutura bem semelhante de telas e de organização do código fonte do exemplo “Locadora de Filmes” postado no 28Horas. Portanto, utilize este exemplo como base para construção deste trabalho. 3. Critérios de Correção O trabalho valerá 10 pontos. A avaliação levará em conta os seguintes critérios: • Foram implementados todos os requisitos solicitados? Ver seções 1 e 2. • O programa compila e executa corretamente? Programas que não compilam ou com erros de execução evidentes, que impeçam a avaliação de todo trabalho (por exemplo, tela inicial não abre ou não insere um registro), receberão notas bem baixa (0 a 4), de acordo com a gravidade do erro. • A interface gráfica e seus eventos foram implementados corretamente? • Foram utilizados recursos de css, java script e imagens para incrementar a interface visual e a navegação entre telas? Estes critérios são mesmos utilizados no trabalho 1. • Os conceitos de orientação a objetos, organização de pastas do conteúdo estático e estruturação do programa (uso do MVC) foram aplicados corretamente? • O código está bem escrito, formatado e comentado? 9 • O trabalho foi bem testado? É de extrema importância que todas as funcionalidades (pesquisar, incluir, alterar e excluir) sejam bem testadas. 4. Entrega do Trabalho Este trabalho poderá ser feito SOMENTE DE FORMA INDIVIDUAL. Trabalhos em dupla, trio, quarteto, etc, não serão permitidos, sendo considerados como CÓPIA. A data e hora de entrega do trabalho serão divulgadas em tarefa no 28Horas. Não serão permitidos atrasos. O envio do trabalho deverá ser feito através de upload no 28Horas de um arquivo compactado utilizando o seguinte padrão de nome: TrabalhoFinal_XXXXXXXXXX.zip, onde XXXXXXXXXX é código de 10 dígitos da matrícula do aluno. No caso de problemas de implementação ou execução do trabalho entregue, o professor poderá solicitar, a qualquer momento, a apresentação do trabalho em uma máquina do laboratório, podendo o aluno ser argüido. Por fim, trabalhos SEMELHANTES, seja o ORIGINAL ou seja(m) a(s) CÓPIA(S), receberão nota ZERO. O mesmo serve para trabalhos com códigos de página CÓPIA da Internet (a Internet deve servir apenas como fonte de consulta e obtenção de conteúdo e imagens). 10