Baixe o app para aproveitar ainda mais
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.
Compartilhar