DEVELOPMENT OF A TECHNOLOGICAL SOLUTION FOR ATTENDANCE CONTROL WITH A FOCUS ON SECURITY AND DIGITAL AUTHENTICATION
REGISTRO DOI: 10.69849/revistaft/ar10202511192231
Matheus Pestiglio Mufato¹
João Henrique Gião Borges²
Fabiana Florian³
RESUMO
O controle de frequência estudantil em instituições de ensino superior ainda é frequentemente realizado por métodos tradicionais, como listas de chamada impressas, que são suscetíveis a fraudes, perda de dados e ineficiência administrativa. Este trabalho teve como objetivo o desenvolvimento de um sistema digital para o controle de presença, baseado na leitura de QR Code e fortalecido por múltiplos fatores de autenticação (MFA) para garantir a integridade e a segurança do processo. Para isso, foi implementada uma aplicação web com arquitetura de três camadas, utilizando React no front-end, Node.js com Express.js no back-end e MySQL como banco de dados. A solução integra um fluxo de validação rigoroso que combina a autenticação institucional via Google OAuth 2.0, a verificação da geolocalização do aluno para confirmar sua presença física no local da aula, e a exigência de senhas temporárias de uso único (TOTP) através de aplicativos autenticadores. O resultado é um sistema funcional e seguro, capaz de mitigar as vulnerabilidades dos métodos manuais. A plataforma previne fraudes, como o registro de presença por terceiros, otimiza o tempo do docente ao automatizar a coleta de dados e gera registros digitais confiáveis e auditáveis, contribuindo para a modernização da gestão acadêmica.
Palavras-Chave: Controle de Presença. QR Code. Autenticação Multifator (MFA). Node.js. React.
1 INTRODUÇÃO
No cenário contemporâneo, a crescente digitalização das atividades acadêmicas tem impulsionado o desenvolvimento de soluções tecnológicas para a gestão institucional. Uma das principais demandas emergentes é a necessidade de um controle de frequência estudantil mais eficiente, seguro e integrado. Os métodos tradicionais, como listas de chamada impressas, apresentam sérias limitações quanto à precisão, segurança e praticidade (SILVA, 2020), sendo marcados por problemas como fraudes, extravios de documentos e dificuldades na organização de dados. Tais fatores, somados ao tempo gasto pelos docentes na conferência manual, tornam esses sistemas obsoletos e interferem negativamente na dinâmica pedagógica. A exigência por relatórios detalhados e auditáveis reforça a busca por mecanismos modernos, capazes de integrar os registros de frequência aos sistemas acadêmicos e subsidiar intervenções pedagógicas mais eficazes.
O uso de tecnologias como os códigos QR (Quick Response) surge como uma alternativa viável e segura para essa finalidade. Sistemas baseados em QR Code oferecem praticidade, promovem maior controle e geram registros digitalizados das presenças (PEREIRA; MENDES, 2021). Esta inovação insere-se no movimento de digitalização da educação, onde automação e confiabilidade são cruciais para a modernização da gestão (UNESCO, 2022). Com o auxílio de dispositivos móveis, os estudantes podem registrar sua presença de forma instantânea e rastreável, minimizando erros humanos. Adicionalmente, a geração automatizada de relatórios e o armazenamento em nuvem conferem agilidade à gestão e garantem a durabilidade e o fácil acesso aos dados.
Este trabalho teve como objetivo desenvolver um sistema de controle de presença baseado na leitura de QR Codes, incorporando mecanismos de autenticação multifator para garantir a veracidade dos registros. A solução proposta utiliza uma arquitetura moderna, com interface frontend em React, backend em Node.js com o framework Express.js e banco de dados relacional MySQL. Para assegurar a integridade dos dados e a autenticação segura, o sistema incorpora tecnologias como JSON Web Tokens (JWT), verificação de geolocalização e senhas temporárias (OTP, de One-Time Password) via Google Authenticator. O uso de WebSockets também é explorado para permitir atualizações em tempo real, visando disponibilizar uma solução segura, eficiente e escalável.
A opção por desenvolver um sistema próprio fundamenta-se na segurança, eficiência e acessibilidade. A vulnerabilidade dos métodos manuais exige soluções mais robustas (ALMEIDA; COSTA, 2019), e embora existam plataformas comerciais, muitas possuem alto custo ou não se adaptam à realidade das instituições brasileiras. Nesse sentido, uma solução personalizada é estratégica, pois considera limitações locais e democratiza o acesso à inovação. A escolha por tecnologias como React e Node.js justifica-se pela escalabilidade e suporte comunitário, enquanto o uso de autenticação avançada segue diretrizes de segurança de órgãos como o NIST (2020). Conforme apontam Barbosa e Lima (2022), sistemas automatizados contribuem para a redução de fraudes e o aprimoramento da gestão, suprindo as fragilidades dos métodos tradicionais.
O problema central identificado nesta pesquisa reside na ineficiência e fragilidade dos métodos convencionais de controle de presença. A ausência de verificação de identidade e de integração digital compromete a confiabilidade do processo, afetando não apenas o registro da assiduidade, mas também a tomada de decisões pedagógicas (SILVA et al., 2020). A hipótese central deste trabalho é que a implementação de um sistema de registro por QR Code, aliado à autenticação multifator, seja capaz de mitigar as vulnerabilidades dos métodos tradicionais. Espera-se que a solução aumente a segurança, otimize o tempo dos docentes, previna fraudes e reduza erros humanos. A automação permitirá aos professores maior dedicação ao conteúdo pedagógico e viabilizará a geração de relatórios personalizados, contribuindo para uma gestão educacional mais estratégica.
Para o desenvolvimento, foi utilizada a metodologia ágil Scrum, com o trabalho organizado em ciclos curtos e iterativos (sprints). A arquitetura da solução será estruturada em três camadas: frontend (React), backend (Node.js/Express.js) e banco de dados (MySQL). A segurança foi reforçada por múltiplos fatores de autenticação, como JWT, GPS e OTP. As etapas do projeto incluem: levantamento de requisitos, modelagem da arquitetura, desenvolvimento dos módulos, testes com usuários em ambiente controlado e ajustes baseados em feedback. Ao final, espera-se entregar uma solução funcional, escalável e documentada, validada quanto à usabilidade e eficácia, e cuja sustentabilidade será garantida por meio de versionamento e atualização contínua.
2 REVISÃO BIBLIOGRÁFICA
2.1 Sistemas de Controle de Frequência
A crescente demanda por soluções tecnológicas no ambiente educacional tem impulsionado a transição de métodos tradicionais, como listas de chamada manuais, para sistemas de controle de presença digitais, que garantem maior precisão, segurança e praticidade. Nesse contexto, soluções que combinam o uso de QR Code com autenticação multifatorial têm se destacado. Segundo Santos (2020), a adoção de tecnologias digitais no ensino não apenas moderniza os processos administrativos, mas também oferece maior transparência e confiabilidade na gestão de dados acadêmicos, tornando o controle de frequência um ponto estratégico, especialmente em instituições onde a assiduidade é um critério de desempenho ou uma obrigatoriedade legal.
2.2 APIs do Google para Validação de Presença
As APIs fornecidas pelo Google constituem ferramentas robustas para a construção de sistemas de autenticação e controle de acesso. Para a solução proposta, são empregados recursos estratégicos como o Google OAuth 2.0, que permite a autenticação segura de usuários por meio de e-mails institucionais, garantindo que apenas alunos vinculados à instituição acessem o sistema (GOOGLE DEVELOPERS, 2023). Complementarmente, a Google Maps API é utilizada para a verificação da localização geográfica, assegurando que o registro de presença seja realizado dentro de um perímetro físico autorizado, como o campus universitário. Como camada adicional de segurança, o sistema integra o Google Authenticator, que opera com base no protocolo TOTP (Time-Based One-Time Password), exigindo que o aluno valide sua identidade com um código temporário após o login inicial.
2.3 Arquitetura do Sistema Proposto
A arquitetura do sistema proposto foi desenhada para garantir um fluxo de comunicação seguro e eficiente. O processo inicia-se com o professor selecionando a turma e gerando um QR Code que contém um token JWT (JSON Web Token) com informações da aula. Ao escanear o código, o aluno já utilizando seu login com seu e-mail institucional (validado via Google OAuth) envia o token ao servidor, que então executa uma sequência rigorosa de validações para confirmar a presença:
- Verificação do token (JWT): Valida a assinatura digital e o tempo de expiração do token para prevenir reutilização.
- Identificação do aluno: Confirma a identidade através do e-mail institucional.
- Fingerprint do dispositivo: Assegura que o registro parte de um dispositivo previamente conhecido.
- Geolocalização: Confirma, via Google Maps API, que o aluno está na localização correta.
- Autenticação multifator (OTP): Exige um código do Google Authenticator para finalizar a validação.
O registro da presença só é efetivado após a conclusão bem-sucedida de todas essas etapas. Ao final da aula, o professor pode exportar a lista de presença consolidada diretamente da plataforma, garantindo total rastreabilidade.
2.4 Segurança e Confiabilidade
A robustez do sistema contra fraudes reside na implementação de múltiplas etapas de verificação, que exigem a combinação de diferentes fatores de autenticação: algo que o aluno sabe (senha), algo que ele possui (dispositivo com OTP) e sua localização física. De acordo com Souza e Lima (2022), a combinação desses fatores é fundamental para garantir a integridade de sistemas educacionais que demandam rastreabilidade e segurança jurídica no controle de frequência. A utilização de APIs consolidadas, como as do Google, não apenas fortalece a segurança, mas também minimiza a necessidade de desenvolver e manter uma infraestrutura própria para autenticação e geolocalização, o que reduz custos operacionais e aumenta a escalabilidade do sistema.
3 DESENVOLVIMENTO
O presente Trabalho de Conclusão de Curso (TCC) materializou-se no desenvolvimento de um Sistema de Controle de Presença, projetado para modernizar e proteger o processo de registro de frequência em ambientes educacionais. Esta seção detalha a metodologia empregada na condução do projeto, descreve a arquitetura sistêmica implementada e apresenta os resultados alcançados no desenvolvimento do front-end e do back-end, com especial atenção aos mecanismos de geração, leitura e validação multifator do QR Code.
3.1 Metodologia de Desenvolvimento do Projeto
Para a execução deste projeto, foi adotada a metodologia ágil Scrum, escolha justificada por sua flexibilidade e ênfase em entregas incrementais e funcionais (SCHWABER; SUTHERLAND, 2020). O trabalho foi estruturado em Sprints, ciclos curtos de desenvolvimento com fases de planejamento, execução, revisão e retrospectiva. Essa abordagem permitiu a aplicação progressiva de conhecimentos, a adaptação a novos aprendizados e a demonstração contínua de progresso, mostrando-se ideal para o escopo de um TCC.
3.2 Arquitetura Geral do Sistema Implementado
A espinha dorsal do sistema é uma arquitetura de três camadas, implementada para assegurar modularidade, escalabilidade e manutenibilidade:
- Front-end: Responsável pela interação com o usuário, a camada de apresentação foi desenvolvida com a biblioteca React (REACT DOCUMENTATION, c2024). A escolha se deu por sua performance e modelo de componentização, que facilitou a criação de interfaces dinâmicas para o professor (gerenciamento de turmas e geração de QR Codes) e para o aluno (autenticação, escaneamento e visualização de presença).
- Back-end: O cérebro da aplicação foi implementado com Node.js (NODE.JS FOUNDATION, c2024) e o framework Express.js (EXPRESS.JS TEAM, c2024). Essa camada orquestra a lógica de negócios, a validação de dados, a comunicação com o banco de dados e todos os processos de autenticação, expondo-os através de uma API RESTful segura.
- Banco de Dados: Para a persistência dos dados, foi utilizado o MySQL (ORACLE CORPORATION, c2024), um sistema de gerenciamento de banco de dados relacional (SGBDR) que armazena informações de usuários, turmas, aulas e os registros de presença com seus respectivos dados de validação.
A segurança foi um aspecto transversal e prioritário. A autenticação de sessão foi implementada com JSON Web Tokens (JWT), seguindo o padrão RFC 7519 (JONES; BRADLEY; SAKIMURA, 2015). A autenticação inicial dos usuários foi garantida pela integração com o protocolo Google OAuth 2.0 (GOOGLE DEVELOPERS, 2023), assegurando que apenas membros com e-mail institucional pudessem acessar o sistema. O fluxo foi implementado de modo que a aplicação nunca manipula as senhas dos usuários, delegando a responsabilidade da autenticação primária ao Google e garantindo a criptografia da comunicação com o uso de HTTPS.
Adicionalmente, para fortalecer a validação de cada registro de presença, foram integrados mecanismos de segurança multifatorial, como a verificação de geolocalização via Geolocation API (MDN WEB DOCS, c2024a) e a autenticação de dois fatores com senhas de uso único baseadas em tempo (TOTP), conforme a RFC 6238 (MIERS; NASLUND; RIVEST, 2011) e as recomendações do NIST (NIST, 2020). O uso de QR Codes como meio para iniciar esse processo encontra respaldo em estudos que destacam sua praticidade (PEREIRA; MENDES, 2021).
3.3 Implementação do Sistema de Controle de Presença
O desenvolvimento foi concluído, resultando em um sistema funcional com as camadas de front-end e back-end devidamente integradas e operacionais.
3.3.1 Desenvolvimento do front-end
A interface do usuário em React foi finalizada, com telas responsivas e fluxos de interação validados. O projeto foi estruturado de forma modular, utilizando a Context API para gerenciamento de estado e react-router-dom para navegação (REACT ROUTER DOCUMENTATION, c2024). As principais implementações incluem:
- Páginas e Componentes: Foram construídas as telas de autenticação via Google, o dashboard do professor para gerenciamento de turmas, a interface de geração de QR Code e a tela do aluno para escaneamento, que utiliza a Média Devices API (MDN WEB DOCS, c2024b) para acesso à câmera.
- Interação com QR Code: O fluxo de geração e leitura foi refinado para ser intuitivo. O professor gera o QR Code que renderiza um JWT obtido do back-end, e o aluno o escaneia para iniciar o processo de validação.
- Consumo de API: A comunicação com o back-end foi estabelecida utilizando axios (AXIOS COMMUNITY, c2024), com tratamento de tokens de sessão e feedback visual para o usuário sobre o status das operações (sucesso, erro, confirmação de presença).
3.3.2 Desenvolvimento do back-end
O back-end em Node.js e Express.js foi totalmente implementado, fornecendo a base para todas as operações do sistema.
- Estrutura da API e Segurança: Foram desenvolvidos os endpoints RESTful essenciais para autenticação, gerenciamento de turmas e validação de presença. A segurança foi reforçada com middlewares como helmet e cors, e a estrutura do projeto seguiu padrões de design para separação de responsabilidades (FOWLER, 2002).
- Conexão e Modelagem de Dados: A conexão com o MySQL foi abstraída com o ORM Sequelize (SEQUELIZE TEAM, c2024), que facilitou a definição dos modelos de dados (Usuário, Turma, Aula, Presença) e as interações com o banco.
- Lógica de Validação do QR Code: Este é o núcleo do back-end. Ao receber uma requisição de validação, o servidor executa as seguintes etapas:
- Decodifica e valida a assinatura e a expiração do JWT contido no QR Code.
- Verifica se o aluno (autenticado via token de sessão) pertence à turma da aula em questão.
- Valida os dados de geolocalização enviados pelo front-end.
- Confirma o código TOTP de segundo fator fornecido pelo aluno.
- Se todas as validações forem aprovadas, um registro de presença é criado no banco de dados.
3.3.3 Integração, Testes e Finalização
A fase final do desenvolvimento focou na sinergia entre as camadas e na validação do sistema como um todo.
- Integração e Testes: A integração entre front-end e back-end foi consolidada, e a aplicação foi submetida a testes unitários e de integração para garantir a robustez dos endpoints e a consistência dos dados (PRESSMAN; MAXIM, 2019).
- Implementação dos Mecanismos de Segurança: A integração com Google OAuth, a verificação de Geolocalização e a validação de OTP foram finalizadas e incorporadas ao fluxo de registro, operando de forma coesa.
- Comunicação em Tempo Real: Para melhorar a experiência do professor, foi implementada a comunicação via WebSockets (IANNOTTA, 2011; SOCKET.IO TEAM, c2024), conforme a RFC 6455 (FETTE; MELNIKOV, 2011), permitindo que a lista de presença em seu dashboard seja atualizada em tempo real.
- Validação e Documentação: Foram realizados testes de usabilidade com um grupo de controle para refinar a interface com base no feedback (NIELSEN, 1993). A API do back-end foi documentada utilizando o padrão OpenAPI (OPENAPI INITIATIVE, c2024) para facilitar a manutenção. Finalmente, o sistema foi preparado para implantação em ambiente de nuvem, seguindo boas práticas de CI/CD (HUMBLE; FARLEY, 2010).
REFÊRENCIAS
ALMEIDA, J. P.; COSTA, M. G. Gestão da presença discente por meios digitais: um estudo de caso em instituições públicas. Revista Brasileira de Tecnologias Educacionais, v. 12, n. 3, p. 44–58, 2019.
AXIOS COMMUNITY. Axios: Promise based HTTP client for the browser and node.js. [2024]. Disponível em: https://axios-http.com/. Acesso em: 21 maio 2025.
BARBOSA, L. F.; LIMA, R. S. Transformações digitais no ensino superior: desafios e oportunidades. Cadernos de Administração, v. 29, n. 2, p. 101–120, 2022.
EXPRESS-VALIDATOR TEAM. express-validator. [2024]. Disponível em: https://express-validator.github.io/docs/. Acesso em: 20 maio 2025.
EXPRESS.JS TEAM. Express – Node.js web application framework. [2024]. Disponível em: https://expressjs.com/. Acesso em: 20 maio 2025.
FETTE, I.; MELNIKOV, A. RFC 6455: The WebSocket Protocol. IETF, 2011. Disponível em: https://datatracker.ietf.org/doc/html/rfc6455. Acesso em: 29 maio 2025.
GOOGLE DEVELOPERS. Using OAuth 2.0 for Web Server Applications. 2023. Disponível em: https://developers.google.com/identity/protocols/oauth2. Acesso em: 6 abr. 2025.
IANNOTTA, M. The WebSocket API. W3C Candidate Recommendation, 20 set. 2011. Disponível em: https://www.w3.org/TR/websockets/. Acesso em: 24 maio 2025.
JONES, M.; BRADLEY, J.; SAKIMURA, N. RFC 7519: JSON Web Token (JWT). IETF, 2015. Disponível em: https://datatracker.ietf.org/doc/html/rfc7519. Acesso em: 24 abr. 2025.
MDN WEB DOCS. Geolocation API. [2024a]. Disponível em: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API. Acesso em: 12 maio 2025.
MDN WEB DOCS. MediaDevices API. [2024b]. Disponível em: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices_API. Acesso em: 12 maio 2025.
MIERS, I.; NASLUND, M.; RIVEST, R. L. RFC 6238: Time-Based One-Time Password Algorithm (TOTP). IETF, 2011. Disponível em: https://datatracker.ietf.org/doc/html/rfc6238. Acesso em: 24 abr. 2025.
NIST – NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Digital Identity Guidelines. Gaithersburg: NIST, 2020. Disponível em: https://pages.nist.gov/800-63-3/. Acesso em: 5 abr. 2025.
NODE.JS FOUNDATION. Node.js. [2024]. Disponível em: https://nodejs.org/. Acesso em: 22 maio 2025.
OPENAPI INITIATIVE. OpenAPI Specification. [2024]. Disponível em: https://www.openapis.org/. Acesso em: 09 maio 2025.
ORACLE CORPORATION. MySQL. [2024]. Disponível em: https://www.mysql.com/. Acesso em: 29 maio 2025.
PEREIRA, A. L.; MENDES, D. F. Aplicações de QR Code na educação: acessibilidade, inovação e controle. Revista Brasileira de Educação Tecnológica, v. 15, n. 1, p. 75–90, 2021.
PRESSMAN, R. S.; MAXIM, B. R. Software Engineering: A Practitioner’s Approach. 9. ed. New York: McGraw-Hill Education, 2019.
REACT DOCUMENTATION. React – A JavaScript library for building user interfaces. Meta, [2024]. Disponível em: https://react.dev/. Acesso em: 23 maio 2025.
REACT ROUTER DOCUMENTATION. React Router. Remix Software, [2024]. Disponível em: https://reactrouter.com/. Acesso em: 23 abr. 2025.
SANTOS, A. M. dos. Tecnologia e controle de frequência escolar: uma abordagem prática. Revista Brasileira de Educação Tecnológica, v. 14, n. 2, p. 45–58, 2020.
SCHWABER, K.; SUTHERLAND, J. The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game. Scrum.org, 2020. Disponível em: https://scrumguides.org/scrum-guide.html. Acesso em: 12 maio 2025.
SEQUELIZE TEAM. Sequelize: Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. [2024]. Disponível em: https://sequelize.org/. Acesso em: 24 maio 2025.
SILVA, M. J. et al. Soluções digitais para controle de frequência: análise e proposta de modelo híbrido. Revista de Sistemas de Informação, v. 8, n. 2, p. 22–35, 2020.
SOCKET.IO TEAM. Socket.IO. [2024]. Disponível em: https://socket.io/. Acesso em: 24 maio 2025.
SOUZA, L. F.; LIMA, R. P. Segurança da informação em ambientes educacionais: desafios e soluções. Cadernos de Ciência e Tecnologia, v. 39, n. 1, p. 89–105, 2022.
UNESCO. Education in a Post-COVID World: Nine Ideas for Public Action. Paris: UNESCO, 2022.
¹Discente do Curso de Engenharia de Computação da Universidade de Araraquara- UNIARA.
Araraquara-SP. E-mail: matheus.mufato@uniara.edu.br
²Orientador Docente do Curso de Engenharia da Computação da Universidade de Araraquara- UNIARA. Araraquara-SP. E-mail: jhgborges@uniara.edu.br
³Coorientador Docente do curso de Engenharia de Computação da Universidade de Araraquara – UNIARA. Araraquara-SP. E-mail: fflorian@uniara.edu.br do autor
