Escolar Documentos
Profissional Documentos
Cultura Documentos
Web
Eliomar Gomes Campos
EXPEDIENTE
Professor Autor
Eliomar Gomes Campos
Design Instrucional
Deyvid Souza Nascimento
Maria de Ftima Duarte Angeiras
Renata Marques de Otero
Terezinha Mnica Sincio Beltro
Reviso de Lngua Portuguesa
Letcia Garcia
Diagramao
Izabela Cavalcanti
Coordenao
Anderson Elias
Coordenao Executiva
George Bento Catunda
Coordenao Geral
Paulo Fernando de Vasconcelos Dutra
1.2 O produto
Suponha que voc foi contratado para participar do desenvolvimento de uma aplicao web para
uma locadora de filmes, que apenas cadastra, lista e exclui os dados dos clientes, filmes e locaes.
O sistema dever possuir pginas para cadastros de novos clientes, filmes e locaes, com
formulrios para preenchimento dos dados que podero ser enviados para armazenamento no
banco de dados. O sistema dever tambm possuir pginas que exibam a lista de todos os clientes,
filmes e locaes realizadas. Tais informaes devero ser buscadas no banco de dados.
1.3 O Sistema
O sistema dever possuir as seguintes funcionalidades:
1 - Pgina de Filmes: dever ter um formulrio para preenchimento dos campos: Ttulo (texto),
Valor (numrico), Status (combobox), e Gnero (combobox). Ao clicar no boto Cadastrar, sero
invocadas as pginas de controle e persistncia para salvar os dados preenchidos no banco de
dados. Logo abaixo do formulrio, e na mesma pgina, devero ser listados todos os filmes
cadastrados. Um boto para excluir dever ficar ao lado de cada filme listado e, ao clicar no boto
excluir, sero invocadas as pginas de controle e persistncia para excluir o respectivo registro no
banco de dados. A Figura 1 apresenta tais caractersticas dessa pgina.
2 - Pgina de Clientes: esta pgina dever possuir um formulrio para preenchimento dos campos:
Nome (texto), CPF (texto), E-mail (texto), e Endereo (texto). Ao clicar no boto Cadastrar, sero
3 - Pgina de Locaes: esta pgina dever possuir um formulrio para preenchimento dos campos:
Data de Locao (date), Data de Devoluo (date), Filme (combobox), e Cliente (combobox). O
campo Filme dever listar apenas o ttulo de todos os filmes cadastrados, e apenas os filmes com
status disponvel devero aparecer na lista desse campo ( obrigatrio implementar esta regra!). O
campo Cliente dever listar apenas o nome de todos os clientes cadastrados. Ao clicar no boto
Cadastrar, sero invocadas as pginas de controle e persistncia para salvar os dados preenchidos
no banco de dados. Logo abaixo do formulrio, e na mesma pgina, devero ser listados todas as
locaes cadastradas. Um boto para excluir dever ficar ao lado de cada Locao listada, e ao clicar
no boto excluir, sero invocadas as pginas de controle e persistncia para excluir o respectivo
registro no banco de dados. A Figura 3 apresenta tais caractersticas dessa pgina.
4 - Pgina de Deteco de Plgio: a fim de evitar trabalhos totalmente copiados de outros colegas
alunos, o menu dessa pgina dever possuir o seu primeiro e ltimo nome (e somente o primeiro e
ltimo). Um formulrio para preenchimento dos campos: Primeiro Nome (texto) e ltimo Nome
(texto). Ao clicar no boto Cadastrar, sero invocadas as pginas de controle e persistncia para
salvar os dados preenchidos no banco de dados. Todas as classes dessa pgina devero ser
nomeadas com o seu primeiro e ltimo nome. Voc dever cadastrar apenas os nomes dos seus
parentes (que possuam o seu ltimo nome), tais dados podem ser fictcios, o importante conter o
seu ltimo nome. Logo abaixo do formulrio, e na mesma pgina, devero ser listados todos os
parentes cadastrados. Um boto para excluir dever ficar ao lado de cada parente listado. Ao clicar
no boto excluir, sero invocadas as pginas de controle e persistncia para excluir o respectivo
registro no banco de dados. A Figura 4 apresenta tais caractersticas dessa pgina.
1.4 Arquitetura
O projeto j est iniciado com a organizao desejada. Utilizando PHP Orientado a Objetos, voc
deve seguir estes mesmos requisitos para completar o projeto. As pginas referentes ao cadastro,
listagem e excluso dos filmes j esto implementadas, bastando voc apenas completar o projeto
adicionando as pginas de clientes, locaes, e deteco de plgio.
Como voc j viu em disciplinas anteriores, na orientao a objetos cada classe tem apenas uma
responsabilidade. Dessa forma, o trabalho fica mais organizado e fcil de entender, entre outros
benefcios. Portanto, este projeto foi organizado de acordo com os padres de projetos (mais
conhecido como design pattern). Para isso, organizamos as classes em quatro partes: visualizao,
controle, modelo e persistncia, ou como so mais conhecidas: view, controller, model, e
persistence, respectivamente. A Tabela 1 relembra as responsabilidades de cada parte.
View
Controller
Persistence
Model
Pginas responsveis
apenas pela forma
como as informaes
so apresentadas ao
usurio, ou seja, o
design do website,
compe arquivos de
layout HTML, CSS e
imagens
Pginas responsveis
apenas por receber
dados provenientes
das pginas da view,
e encaminh-los para
os mtodos das
classes de
persistncia.
Classes que
caracterizam e
definem os objetos
de cadastro do
sistema. Tais objetos
so utilizados
principalmente pelas
classes de
persistncia para
enviar os dados
contidos neles para
as respectivas tabelas
do banco de dados.
Exemplo de arquivos:
Exemplo de arquivos:
Exemplo de arquivos:
index.php
view_cliente.php
view_filme.php
incluir_cliente.php
excluir_cliente.php
incluir_filme.php
excluir_filme.php
dao_cliente.php
dao_filme.php
conexao.php
Exemplo de arquivos:
class_cliente.php
class_filme.php
As classes de persistncia tambm so conhecidas como DAO, Data Access Object. So classes que
preenchem os atributos das classes do modelo com dados trazidos de alguma fonte, que no nosso
caso o banco de dados. As classes DAO vo guardar os comandos SQL necessrios para se
manipular o banco.
Como a aplicao j foi parcialmente desenvolvida pelo professor, voc poder estudar as pginas
j construdas para entender melhor essas responsabilidades. A Figura 6 apresenta a estrutura de
pastas, arquivos e classes do projeto completo. A Figura 7 apresenta a estrutura de pastas, arquivos
e classes que sero disponibilizados para voc. Observe na Figura 7 que est sendo disponibilizado e
mantido para voc o mesmo padro, porm, apenas contendo o cadastro, listagem e excluso de
filmes. Dessa forma, voc dever apenas acrescentar as demais pginas e classes. Na hora de
acrescentar, importante seguir os mesmos nomes do projeto completo da Figura 6, com exceo
dos arquivos e classes de deteco de plgio, que devero ser nomeados com o seu primeiro e
ltimo nome. Portanto, verifique, analise, e entenda as pginas e as classes de filmes
disponibilizadas para conseguir adicionar as demais, seguindo o mesmo raciocnio e padro.
10
2.
`titulo` [VARCHAR(45)]
3.
`genero` [VARCHAR(45)]
4.
`valor` [DECIMAL(4)]
5.
`status` [VARCHAR(45)]
3 - Tabela cliente:
1.
2.
`nome` [VARCHAR(45)]
3.
`cpf` [VARCHAR(45)]
4.
`email` [VARCHAR(45)]
5.
`endereco` [VARCHAR(45)]
11
4 - Tabela locacao:
1.
2.
`dataLocacao` [DATETIME]
3.
`dataDevolucao` [DATETIME]
4.
`nomeFilme` [VARCHAR(45)]
5.
`nomeCliente` [VARCHAR(45)]
2.
`primeiroNome` [VARCHAR(45)]
3.
`ultimoNome` [VARCHAR(45)]
Portanto, o banco de dados ficar com a seguinte estrutura descrita na Figura 8 abaixo:
MySQL Server: dever ser utilizado o MySQL Server como sistema gerenciador do banco de
dados (SGBD). A fim de facilitar o seu trabalho, no projeto disponibilizado, j existe uma classe de
conexo pronta, basta modificar os valores de conexo ao servidor (IP, usurio, senha, e base de
dados).
12
opcional, voc poder escolher at mesmo outras. Porm, recomendamos fortemente uma
dessas duas citadas.
XAMPP: dever ser o servidor web apache utilizado. Poderia ser tambm o WAMP ou
outros, mas recomendamos o XAMPP para seguirmos um padro e facilitar nosso trabalho.
Aptana Studio: IDE para desenvolvimento do cdigo php opcional, pode ser Notepad++ ou
outros.
Model
DAO ou Persistence
Controller
View
VERIFICAO
Sero analisados os comandos de criao de cada tabela no arquivo SQL. Por isso,
voc dever enviar o arquivo de backup do banco de dados (em .sql ou em .txt).
Sero analisadas as classes do modelo, responsvel pela definio e preenchimento
dos dados nos objetos. Seus atributos devem ser privados e os mtodos gets e sets
para manipulao desses atributos devem ser pblicos. Sero analisados os arquivos:
class_cliente.php, class_locacao.php e class_eliomarcampos.php (este dever ser com
o seu nome).
Sero analisadas as classes de persistncia ou manipulao direta com o banco de
dados. Essas classes devero possuir os mtodos para cadastro, listagem de todos os
registros e excluso de um registro. Sero analisados os arquivos: dao_cliente.php,
dao_locacao.php, e dao_eliomarcampos.php (este dever ser com o seu nome).
Sero analisadas as classes que recebem os valores dos formulrios quando clicamos
nos botes para cadastrar ou excluir. Essas classes devero invocar os mtodos das
classes de persistncia para cadastrar ou excluir, pois elas apenas recebem os valores
e criam os objetos com esses valores, porm o acesso direto ao banco para cadastrar
e excluir s quem tem so as classes de persistncia. Sero analisados os arquivos:
incluir_cliente.php, excluir_cliente.php, incluir_locacao.php, excluir_locacao.php,
incluir_eliomarcampos.php e excluir_eliomarcampos.php (estas duas ltimas devero
ser com o seu nome).
Sero analisadas as pginas de design e interao com o usurio, mais conhecidas
como front-end. Tais pginas sero responsveis tambm por enviar os dados de
formulrios para as classes de controle. Sero analisados os arquivos:
view_cliente.php, view_locacao.php, e view_eliomarcampos.php (este dever ser
com o seu nome). Ateno: o campo Filme da tela de locao dever listar apenas o
ttulo de todos os filmes cadastrados e apenas os filmes com status disponveis
devero aparecer na lista desse campo. Caso queira, poder alterar as imagens e o
CSS, mas NO modifique a estrutura do HTML de modo algum. Qualquer alterao
esttica NO ter acrscimo na pontuao.
13
ATENO
O Projeto Integrador individual. Projeto enviado sem a pgina de deteco de plgio de
acordo com o seu primeiro e ltimo nome, ou seja, com o nome de outro colega, ser
considerado plgio e, portanto, receber nota zero. Assim tambm para essa mesma pgina,
os valores preenchidos no banco, os nomes das classes, arquivos, variveis, tambm devero
conter o seu ltimo nome. Portanto, no se esquea de enviar o projeto com a pgina de
deteco de plgio, pois, sem ela, o projeto receber nota zero.
14