EcoCharge: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(42 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 9: Linha 9:


==Introdução==
==Introdução==
 
A problemática do aumento progressivo do consumo de energia elétrica vem preocupando a sociedade. Esse projeto, portanto, visa reverter essa situação gradualmente. EcoCharge utiliza de um dispositivo desenvolvido com a placa arduino para monitoramento da energia elétrica de um ponto de consumo utilizando um microcontrolador, enviando dados via rede sem fio a um Servidor Web, juntamente com uma interface disponível para Android e Web, onde o usuário pode visualizar seus gastos e consequentemente, monitorar seu consumo.Entregar ao usuário uma forma simples e precisa de controle, do consumo elétrico dos aparelhos que utiliza no seu cotidiano, fazendo uso de tecnologias capazes de monitorar o consumo de um aparelho ligado diretamente na tomada, apresentando informações atualizadas e reais sobre gastos prevendo uma possível re-educação sobre os gastos do usuário.
-- Texto Placebo -- <br>
(O objetivo deste projeto é construir um sistema web e ampliar o projeto EcoCharge [https://goo.gl/S8rXLJ] iniciado na disciplina projeto integrador do TADS - 2018-1. O sistema utiliza de um dispositivo desenvolvido com a placa arduino para monitoramento da energia elétrica de um ponto de consumo utilizando um microcontrolador, enviando dados via rede sem fio a um Servidor Web, juntamente com uma interface disponível para Android, onde o usuário pode visualizar seus gastos e consequentemente, monitorar seu consumo.Entregar ao usuário uma forma simples e precisa de controle do consumo elétrico dos aparelhos que utiliza no seu cotidiano, fazendo uso de tecnologias capazes de monitorar o consumo de um aparelho ligado diretamente na tomada, apresentando informações atualizadas e reais sobre gastos.)


==Objetivo Geral==
==Objetivo Geral==


Impulsionados em conscientizar nossos usuários, o presente projeto fornece uma ferramenta de controle de gastos elétricos. O aplicativo juntamento com o dispositivo medidor irá monitorar em tempo real o consumo do aparelho e enviar os dados coletados ao sistema, que ficarão disponíveis ao usuário a partir do aplicativo.
Impulsionados em conscientizar nossos usuários, o presente projeto fornece uma ferramenta de monitoramento de gastos elétricos. O sistema web juntamento com o dispositivo medidor irá monitorar em tempo real o consumo do aparelho e enviar os dados coletados ao sistema, que ficarão disponíveis ao usuário a partir da web.


==Objetivo Especifico==
==Objetivo Especifico==


Entregar ao usuário uma forma simples e precisa de controle do consumo elétrico dos aparelhos que utiliza no seu cotidiano, fazendo uso de tecnologias capazes de monitorar o consumo de um aparelho ligado diretamente na tomada, apresentando informações atualizadas e reais sobre gastos.
Monitorar o consumo elétrico por meio de um medidor e mostrar os resultados no sistema web.
*Cadastro de placas de monitoramento.
*Registrar todos os dados monitorados pela placa.
*Agendamento do horário de funcionamento do aparelho.
*Permitindo o usuário cadastrar aparelhos e cômodos para uma melhor filtragem dos dados recolhidos.
*Preenchimento de configurações do usuário.


==Principais Funcionalidades==
==Principais Funcionalidades==
Linha 40: Linha 43:
Concerne de um público amplo de jovens adultos á idosos, devido a praticidade da interface desenvolvida, para qualquer pessoa com interesse em monitorar e diminuir custos em energia elétrica pode ser considerado público alvo.
Concerne de um público amplo de jovens adultos á idosos, devido a praticidade da interface desenvolvida, para qualquer pessoa com interesse em monitorar e diminuir custos em energia elétrica pode ser considerado público alvo.


==Métodologia==
Utilizando os conceitos do sistema feito anteriormente como base (EcoCharge, 2018/1°Semestre, TADS, 5° Período), e levando em conta a ausência de um membro, identificaram-se as principais necessidades dos alunos desenvolvedores do projeto, daqui em diante chamado de EcoCharge, de rever toda sua infraestrutura para tornar possível a sequência do mesmo. Em primeira instância, não foi possível dar continuidade ao WebService, bem como seu desenvolvedor, e, portanto, surge a necessidade de uma ferramenta mais viável para prosseguir com seu desenvolvimento, sendo escolhida a linguagem C#, onde desenvolvedores já possuem conhecimento empírico com utilização da mesma. O banco de dados será feito na linguagem PostgreSQL, mais uma vez, por motivos empíricos, bem como a utilização de uma variação própria de MVC. No front-end do EcoCharge, será utilizada páginas HTML para o layout da página, CSS para a estilização e Javascript para fluência das mesmas, esta utilizando uma biblioteca de acesso gratuito chamada de Jquery. As Frameworks utilizadas no desenvolvimento são as seguintes: Visual Studio, Visual Code, PgAdmin. As tecnologias utilizadas no WebService para o desenvolvimento são EntityFramework e Npgsql, que são respectivamente, uma das principais ferramentas de persistência do .NET, e um provedor de dados voltado para conexão com banco PostgreSQL. Não está sendo utilizada nenhuma ferramenta auxiliadora no desenvolvimento do Front-End, por mais que esteja presente num projeto do Visual Studio que usa persistência do EntityFramework.


==Métodologia==
==Trabalhos relacionados==
-- (A fazer)
[https://www.copel.com/hpcopel/simulador/ Simulador de consumo de energia elétrica]
*HTML5
<br>
*CSS3
[[Arquivo:copel.jpg|600px]]
*Javascript
<br>
*JQuery 3.3.1
Simulador de consumo de energia elétrica e uma aplicação desenvolvida pela empresa de distribuição de energia paranaense copel, foi desenvolvido com uma tecnologia antiga o reprodutor de multimídia adobe flash player para navegadores. Falando em monitoramento de energia os cálculos do simulador da copel calcula tudo com uma boa aptidão, porem depende totalmente do preenchimento dos dados pelo usuário, deixando exaustivo o usuário preencher todos os aparelhos de sua residencia e lembrando que se trata de um simulador onde seus resultados tem uma grande margem de diferença do real, porem com uma interface bem interativa, ela proporciona uma sensação de estar jogando um simulador no vídeo game, que alivia um pouco a massiva jornada de inserção de dados. Alem de ser bem interativo e cheio de animações a aplicação da copel deixa a desejar sendo que foi desenvolvida em uma tecnologia tao antiga que não tem suporte para dispositivos moveis.
*PostgreSQL (Banco de Dados)
<br>
*C# (Servidor Web)
<br>
[https://www.greenant.com.br/ Medidor inteligente da GreenAnt]
<br>
[[Arquivo:greenant.jpg|600px]]
<br>
GreenAnt e uma empresa carioca que busca soluções inovadoras orientadas à gestão energética tanto residencial quanto empresarial. Com seu produto medidor inteligente que monitora o consumo de energia elétrica em tempo real de uma residencia, acoplado ao disjuntor seu aparelho que bem compacto, utiliza do seu wifi para mandar seus dados a nuvem. A interface do usuário e tanto mobile quanto web trazendo um certo conforto para acessar seus dados independente de onde estiver. Com funções adicionais de monitoramento de gastos atípicos, balancos automáticos e fazendo identificação de aparelhos automáticamente. GreenAnt realiza o monitoramento com toda eficiência trazendo dados muito bem avaliados pelos seus usuários, falha somente em questao de instalação que depende que o usuário tenha cuidado e o minimo de conhecimento sobre energia para não ocorrer problemas na rede elétrica.
<br>
<br>
[http://ecomonitor.com.br/ Ecomonitor | Monitoramento do consumo de energia e água]
<br>
[[Arquivo:ecomonitor.png|600px]]
<br>
Ecomonitor e um produto da empresa rede industrial que promete monitoramento de energia, água e luz. Utilizando sensores que são praticamente como pregadores que são simplesmente pregar ao fio elétrico ou no cano de água ou de gás deixando a instalação do ecomonitor bem pratica. Com uma interface web e mobile o sistema provem de alto suporte da parte da empresa quanto aos seus usuários trazendo confiança ao produto. Demostrando os dados coletados com ótima filtragem gerando bons gráficos ecomonitor traz boas vantagens ao usuário que deseja saber o quanto esta gastando.
<br>
Os três sistemas possuem suas vantagens e desvantagens. Para o desenvolvimento do projeto ecocharge muito se foi baseado nesses trabalhos, tentamos solucionar os erros cometidos em cada um, e aprimorar suas vantagem para trazer ao usuário a melhor experiencia posivel.


==Progresso do projeto==
==Cronograma do projeto==
*Padrões de projeto já definido
<table border="1"><tr><th><span style="font-weight:bold;color:rgb(0, 0, 0)">Atividade</span></th><th><span style="font-weight:bold;color:rgb(0, 0, 0)">Data / Período</span></th><th>Observações</th></tr><tr><td>Definição dos padrões de projeto.</td><td>21/08/2018 a 26/08/2018</td><td>Início do ciclo de desenvolvimento.</td></tr><tr><td>Definição do layout.</td><td>27/08/2018 a 29/08/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do usuário.</td><td>30/08/2018 a 09/09/2018</td><td>Login e Cadastro incluídos.</td></tr><tr><td>Criação do filtro de autenticação.</td><td>10/09/2018</td><td>Filtrar acesso em algumas páginas</td></tr><tr><td>Criação do log de ações dos usuários.</td><td>10/09/2018</td><td>-<br></td></tr><tr><td>Criação do layout do CRUD do cômodo.</td><td>10/09/2018 a 19/09/2018</td><td>-</td></tr><tr><td>Adição de paginação e ordenação nos templates de listagem.</td><td>20/09/2018 a 21/09/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do serial.</td><td>22/09/2018 a 25/09/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do aparelho.</td><td>26/09/2018 a 30/09/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do ecosense.</td><td>03/10/2018 a 06/10/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do agendamento.</td><td>10/10/2018 a 18/10/2018</td><td>-</td></tr><tr><td>Criação do layout do CRUD do consumo.</td><td>24/10/2018 a 07/11/2018</td><td></td></tr><tr><td>Correções Gerais</td><td>08/11/2018 a 21/11/2018</td><td></td></tr></table>
*Banco NÃO atualizado para as novas funções
*Inicio da criação das telas
*Permitindo login/cadastro


==Lista de Requisitos==
==Lista de Requisitos==
Linha 66: Linha 82:
<td><center>RF1</center></td>
<td><center>RF1</center></td>
<td>&nbsp;Manter usuários - criar, editar&nbsp;</td>
<td>&nbsp;Manter usuários - criar, editar&nbsp;</td>
</tr>
</tr>gastanto
<tr>
<tr>
<td><center>RF2</center></td>
<td><center>RF2</center></td>
Linha 80: Linha 96:
</tr>
</tr>
<tr>
<tr>
<td><center>RF5</center></td>
gastanto <td><center>RF5</center></td>
<td>&nbsp;Manter histórico de consumo - listar&nbsp;</td>
<td>&nbsp;Manter histórico de consumo - listar&nbsp;</td>
</tr>
</tr>
Linha 126: Linha 142:


==Modelo de entidade relacional==
==Modelo de entidade relacional==
[[Arquivo:Ecochargebanco.png|800px]]<br>
[[Arquivo:NovoBancoEcoCharge.png|800px]]<br>
Obs: Ainda há correções pendentes.
Obs: Ainda há correções pendentes.


==Dicionário de Dados==
==Dicionário de Dados==
<table border="1"><tr><td colspan="3">&nbsp;<b>TABELA:</b> nometabelaigualnobanco </td><td colspan="4"><center><b>Descriçãodonome</b></center></td></tr><tr><td>Campo Lógico</td><td>Campo Físico</td><td>Tipo</td><td>PK</td><td>FK (Tabela.Campo) </td><td>Restrições</td><td>Observações</td></tr><tr><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr></table>
<table border="1">
 
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.usuario &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela dos usuários do sistema</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Nome</center></td>
      <td><center>nome</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (60) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Sobrenome</center></td>
      <td><center>sobrenome</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (60) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Email</center></td>
      <td><center>email</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (50) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Senha</center></td>
      <td><center>senha</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (32) caracteres</center></td>
      <td><center>Senha encriptada</center></td>
  </tr>
  <tr>
      <td><center>GoogleId</center></td>
      <td><center>google_id</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (21) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>FacebookId</center></td>
      <td><center>facebook_id</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (20) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Tarifa</center></td>
      <td><center>tarifa</center></td>
      <td><center>Decimal</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (0)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.comodo &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela dos comodos do usuário</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Nome</center></td>
      <td><center>nome</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (32) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>UsuarioId</center></td>
      <td><center>usuario_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.usuario.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.serial_aparelho &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela dos seriais do sistema</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Serial</center></td>
      <td><center>serial</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (12) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.ecosense &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela dos aparelhos medidores do usuário</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>SerialId</center></td>
      <td><center>serial_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.serial_aparelho.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>UsuarioId</center></td>
      <td><center>usuario_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.usuario.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>StatusAparelho</center></td>
      <td><center>status_aparelho</center></td>
      <td><center>Boolean</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (false))</center></td>
      <td><center>Defini se o aparelho medidor está possibilitado a medição ou não</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.log &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela de log das ações dos usuários</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Acao</center></td>
      <td><center>acao</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (30) caracteres</center></td>
      <td><center>Ação do usuário</center></td>
  </tr>
  <tr>
      <td><center>Controlador</center></td>
      <td><center>controlador</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (30) caracteres</center></td>
      <td><center>Url da navegação do usuário</center></td>
  </tr>
  <tr>
      <td><center>Email</center></td>
      <td><center>email</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (50) caracteres</center></td>
      <td><center>Email do usuário</center></td>
  </tr>
  <tr>
      <td><center>Ip</center></td>
      <td><center>ip</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (20) caracteres</center></td>
      <td><center>Ip da máquina onde estão sendo feitas as ações</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.aparelho &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela dos aparelhos do usuário</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Voltagem</center></td>
      <td><center>voltagem</center></td>
      <td><center>Inteiro (32 bits)</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Cor</center></td>
      <td><center>cor</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (7) caracteres</center></td>
      <td><center>A cor que o medidor irá emitir quando estiver monitorando este aparelho</center></td>
  </tr>
  <tr>
      <td><center>EcoSenseId</center></td>
      <td><center>ecosense_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.ecosense.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>ComodoId</center></td>
      <td><center>comodo_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.comodo.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.consumo &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela do consumo dos aparelhos</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Serial</center></td>
      <td><center>serial</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (12) caracteres</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>PotenciaWatts</center></td>
      <td><center>potencia_watts</center></td>
      <td><center>Decimal</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>A quantia de watts monitorada no período</center></td>
  </tr>
  <tr>
      <td><center>Quilowatts</center></td>
      <td><center>quilowatts</center></td>
      <td><center>Decimal</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Ciclos</center></td>
      <td><center>ciclos</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>O período (em segundos) que esteve monitorando</center></td>
  </tr>
  <tr>
      <td><center>AparelhoId</center></td>
      <td><center>aparelho_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.aparelho.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table><br>
<table border="1">
  <tr>
      <td colspan="3">&nbsp;<b>TABELA:</b> public.agendamento &nbsp;</td>
      <td colspan="4">
        <center><b>Tabela de agendamento do horário de funcionamento do aparelho</b></center>
      </td>
  </tr>
  <tr>
      <td><center>Campo Lógico</center></td>
      <td><center>Campo Físico</center></td>
      <td><center>Tipo</center></td>
      <td><center>PK</center></td>
      <td><center>FK (Tabela.Campo) </center></td>
      <td><center>Restrições</center></td>
      <td><center>Observações</center></td>
  </tr>
  <tr>
      <td><center>Id</center></td>
      <td><center>id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>Sim</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Único</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>Detalhes</center></td>
      <td><center>detalhes</center></td>
      <td><center>Texto</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Limite de (300) caracteres</center></td>
      <td><center>Será armazenado (no formato JSON) os dados referentes ao dia e horário de funcionamento, possibilitando multiplos horarios num mesmo dia, com várias combinações de dias. (Possui um array de dias 0 a 6 (7 dias da semana), e cada dia podendo ter um array infinito de horarios.)</center></td>
  </tr>
  <tr>
      <td><center>UsuarioId</center></td>
      <td><center>usuario_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.usuario.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>EcoSenseId</center></td>
      <td><center>ecosense_id</center></td>
      <td><center>Inteiro (64 bits)</center></td>
      <td><center>-</center></td>
      <td><center>Sim (public.ecosense.id)</center></td>
      <td><center>Não-Nulo</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataCriacao</center></td>
      <td><center>data_criacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Não-Nulo, Valor padrão (Data Atual)</center></td>
      <td><center>-</center></td>
  </tr>
  <tr>
      <td><center>DataAtualizacao</center></td>
      <td><center>data_atualizacao</center></td>
      <td><center>Data</center></td>
      <td><center>-</center></td>
      <td><center>-</center></td>
      <td><center>Valor padrão (nulo)</center></td>
      <td><center>-</center></td>
  </tr>
</table>


==Layout/Telas==
==Layout/Telas==
--
--

Edição atual tal como às 15h51min de 21 de setembro de 2018

Equipe

Professores orientadores
  • Alcione Benacchio
  • Wellington Oliveira
Alunos
  • Kaio Rocha Aguiar
  • Luis Felipe Miglioli de Oliveira

Introdução

A problemática do aumento progressivo do consumo de energia elétrica vem preocupando a sociedade. Esse projeto, portanto, visa reverter essa situação gradualmente. EcoCharge utiliza de um dispositivo desenvolvido com a placa arduino para monitoramento da energia elétrica de um ponto de consumo utilizando um microcontrolador, enviando dados via rede sem fio a um Servidor Web, juntamente com uma interface disponível para Android e Web, onde o usuário pode visualizar seus gastos e consequentemente, monitorar seu consumo.Entregar ao usuário uma forma simples e precisa de controle, do consumo elétrico dos aparelhos que utiliza no seu cotidiano, fazendo uso de tecnologias capazes de monitorar o consumo de um aparelho ligado diretamente na tomada, apresentando informações atualizadas e reais sobre gastos prevendo uma possível re-educação sobre os gastos do usuário.

Objetivo Geral

Impulsionados em conscientizar nossos usuários, o presente projeto fornece uma ferramenta de monitoramento de gastos elétricos. O sistema web juntamento com o dispositivo medidor irá monitorar em tempo real o consumo do aparelho e enviar os dados coletados ao sistema, que ficarão disponíveis ao usuário a partir da web.

Objetivo Especifico

Monitorar o consumo elétrico por meio de um medidor e mostrar os resultados no sistema web.

  • Cadastro de placas de monitoramento.
  • Registrar todos os dados monitorados pela placa.
  • Agendamento do horário de funcionamento do aparelho.
  • Permitindo o usuário cadastrar aparelhos e cômodos para uma melhor filtragem dos dados recolhidos.
  • Preenchimento de configurações do usuário.

Principais Funcionalidades

  • Cadastro, edição, listagem e solicitação da exclusão de aparelhos monitorados. (Presente na versão Android)
  • Cadastro, edição, listagem e solicitação da exclusão de cômodos. (Presente na versão Android)
  • Consulta do histórico de consumo. (Presente na versão Android)
  • Consulta e edição das configurações referente aos cálculos. (Presente na versão Android)
  • Consulta e cadastro do dispositivo medidor. (Presente na versão Android)
  • Ativar/Desativar corrente de energia elétrica do aparelho monitorado (Ligar/Desligar). (Previsto em atualizações futuras)
  • Agendar datas/horários de funcionamento do aparelho monitorado. (Previsto em atualizações futuras)

Público Alvo

Primário

  • Empresas de médio e grande porte.
  • Industrias de qualquer rumo.

Secundário

Concerne de um público amplo de jovens adultos á idosos, devido a praticidade da interface desenvolvida, para qualquer pessoa com interesse em monitorar e diminuir custos em energia elétrica pode ser considerado público alvo.

Métodologia

Utilizando os conceitos do sistema feito anteriormente como base (EcoCharge, 2018/1°Semestre, TADS, 5° Período), e levando em conta a ausência de um membro, identificaram-se as principais necessidades dos alunos desenvolvedores do projeto, daqui em diante chamado de EcoCharge, de rever toda sua infraestrutura para tornar possível a sequência do mesmo. Em primeira instância, não foi possível dar continuidade ao WebService, bem como seu desenvolvedor, e, portanto, surge a necessidade de uma ferramenta mais viável para prosseguir com seu desenvolvimento, sendo escolhida a linguagem C#, onde desenvolvedores já possuem conhecimento empírico com utilização da mesma. O banco de dados será feito na linguagem PostgreSQL, mais uma vez, por motivos empíricos, bem como a utilização de uma variação própria de MVC. No front-end do EcoCharge, será utilizada páginas HTML para o layout da página, CSS para a estilização e Javascript para fluência das mesmas, esta utilizando uma biblioteca de acesso gratuito chamada de Jquery. As Frameworks utilizadas no desenvolvimento são as seguintes: Visual Studio, Visual Code, PgAdmin. As tecnologias utilizadas no WebService para o desenvolvimento são EntityFramework e Npgsql, que são respectivamente, uma das principais ferramentas de persistência do .NET, e um provedor de dados voltado para conexão com banco PostgreSQL. Não está sendo utilizada nenhuma ferramenta auxiliadora no desenvolvimento do Front-End, por mais que esteja presente num projeto do Visual Studio que usa persistência do EntityFramework.

Trabalhos relacionados

Simulador de consumo de energia elétrica

Simulador de consumo de energia elétrica e uma aplicação desenvolvida pela empresa de distribuição de energia paranaense copel, foi desenvolvido com uma tecnologia antiga o reprodutor de multimídia adobe flash player para navegadores. Falando em monitoramento de energia os cálculos do simulador da copel calcula tudo com uma boa aptidão, porem depende totalmente do preenchimento dos dados pelo usuário, deixando exaustivo o usuário preencher todos os aparelhos de sua residencia e lembrando que se trata de um simulador onde seus resultados tem uma grande margem de diferença do real, porem com uma interface bem interativa, ela proporciona uma sensação de estar jogando um simulador no vídeo game, que alivia um pouco a massiva jornada de inserção de dados. Alem de ser bem interativo e cheio de animações a aplicação da copel deixa a desejar sendo que foi desenvolvida em uma tecnologia tao antiga que não tem suporte para dispositivos moveis.

Medidor inteligente da GreenAnt

GreenAnt e uma empresa carioca que busca soluções inovadoras orientadas à gestão energética tanto residencial quanto empresarial. Com seu produto medidor inteligente que monitora o consumo de energia elétrica em tempo real de uma residencia, acoplado ao disjuntor seu aparelho que bem compacto, utiliza do seu wifi para mandar seus dados a nuvem. A interface do usuário e tanto mobile quanto web trazendo um certo conforto para acessar seus dados independente de onde estiver. Com funções adicionais de monitoramento de gastos atípicos, balancos automáticos e fazendo identificação de aparelhos automáticamente. GreenAnt realiza o monitoramento com toda eficiência trazendo dados muito bem avaliados pelos seus usuários, falha somente em questao de instalação que depende que o usuário tenha cuidado e o minimo de conhecimento sobre energia para não ocorrer problemas na rede elétrica.

Ecomonitor | Monitoramento do consumo de energia e água

Ecomonitor e um produto da empresa rede industrial que promete monitoramento de energia, água e luz. Utilizando sensores que são praticamente como pregadores que são simplesmente pregar ao fio elétrico ou no cano de água ou de gás deixando a instalação do ecomonitor bem pratica. Com uma interface web e mobile o sistema provem de alto suporte da parte da empresa quanto aos seus usuários trazendo confiança ao produto. Demostrando os dados coletados com ótima filtragem gerando bons gráficos ecomonitor traz boas vantagens ao usuário que deseja saber o quanto esta gastando.
Os três sistemas possuem suas vantagens e desvantagens. Para o desenvolvimento do projeto ecocharge muito se foi baseado nesses trabalhos, tentamos solucionar os erros cometidos em cada um, e aprimorar suas vantagem para trazer ao usuário a melhor experiencia posivel.

Cronograma do projeto

AtividadeData / PeríodoObservações
Definição dos padrões de projeto.21/08/2018 a 26/08/2018Início do ciclo de desenvolvimento.
Definição do layout.27/08/2018 a 29/08/2018-
Criação do layout do CRUD do usuário.30/08/2018 a 09/09/2018Login e Cadastro incluídos.
Criação do filtro de autenticação.10/09/2018Filtrar acesso em algumas páginas
Criação do log de ações dos usuários.10/09/2018-
Criação do layout do CRUD do cômodo.10/09/2018 a 19/09/2018-
Adição de paginação e ordenação nos templates de listagem.20/09/2018 a 21/09/2018-
Criação do layout do CRUD do serial.22/09/2018 a 25/09/2018-
Criação do layout do CRUD do aparelho.26/09/2018 a 30/09/2018-
Criação do layout do CRUD do ecosense.03/10/2018 a 06/10/2018-
Criação do layout do CRUD do agendamento.10/10/2018 a 18/10/2018-
Criação do layout do CRUD do consumo.24/10/2018 a 07/11/2018
Correções Gerais08/11/2018 a 21/11/2018

Lista de Requisitos

Requisitos Funcionais

gastanto gastanto
Código
Requisito Funcional
RF1
 Manter usuários - criar, editar 
RF2
 Manter cômodos - criar, listar, editar, excluir 
RF3
 Manter aparelhos - criar, listar, editar, excluir 
RF4
 Manter sensores - criar, listar 
RF5
 Manter histórico de consumo - listar 
RF6
 Manter agendamento - criar, listar, editar, excluir 
RF7
 Manter configuração - criar, listar, editar 

Regras de Negócio

CódigoRequisito FuncionalRegra de Negócio
---

Requisitos Não Funcionais Tecnológicos

Código
Requisito Não Funcional Tecnológico
RNF 1
 O sistema deve executar na linguagem C#. 
RNF 2
 O sistema deve executar em ambiente web. 
RNF 3
 O sistema deve ser capaz de se comunicar com o banco PostgreSQL. 
RNF 4
 o sistema deve manter o log de ação dos usuários. 

Diagrama de Casos de Uso


Obs: Ainda há correções pendentes.

Modelo de entidade relacional


Obs: Ainda há correções pendentes.

Dicionário de Dados

 TABELA: public.usuario  
Tabela dos usuários do sistema
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Nome
nome
Texto
-
-
Não-Nulo, Limite de (60) caracteres
-
Sobrenome
sobrenome
Texto
-
-
Não-Nulo, Limite de (60) caracteres
-
Email
email
Texto
-
-
Não-Nulo, Limite de (50) caracteres
-
Senha
senha
Texto
-
-
Não-Nulo, Limite de (32) caracteres
Senha encriptada
GoogleId
google_id
Texto
-
-
Não-Nulo, Limite de (21) caracteres
-
FacebookId
facebook_id
Texto
-
-
Não-Nulo, Limite de (20) caracteres
-
Tarifa
tarifa
Decimal
-
-
Não-Nulo, Valor padrão (0)
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.comodo  
Tabela dos comodos do usuário
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Nome
nome
Texto
-
-
Não-Nulo, Limite de (32) caracteres
-
UsuarioId
usuario_id
Inteiro (64 bits)
-
Sim (public.usuario.id)
Não-Nulo
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.serial_aparelho  
Tabela dos seriais do sistema
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Serial
serial
Texto
-
-
Não-Nulo, Limite de (12) caracteres
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.ecosense  
Tabela dos aparelhos medidores do usuário
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
SerialId
serial_id
Inteiro (64 bits)
-
Sim (public.serial_aparelho.id)
Não-Nulo
-
UsuarioId
usuario_id
Inteiro (64 bits)
-
Sim (public.usuario.id)
Não-Nulo
-
StatusAparelho
status_aparelho
Boolean
-
-
Não-Nulo, Valor padrão (false))
Defini se o aparelho medidor está possibilitado a medição ou não
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.log  
Tabela de log das ações dos usuários
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Acao
acao
Texto
-
-
Não-Nulo, Limite de (30) caracteres
Ação do usuário
Controlador
controlador
Texto
-
-
Não-Nulo, Limite de (30) caracteres
Url da navegação do usuário
Email
email
Texto
-
-
Não-Nulo, Limite de (50) caracteres
Email do usuário
Ip
ip
Texto
-
-
Não-Nulo, Limite de (20) caracteres
Ip da máquina onde estão sendo feitas as ações
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.aparelho  
Tabela dos aparelhos do usuário
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Voltagem
voltagem
Inteiro (32 bits)
-
-
Não-Nulo
-
Cor
cor
Texto
-
-
Não-Nulo, Limite de (7) caracteres
A cor que o medidor irá emitir quando estiver monitorando este aparelho
EcoSenseId
ecosense_id
Inteiro (64 bits)
-
Sim (public.ecosense.id)
Não-Nulo
-
ComodoId
comodo_id
Inteiro (64 bits)
-
Sim (public.comodo.id)
Não-Nulo
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.consumo  
Tabela do consumo dos aparelhos
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Serial
serial
Texto
-
-
Não-Nulo, Limite de (12) caracteres
-
PotenciaWatts
potencia_watts
Decimal
-
-
Não-Nulo
A quantia de watts monitorada no período
Quilowatts
quilowatts
Decimal
-
-
Não-Nulo
-
Ciclos
ciclos
Inteiro (64 bits)
-
-
Não-Nulo
O período (em segundos) que esteve monitorando
AparelhoId
aparelho_id
Inteiro (64 bits)
-
Sim (public.aparelho.id)
Não-Nulo
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-


 TABELA: public.agendamento  
Tabela de agendamento do horário de funcionamento do aparelho
Campo Lógico
Campo Físico
Tipo
PK
FK (Tabela.Campo)
Restrições
Observações
Id
id
Inteiro (64 bits)
Sim
-
Não-Nulo, Único
-
Detalhes
detalhes
Texto
-
-
Não-Nulo, Limite de (300) caracteres
Será armazenado (no formato JSON) os dados referentes ao dia e horário de funcionamento, possibilitando multiplos horarios num mesmo dia, com várias combinações de dias. (Possui um array de dias 0 a 6 (7 dias da semana), e cada dia podendo ter um array infinito de horarios.)
UsuarioId
usuario_id
Inteiro (64 bits)
-
Sim (public.usuario.id)
Não-Nulo
-
EcoSenseId
ecosense_id
Inteiro (64 bits)
-
Sim (public.ecosense.id)
Não-Nulo
-
DataCriacao
data_criacao
Data
-
-
Não-Nulo, Valor padrão (Data Atual)
-
DataAtualizacao
data_atualizacao
Data
-
-
Valor padrão (nulo)
-

Layout/Telas

--