Buscar

Portfolio

Prévia do material em texto

Canoas 
2019 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RONALDO FRANCISCO GONÇALVES BARCELOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SISTEMA DE ENSINO PRESENCIAL CONECTADO 
SUPERIOR EM TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO 
DE SISTEMAS 
 
PRODUÇÃO TEXTUAL INDIVIDUAL 
SISTEMA DE MONITORAÇÃO PET MONITOR 
 
UNIVERSIDADE NORTE DO PARANÁ 
Canoas 
2019 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRODUÇÃO TEXTUAL INDIVIDUAL 
SISTEMA DE MONITORAÇÃO PET MONITOR 
 
Trabalho interdisciplinar apresentado à Universidade 
Norte da Paraná (Unopar), como requisito parcial para a 
obtenção de média semestral na disciplina de: 
Análise Orientada a Objetos – I, Banco de Dados – I, 
Linguagens de Programação e Estrutura de Dados, 
Organização de Computadores, Seminários III 
 
 
 
 
Orientadores: Tutor Ivo Ducatti 
Professora Iolanda Sanches Catarino 
Professora Adriane Aparecida Loper 
Professor Roberto Yukio Nishimura 
Professora Cristiane Mashuda 
Professor Anderson Emídio de Macedo 
RONALDO FRANCISCO GONÇALVES BARCELOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
1 INTRODUÇÃO ................................................................................................. 3 
2 DESENVOLVIMENTO ...................................................................................... 4 
2.1 TAREFA 1 – Análise orientada a objetos ii ................................................... 6 
2.2 TAREFA 2 – Banco de dados ii ..................................................................... 9 
2.3 TAREFA 3 – Programação Orientada a Objetos ........................................ 12 
2.4 TAREFA 4 - Programação web .................................................................... 14 
 3 
1 INTRODUÇÃO 
Esta produção textual com um tema proposto e atividades pré-
determinadas são de grande valia para o teste dos conhecimentos apropriados e 
técnicas aprendidas durante o curso. O tema proposto efetivamente testa os 
conhecimentos adquiridos neste semestre onde há integração de diversas 
ferramentas para haja a criação adequada de um software. O tema e as atividades 
propostas se assemelham bastante com a realidade que o mercado demanda de um 
Analista de Sistemas e Desenvolvedor. 
 
 4 
2 DESENVOLVIMENTO 
Análise Orientada a Objetos II: 
Com a intenção de minimizar os problemas que corriqueiramente 
enfrentava-se no desenvolvimento de software de grande porte e com grau de 
complexidade acentuado, surge a necessidade de ter-se uma programação mais 
limpa, mais organizada e mais meticulosa. Com isto surge a Análise Orientada a 
Objetos. 
 
Banco de Dados II: 
Ao trabalhar com banco de dados é imprescindível ter o 
conhecimento necessário para não comprometer os dados que nele contém. É 
importante entender os conceitos, as normas de boas práticas bem como as 
técnicas de modelagem para que se tenha um aproveitamento e desempenho deste 
banco. 
A atividade origem deste trabalho envolve a concepção, modelagem, 
criação e manipulação dos dados no SGBD MySQL. Este é um dos mais populares 
e difundidos em ambientes de produção, web e educacional. Hoje mantido ela 
Oracle, o MySQL é opensource. Tem como fork o MariaDB, feito por Michael 'Monty' 
Widenius, o fundador do MYSQL. 
 
Programação Web I: 
Desenvolver uma aplicação web pode ser uma tarefa relativamente 
complexa devido ao grau de detalhamento das ferramentas utilizadas na criação de 
um site, por exemplo. A gama de IDE’s que podem ser utilizadas no emprego deste 
desenvilvomento é grande, basta a adequação do desenvolvedor com aquela que 
mais lhe agradar. 
Os sistemas web, podem ser escritos em diversas linguagens de 
programação, mas o proposto nesta atividade foi o PHP, que segundo o site php.net 
é definido assim: 
 
 
 5 
“O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma 
linguagem de script open source de uso geral, muito utilizada, e 
especialmente adequada para o desenvolvimento web e que pode ser 
embutida dentro do HTML”. 
 
O que distingue o PHP de algo como o JavaScript no lado do cliente 
é que o código é executado no lado do servidor, gerando o HTML que é então 
enviado para o navegador. O navegador recebe os resultados da execução desse 
script, mas não sabe qual era o código fonte. Você pode inclusive configurar seu 
servidor web para processar todos os seus arquivos HTML com o PHP. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 6 
2.1 TAREFA 1 – ANÁLISE ORIENTADA A OBJETOS II 
Diagrama de Use Case: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 7 
Diagrama de Atividades 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 8 
 
Diagrama de Sequência 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 9 
2.2 TAREFA 2 – BANCO DE DADOS II 
Esquema Conceitual 
 
 
 
Esquema Lógico 
 
 
 
 
 
 
 
 10 
Esquema Físico 
 
-- Geração de Modelo físico 
-- Sql ANSI 2003 - brModelo. 
 
 
create table user_admin( 
id_user int (10) AUTO_INCREMENT PRIMARY KEY, 
reg_emp int (10), 
nome varchar (30), 
senha varchar (32) 
) 
 
dd/mm/aaaa 
 
 
CREATE TABLE local_atual ( 
latitude VARCHAR(50), 
longitude VARCHAR(50), 
id_dispositivo INTEGER 
); 
 
CREATE TABLE pet ( 
id_pet INTEGER PRIMARY KEY, 
nome_pet VARCHAR(40), 
tutor_pet VARCHAR(60) 
); 
 
CREATE TABLE dispositivo ( 
id_dispositivo INTEGER PRIMARY KEY, 
dt_ativacao DATETIME, 
id_pet INTEGER, 
FOREIGN KEY(id_pet) REFERENCES pet (id_pet) 
 11 
); 
 
CREATE TABLE tipo_pet ( 
canino VARCHAR(50), 
felino VARCHAR(50), 
reptil VARCHAR(50), 
passaro VARCHAR(50), 
aquatico VARCHAR(50), 
id_pet INTEGER, 
FOREIGN KEY(id_pet) REFERENCES pet (id_pet) 
); 
 
CREATE TABLE tutor ( 
cpf VARCHAR(14) PRIMARY KEY, 
endereco VARCHAR(100), 
nome VARCHAR(50), 
fone VARCHAR(20), 
id_pet INTEGER, 
FOREIGN KEY(id_pet) REFERENCES pet (id_pet) 
); 
 
ALTER TABLE local_atual ADD FOREIGN KEY(id_dispositivo) REFERENCES 
dispositivo (id_dispositivo) 
 
 
 
 
 
 
 
 12 
2.3 TAREFA 3 – PROGRAMAÇÃO ORIENTADA A OBJETOS 
class user_admin 
{ 
 public int id_user; 
 public int reg_emp; 
 public string nome; 
 public string senha; 
} 
 
 
class local_atual 
{ 
 public string latitude; 
 public string longitude; 
 public int id_dispositivo; 
} 
 
class pet 
{ 
 public int id_pet; 
 public string nome_pet; 
 public string tutor_pet; 
} 
 
class dispositivo 
{ 
 public string id_dispositivo; 
 public string dt_ativacao; 
 public string id_pet; 
} 
 
class tipo_pet 
 13 
{ 
 public string canino; 
 public string felino; 
 public string reptil; 
 public string passaro; 
 public string aquatico; 
 public int id_pet; 
} 
 
class tutor 
{ 
 public int cpf; 
 public string endereco; 
 public string nome; 
 public string fone; 
 } 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 14 
2.4 TAREFA 4 - PROGRAMAÇÃO WEB 
INDEX.PHP 
<?php 
 require_once 'classes/usuarios.php'; 
 $u = new usuario(); 
?> 
 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
 <div id="corpo-form"> 
 <h1>Acesso área Administrativa</h1> 
 <form method="post"> 
 <input name="re" placeholder="RE" type="text"> 
 <input name="senha" placeholder="Senha" type="password"> 
 <input placeholder="ACESSAR" type="submit"> 
 <a href="tutor.php"><strong>TUTOR, ACESSE AQUI</a></strong> 
 </form> 
 </div> 
 
<?php 
if (isset($_POST['re'])) 
{ 
 $reg_emp = addslashes($_POST['re']);$senha = addslashes($_POST['senha']); 
 if(!empty($reg_emp) && !empty($senha)) 
 { 
 $u ->conectar("petmonitor","localhost","root",""); 
 if ($u->msgErro =="") 
 { 
 if ($u->logar($reg_emp,$senha)) 
 { 
 header("location: paineladmin.php"); 
 } 
 else 
 { 
 echo "Usuário ou senha inválidos."; 
 } 
 } 
 else 
 { 
 echo "Erro: ".$u->msgErro; 
 } 
 } 
 else 
 15 
 { 
 echo "Preencha todos os campos"; 
 } 
} 
?> 
</body> 
</html> 
 
PAINELADMIN.PHP 
<?php 
 session_start(); 
 if(!isset($_SESSION['id_user'])) 
 { 
 header ("index.php"); 
 exit; 
 } 
?> 
 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
 <div id="corpo-menu"> 
 <h1>Painel Administrativo</h1> 
 <h3><a href="cadastro.php">Cadastrar Tutor</a></h3> 
 <h3><a href="cadastrapet.php">Cadastrar PET</a></h3> 
 <h3><a href="cadastradispositivo.php">Cadastrar Dispositivo</a></h3> 
 <h3><a href="cadastrauser.php">Cadastrar Usuário Administrativo</a></h3> 
 <h3><a href="logout.php">Logout</a></h3> 
 </div> 
</body> 
</html> 
 
TUTOR.PHP 
<?php 
session_start(); 
if(!isset($_SESSION['id_user'])) 
{ 
 header ("index.php"); 
 exit; 
} 
?> 
 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 16 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
<div id="corpo-form"> 
 <h1>Acesso Tutor</h1> 
 <form method="post" action="autenticatutor.php"> 
 <input name="cpf" placeholder="CPF" type="text"> 
 <input name="senha" placeholder="Senha" type="password"> 
 <input placeholder="ACESSAR" type="submit"> 
 </form> 
</div> 
</body> 
</html> 
 
LOGOUT.PHP 
<?php 
 session_start(); 
 session_destroy($_SESSION['id_user']); 
 header("location: index.php"); 
?> 
 
CADASTROPET.PHP 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
<div id="corpo-form"> 
 <h1>Cadastro de Tutor</h1> 
 <form method="post" action="autenticaadmin.php"> 
 <input name="nomepet" placeholder="Nome do PET" type="text"> 
 <input name="raca" placeholder="Raca" type="text"> 
 <input name="dt_nasc" placeholder="Data de Nascimento" type="text"> 
 <input name="cpftutor" placeholder="CPF Tutor" type="text"> 
 <input type="submit" value="CADASTRAR PET"> 
 </form> 
</div> 
</body> 
</html> 
 
 17 
CADASTROTUTOR.PHP 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
<div id="corpo-form"> 
 <h1>Cadastro de Tutor</h1> 
 <form method="post" action="autenticaadmin.php"> 
 <input name="cpf" placeholder="CPF" type="text"> 
 <input name="nometutor" placeholder="Nome completo" type="text"> 
 <input name="fone" placeholder="Telefone" type="text"> 
 <input name="endereco" placeholder="Endereço" type="text"> 
 <input name="nomepet" placeholder="Nome do PET" type="text"> 
 <input type="submit" value="CADASTRAR TUTOR"> 
 </form> 
</div> 
</body> 
</html> 
 
CADASTRAUSER.PHP 
<?php 
 require_once ('classes/usuarios.php'); 
 $u = new usuario(); 
?> 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html"> 
<head> 
 <meta charset="UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 <meta name="viewport" content="width=device-width, initial-scale=1"> 
 <title>...::: PET Monitor :::...</title> 
 <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" 
rel="stylesheet"> 
 <link rel="stylesheet" type="text/css" href="css/estilo.css"> 
</head> 
<body> 
<div id="corpo-form"> 
 <h1>Cadastro Administrativo</h1> 
 <form method="POST"> 
 <input name="re" placeholder="RE" type="text"> 
 <input name="nome" placeholder="Nome completo" type="text"> 
 <input name="senha" placeholder="Senha" type="password"> 
 <input type="submit" value="CADASTRAR ADM"> 
 </form> 
</div> 
<?php 
 if (isset($_POST['nome'])) 
 18 
 { 
 $reg_emp = addslashes($_POST['re']); 
 $nome = addslashes($_POST['nome']); 
 $senha = addslashes($_POST['senha']); 
 if(!empty($reg_emp) && !empty($nome) && !empty($senha)) 
 { 
 $u ->conectar("petmonitor","localhost","root",""); 
 if($u->msgErro == "") 
 { 
 $u->cadastrar($reg_emp,$nome,$senha); 
 if($u->cadastrar($reg_emp,$nome,$senha)) 
 { 
 echo "Cadastrado com sucesso."; 
 } 
 else 
 { 
 echo "Usuário já cadastrado."; 
 } 
 } 
 else 
 { 
 echo "Erro: ",$u->msgErro; 
 } 
 } 
 else 
 { 
 echo "Há campos vazios. Preencha todos."; 
 } 
 
 } 
?> 
</body> 
</html><?php 
 
CLASSE USUARIO.PHP 
<?php 
 
class usuario 
{ 
 private $pdo; 
 public $msgErro = ""; 
 public function conectar($nomebd, $hostbd, $userbd, $senhabd) 
 { 
 global $pdo; 
 global $msgErro; 
 try { 
 $pdo = new 
PDO("mysql:dbname=".$nomebd.";host=".$hostbd,$userbd,$senhabd); 
 } catch (PDOException $e) { 
 $msgErro = $e->getMessage(); 
 } 
 
 } 
 
 public function cadastrar($reg_emp, $nome, $senha) 
 { 
 19 
 global $pdo; 
 $sql = $pdo->prepare("SELECT id_userFROM user_admin WHERE reg_emp = :e"); 
 $sql->bindValue(":e",$reg_emp); 
 $sql->execute(); 
 if($sql->rowCount() > 0) 
 { 
 return false; 
 } 
 else 
 { 
 $sql = $pdo->prepare("INSERT INTO user_admin (nome,reg_emp,senha) 
VALUES (:n, :r, :s)"); 
 $sql->bindValue(":n", $nome); 
 $sql->bindValue(":r", $reg_emp); 
 $sql->bindValue(":s", $senha); 
 $sql->execute(); 
 return true; 
 } 
 } 
 
 public function logar($reg_emp, $senha) 
 { 
 global $pdo; 
 $sql = $pdo->prepare("SELECT id_user FROM user_admin WHERE reg_emp = :e 
AND senha = :s"); 
 $sql->bindValue(":e",$reg_emp); 
 $sql->bindValue(":s",$senha); 
 $sql->execute(); 
 if($sql->rowCount() > 0){ 
 $dado_ret = $sql->fetch(); 
 session_start(); 
 $_SESSION['id_user'] = $dado_ret['id_user']; 
 return true; 
 } 
 else 
 { 
 return false; 
 } 
 } 
} 
 
?> 
 
 
 
 
 
 
 
 
 20 
CLASSE PETCLASS.PHP 
<?php 
class pet 
{ 
 private $pdo; 
 public $msgErro = ""; 
 public function conectar($nomebd, $hostbd, $userbd, $senhabd) 
 { 
 global $pdo; 
 global $msgErro; 
 try { 
 $pdo = new 
PDO("mysql:dbname=".$nomebd.";host=".$hostbd,$userbd,$senhabd); 
 } catch (PDOException $e) { 
 $msgErro = $e->getMessage(); 
 } 
 
 } 
 
 public function cadastrar($nome_pet, $raca_pet, $dt_nasc,$cpf_tutor) 
 { 
 global $pdo; 
 $sql = $pdo->prepare("SELECT id_pet FROM pet WHERE nome = :n"); 
 $sql->bindValue(":n",$nome); 
 $sql->execute(); 
 if($sql->rowCount() > 0) 
 { 
 return false; 
 } 
 else 
 { 
 $sql = $pdo->prepare("INSERT INTO user_admin 
(nome,raca,dt_nasc,cpf_tutor) VALUES (:n, :r, :d, :c"); 
 $sql->bindValue(":n", $nome); 
 $sql->bindValue(":r", $raca_tutor); 
 $sql->bindValue(":d", $dt_nasc); 
 $sql->bindValue(":c", $cpf_tutor); 
 $sql->execute(); 
 return true; 
 } 
 } 
?> 
 
 
 
 
 
 
 
 
 21 
ESTILO.CSS 
*{ 
 margin: 0; 
 padding: 0; 
} 
body{ 
 background-image: url('../images/dogsindex.jpg'); 
 -webkit-background-size: cover; 
 -moz-background-size: cover; 
 -o-background-size: cover; 
 background-size: cover; 
 font-family: Calibri; 
} 
input{ 
 display: block; 
 height: 55px; 
 width: 400px; 
 margin: 10px; 
 border-radius: 30px; 
 font-size: 16pt; 
 padding: 10px 20px; 
 background-color: rgba(255,255,255,0.01); 
 color: #ffffff; 
 outline: none; 
} 
#corpo-form{ 
 width: 420px; 
 margin: 150px auto 0px auto; 
} 
#corpo-form h1{ 
 text-align: center; 
 padding: 20px; 
} 
#corpo-menu{ 
 width: 420px; 
 margin: 150px auto 0px auto; 
} 
#corpo-menu h1 { 
 text-align: center; 
 padding: 20px; 
} 
a { 
 text-decoration-line: none; 
 text-align: center; 
 display: block; 
 color: black; 
} 
 
a:hover{ 
 text-decoration-line: underline; 
} 
input[type=submit]{ 
 border: none; 
 background-color: #708090; 
 cursor: pointer; 
} 
::-webkit-input-placeholder{ 
 22 
 color: #ffffff; 
} 
:-moz-placeholder{ 
 color: #ffffff; 
} 
::-moz-placeholder{ 
 color: #ffffff; 
} 
:-ms-input-placeholder{ 
 color: #ffffff; 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 23 
3. CONCLUSÃO 
 Ao mesmo tempo que esta tarefa foi desafiadora, posso garantir que 
foi muito recompensadora. Pois me demandou aquele esforço a mais para que as 
atividades estivessem com a qualidade esperada. Encerrando este trabalho, posso 
garantir que estou apto a seguir adiante no curso, bem como mais maduro e com 
conhecimento mais consolidado. 
 
 
 
 
 
 
 
 
 
 
 24 
REFERÊNCIAS BIBLIOGRÁFICAS 
“FERRARETO, Leonardo, NISHIMURA, Roberto. Banco de Dados 1. 1° Edição. 
Londrina: Editora e Distribuidora Educacional S.A., 2018. 
“GOMES, Polyanna, MORAIS, Everson, HISATOMI, Marco. Análise Orientada a 
Objetos 1. 1° Edição. Londrina: Editora e Distribuidora Educacional S.A., 2018. 
“NISHIMURA, Roberto. Banco de Dados 2. 1° Edição. Londrina: Editora e 
Distribuidora Educacional S.A., 2019. 
 “FABRIS, Polyana Pacheco Gomes, CATARINO, Iolanda Cláudia Sanches. Análise 
Orientada a Objetos 2. 1° Edição. Londrina: Editora e Distribuidora Educacional 
S.A., 2017. 
PISA, Pedro, Techtudo, Orientações básicas na elaboração de um diagrama de 
classe Disponível em: https://www.techtudo.com.br/artigos/noticia/2012/04/o-que-e-
e-como-usar-o-mysql.html>. Acesso em: 01 nov. 2019. 
MARIADB. MariaDB Disponível em: <https://pt.wikipedia.org/wiki/MariaDB>. Acesso 
em: 31 out. 2019. 
BLOG, Luiz. Modelagem conceitual de dados. Disponível em: < 
<https://www.php.net/docs.php>. Acesso em: 06 mai. 2019. 
PHP NET. PHP DOCS. Disponível em: < https://brasil.rfidjournal.com/perguntas-
frequentes>. Acesso em: 02 nov2019.

Continue navegando