Skip to content

rotognin/portaria

Repository files navigation

Controle de portaria - entrada e saída de visitantes e veículos

Projeto de estudo particular

Este sistema consiste em um controle de visitas em uma empresa, com suporte a matriz e filiais, podendo ter uma ou mais portarias em uma mesma unidade. O registro de login do operador estará ligado à unidade e à portaria onde ele irá atuar. As portarias podem ser de entrada de pessoas apenas, veículos apenas ou ambos, de acordo com o cadastro da mesma.

No registro de movimentação de entrada, o visitante irá receber um crachá identificado e deverá devolvê-lo na saída. Poderá informar o nome de um contato na empresa com quem irá tratar, além de cadastrar acompanhantes que estiverem junto com o mesmo.

Ambientes:

  • Administrativo: ambiente voltado à gerência, para o cadastro de usuários (administradores e clientes), Unidades (matriz e filiais), Portarias da Unidade, Crachás a serem disponibilizados, acompanhamento das movimentações, parametrizações e relatórios. Apenas usuários cadastrados como Administradores podem acessar esse ambiente.

  • Movimentações: movimentações de entrada e saída, cadastro de empresas e visitantes, acompanhamento das visitas em andamento. Quaisquer usuários que não estiverem cadastrados como Administradores irão acecssar esse ambiente automaticamente, devendo selecionar a unidade e a portaria em que irão atuar ao efetuar o login.

Um usuário cadastrado como "Usuário Comum" não terá acesso ao sistema administrativo, assim como administradores não terão acesso ao ambiente de movimentações.

Detalhes técnicos:

Sistema sendo desenvolvido em PHP 7.4+, usando a arquitetura MVC (POO), CoffeeCode DataLayer como ORM, banco de dados MySQL, seguindo as melhores práticas de programação (separação de camadas, separação de responsabilidades, nomes de variáveis e métodos com coerência).

  • Estou implementando o framework de testes PHPUnit, e adaptando algumas funções para serem testáveis.

Necessário para o funcionamento do sistema: PHP 7.4+, MySQL, Composer, GIT (para clonar o repositório, caso queira).

  • Este projeto está rodando neste link. Usuário: "admin", senha: "123"

Procedimentos para instalação local:

  • Baixe o projeto em uma pasta
  • Acesse a pasta via linha de comando
  • Execute o comando: composer update para baixar as dependências do projeto
  • No MySQL crie um banco com o nome portaria_db
  • Rode o script docs/tabelas.sql no banco para criar as tabelas do sistema
    • Será criado o usuário "admin" no banco, senha "123", com acesso ao ambiente administrativo.
  • Ajuste as configurações de acesso ao banco de dados no arquivo src/config.php
  • Crie o arquivo src/configemail.php para ajustar as configurações de envio de e-mail, caso queira utilizar essa opção
    • Neste arquivo deverão ser informadas as segunites configurações:
    • $email_remetente = 'remetente@email.com'; Remetente do e-mail
    • $email_servidor = 'smtp.servidor.com'; Host, endereço do servidor de disparo de e-mails (SMTP)
    • $email_usuario = 'login@email.com'; Login da conta de e-mail
    • $email_senha = '123456'; Senha da conta de e-mail

Considerações

O projeto está em constante atualização, sendo adicionadas funcionalidades e melhorias. Sugestões serão muito bem vindas.

Melhorias sendo desenvolvidas e futuras

  • Geração de relatórios em PDF
  • OK - Envio de e-mails para a empresa quando o visitante der entrada
  • OK - Criação de parâmetros:
    • Acompanhante pode sair antes?
    • Atribuir crachás específicos para acompanhantes
    • OK Previsão de saída (exibirá mensagem ao passar do horário previsto)
    • OK Limitar o número de acompanhantes
  • OK - Ao criar uma Unidade nova (matriz ou filial), criar um registro com valores iniciais
  • OK - Exibir mais informações nos detalhes de uma movimentação
  • Geração de gráficos
  • Envio de mensagens entre os ambientes
  • Na administração:
    • verificar quais portarias estão ativas no momento (monitoramento de visitas)
    • exibir movimentações não finalizadas de dias anteriores
  • OK No cadastro das portarias de uma unidade, informar se será entrada/saída de veículos, pessoas ou ambos
  • Criação de especificações para rodar o projeto usando Docker e Docker-compose.

About

Controle de entrada e saída de visitantes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages