Documentação do PI
Projeto: DeltaFour - Ponto! Instituição: Centro Paula Souza - Faculdade de Tecnologia de Jahu
Curso: Tecnologia em Desenvolvimento de Software Multiplataforma
Semestre: 6º semestre / 2026
Equipe: Otavio Martins, Gabriel Fogo, Arthur Servidor e Rafael Paschoalotti
Empresa parceira: STi3 Sistemas LTDA | CNPJ: 07.482.867/0001-70 Endereço da parceira: Av. João Franceschi, 4070 - Jardim Alvorada, Jaú - SP, 17210-381
📑 Sumário
Esta documentação foi atualizada com base no código-fonte atual, mantendo a estrutura ABNT do material-base.
O registro de ponto é uma atividade essencial para empresas que precisam acompanhar a jornada de trabalho de seus colaboradores de maneira precisa, segura e confiável. Ainda assim, muitas organizações dependem de sistemas ultrapassados ou pouco integrados, o que gera inconsistências no registro, baixa transparência, dificuldade de gestão e ausência de relatórios dinâmicos.
Para atender a esse cenário, o DeltaFour - Ponto! é apresentado como uma plataforma voltada à gestão de ponto eletrônico, com foco em centralizar o controle de presença, o cadastro de funcionários, o gerenciamento de empresas e a geração de folhas de ponto em PDF.
A implementação atual é composta por uma API em .NET 8, um front-end web em React, um aplicativo mobile em .NET MAUI para registro de ponto, integração com MySQL, fluxo de assinaturas via Stripe e um microserviço de reconhecimento facial em FastAPI. O sistema contempla perfis distintos (SUPER_ADMIN, ADMIN, RH e EMPLOYEE), além de validações de geolocalização e biometria facial no registro de ponto.
Desenvolver um sistema web de ponto eletrônico capaz de centralizar o controle de jornada de trabalho, oferecendo uma solução completa para administradores, empresas e funcionários, com segurança, organização e fácil utilização.
- Permitir cadastro de empresas por SUPER_ADMIN e via fluxo público de assinatura.
- Disponibilizar painéis distintos para empresa (ADMIN/RH) e colaborador (EMPLOYEE).
- Gerenciar cadastro de colaboradores e turnos de trabalho.
- Registrar entradas e saídas de ponto com validações de jornada, geolocalização e reconhecimento facial.
- Permitir registro de ponto em atraso com justificativa e anexo.
- Gerar e assinar folha de ponto em PDF.
- Implementar autenticação segura com JWT e cookies.
- Integrar cobrança recorrente via Stripe e reconhecimento facial via microserviço dedicado.
- Disponibilizar aplicativo mobile para registro de ponto com reconhecimento facial.
A metodologia escolhida para o desenvolvimento foi o Scrum, por sua flexibilidade, divisão clara de tarefas e foco em entregas incrementais. A equipe organizou o trabalho em sprints para conduzir a evolução do backend, frontend, interface e documentação.
- Desenvolvimento incremental com sprints.
- Divisão das atividades entre backend, frontend, interface e documentação.
- Comunicação contínua e adaptação rápida a mudanças.
- Versionamento de código: Git e GitHub
Repositório informado no documento original:https://github.com/DeltaFour - API / Backend: .NET 8, ASP.NET Core, Entity Framework Core, Serilog, FluentValidation, QuestPDF, MailKit, Stripe e NetTopologySuite
- Frontend: React 19, Vite 7, Chakra UI, React Router, Axios, Recharts e Framer Motion
- Reconhecimento facial: FastAPI, face_recognition, dlib, numpy e Pillow
- Aplicativo mobile: .NET MAUI (.NET 8), AndroidX Camera e ML Kit FaceDetection (Android)
- Infraestrutura: Docker, MySQL e Nginx
- Onde: aplicação administrativa e portal do colaborador em ambiente web, com microserviço de reconhecimento facial.
- Quando: documentação referente ao 6º semestre de 2026.
- RF01 - Autenticação e sessão: login, renovação de sessão e logout via JWT em cookies.
- RF02 - Cadastro de empresa com assinatura: registro público de empresa com checkout Stripe.
- RF03 - Administração de empresas: SUPER_ADMIN cria, lista e ativa/desativa empresas.
- RF04 - Gestão de colaboradores: criar, listar, atualizar e alterar status de usuários.
- RF05 - Gestão de turnos: criar, listar, editar e excluir turnos (com restrições por vínculo).
- RF06 - Registro de ponto: entrada/saída com validações de jornada, geolocalização e biometria facial.
- RF07 - Registro de ponto por terceiros: RH/ADMIN podem registrar ponto manual para colaboradores.
- RF08 - Ponto em atraso: registro retroativo com justificativa e anexo (imagem/PDF).
- RF09 - Validação de pontos em atraso: RH pode validar/autorizar registros pendentes.
- RF10 - Folha de ponto: gerar PDF, listar, consultar dados e assinar (funcionário e RH).
- RF11 - Painéis web: dashboards, histórico de pontos e gráficos (dados mock no front-end).
- RF12 - Integrações externas: Stripe (assinaturas) e serviço de reconhecimento facial.
- RF13 - Aplicativo mobile: login, painel do colaborador e registro de ponto com câmera e reconhecimento facial.
A documentação original apresenta os requisitos não funcionais abaixo. Para se adequar ao template, eles foram reorganizados por categoria:
- RNF01 - Usabilidade: interface web responsiva e navegação clara.
- RNF02 - Desempenho: endpoints assíncronos e geração eficiente de PDF.
- RNF04 - Compatibilidade: funcionamento em navegadores modernos.
- RNF08 - Manutenibilidade: arquitetura em camadas (API, Application, Domain, Infrastructure, CrossCutting).
- Organização do desenvolvimento em sprints, com versionamento por Git e GitHub.
- RNF06 - Confiabilidade: consistência via MySQL e EF Core (migrations).
- RNF07 - Disponibilidade: execução via Docker e logging estruturado com Serilog.
- RNF03 - Segurança: JWT com chave RSA, cookies HttpOnly/Secure e CORS com origem controlada.
- RNF05 - Escalabilidade: microserviço de reconhecimento facial e integrações desacopladas.
A documentação original não detalha um padrão formal específico além das boas práticas adotadas no desenvolvimento. Ainda assim, registra organização modular, autenticação segura e versionamento do código como diretrizes do projeto.
- Integração via HTTP com serviço de reconhecimento facial.
- Preparação para integrações futuras (IoT) permanece como possibilidade, mas não está implementada no código atual.
O modelo de casos de uso atual contempla quatro perfis principais:
- SUPER_ADMIN
- Cadastra empresas
- Ativa e desativa empresas
- ADMIN / RH (empresa)
- Gerencia colaboradores e turnos
- Registra ponto para terceiros
- Valida pontos em atraso
- Gera e assina folha de ponto
- EMPLOYEE (colaborador)
- Faz login
- Registra ponto com validações
- Envia ponto em atraso com justificativa
- Consulta histórico e folha de ponto
A documentação base descreve o banco de dados do projeto como um modelo relacional em MySQL, estruturado para priorizar consistência, segurança, rastreabilidade e performance. Para aderir ao template, o conteúdo foi reorganizado em três níveis:
O domínio da aplicação gira em torno das seguintes entidades e conceitos centrais:
- Empresa, endereço e geolocalização
- Usuários e autenticação
- Perfis, permissões e ações
- Turnos de trabalho e vínculos usuário-turno
- Registros de ponto (presenças)
- Biometria facial do usuário
- Assinaturas (Stripe) e eventos de cobrança
- Folha de ponto (TimeSheet)
A modelagem lógica atual evidencia relacionamentos como:
- empresa e usuários;
- usuário e turnos de trabalho;
- usuário e registros de ponto;
- empresa e geolocalização (raio de validação);
- usuário e biometria facial;
- empresa e assinatura;
- folha de ponto por usuário/mês/ano.
Também fica explícito o isolamento do painel por empresa e o controle de acesso por perfil.
No modelo físico informado pela documentação original:
- o banco é implementado em MySQL;
- a estrutura utiliza GUID/UUID como chave primária;
- as entidades aparecem normalizadas;
- há suporte a georreferenciamento (NetTopologySuite) e rastreabilidade por eventos de assinatura.
O banco de dados do DeltaFour - Ponto! é implementado em MySQL, utilizando EF Core com migrations e suporte a dados geográficos.
A modelagem atende às necessidades da aplicação de ponto eletrônico, garantindo:
- Integridade dos dados
- Rastreabilidade de ações
- Controle de permissões
- Suporte a geolocalização
- Escalabilidade para integrações futuras
O diagrama foi estruturado em entidades normalizadas, com utilização de UUID como chave primária para padronização e segurança.
A imagem abaixo corresponde ao diagrama de classes do projeto.
A equipe já possuía experiência prévia com React, C# e MySQL. A arquitetura adotada utiliza camadas bem definidas e integrações externas (Stripe e reconhecimento facial).
O sistema atende a uma necessidade real de empresas que buscam um controle de ponto moderno e centralizado, substituindo processos manuais.
Segundo a documentação original, todos os recursos utilizados são gratuitos. O custo estimado foi tratado como referência acadêmica, considerando R$ 10,00 por hora por integrante, representando valor simbólico.
Sistemas de ponto eletrônico já são amplamente utilizados, mas muitos ainda apresentam custo elevado ou baixa flexibilidade. O DeltaFour - Ponto! se diferencia pela simplicidade e pela possibilidade de personalização.
Nota: o PDF original traz as regras de negócio, mas não apresenta o quadro do modelo canvas. Para manter fidelidade ao material já produzido, esta seção preserva as regras descritas no documento-base.
- RN01: cada usuário pertence a uma empresa e herda permissões pelo perfil.
- RN02: empresas são criadas por SUPER_ADMIN ou via fluxo público de assinatura.
- RN03: registros de ponto seguem o turno ativo e as tolerâncias configuradas.
- RN04: se o usuário não tiver bypass de geolocalização, o ponto é validado pelo raio da empresa.
- RN05: se o usuário não tiver bypass facial, o ponto exige validação por reconhecimento facial.
- RN06: pontos em atraso exigem justificativa e podem incluir anexo; RH recebe notificação por e-mail.
- RN07: RH/ADMIN podem registrar ponto para terceiros e validar pontos pendentes.
- RN08: turnos não podem ser excluídos se houver colaboradores vinculados.
- RN09: folhas de ponto são geradas por usuário/mês/ano e exigem assinatura do colaborador e do RH.
- RN10: acesso às APIs é bloqueado quando a assinatura está cancelada ou com pagamento em atraso.
O design atual é baseado no front-end React com Chakra UI e apresenta os seguintes elementos visuais:
- Roxo como cor de destaque principal
- Cinzas e neutros em cartões e áreas secundárias
- Preto/branco para contraste e leitura
- Verde/laranja para estados (sucesso/alerta)
A interface utiliza tipografia sem serifa, com títulos em destaque e textos objetivos, favorecendo leitura rápida em telas web.
O front-end utiliza os logos da marca DeltaFour (LogoHorizontal.png e LogoSolo.png).
Abaixo estão os prints das telas do sistema (temas Dark e Claro):
Tema Dark
Tema Claro
Pelas telas apresentadas, o fluxo de navegação visual pode ser entendido como:
Login → (ADMIN/RH) Dashboard Empresa → Módulos internos
Login → (EMPLOYEE) Dashboard Funcionário → Registro de ponto / Histórico / Timesheet
Cadastro de empresa → Checkout Stripe → Login
A documentação original informa o seguinte link de prototipação no Figma:
Figma:
https://www.figma.com/design/9FkQSfvBTeCdqD75rOzaSX/Untitled?node-id=0-1&t=hOwZG9kUzbQa7I6O-1
As telas exibidas na seção de design derivam do material-base e não correspondem integralmente à UI atual.
O ecossistema atual é composto por:
- backend em C# / .NET 8, com ASP.NET Core, Entity Framework Core e Serilog;
- frontend web com React + Vite + Chakra UI;
- aplicativo mobile em .NET MAUI (DeltaFour.Maui);
- serviço de reconhecimento facial em FastAPI;
- banco de dados MySQL;
- integração com Stripe para assinaturas.
- Login com perfil (SUPER_ADMIN, ADMIN, RH, EMPLOYEE)
- Cadastro de empresa com assinatura (Stripe)
- Gestão de colaboradores e turnos
- Registro de ponto com validações (geolocalização e face)
- Registro de ponto em atraso com justificativa e anexo
- Validação de pontos em atraso (RH)
- Geração e assinatura de folha de ponto (PDF)
- Histórico de pontos e dashboards
- API expõe endpoints REST em /api/v1 e aplica validações por perfil e assinatura.
- Middleware de assinatura bloqueia acesso quando a assinatura está cancelada ou em atraso.
- Reconhecimento facial ocorre via serviço externo (FastAPI) nos endpoints /embedding e /compare.
- Geolocalização valida a distância do colaborador em relação ao raio cadastrado da empresa.
- Geração de PDF utiliza QuestPDF para emitir folha de ponto.
- Autenticação: login, verificação de sessão, refresh e logout (JWT em cookies).
- Empresas (SUPER_ADMIN): criar, listar e ativar/desativar empresas.
- Assinaturas: registro com Stripe, cancelamento, reativação, portal de cobrança e atualização de pagamento.
- Colaboradores: criar, listar, editar e alterar status; captura de foto para biometria.
- Turnos: CRUD de turnos e tolerâncias.
- Ponto: registro com foto, geolocalização e validações; registro para terceiros.
- Ponto em atraso: justificativa, anexo (imagem/PDF) e aprovação pelo RH.
- Timesheet: geração de PDF, consulta de dados, listagem e assinaturas.
- Dashboards: páginas de métricas e gráficos (dados mock no front-end).
- Mobile (MAUI): login, painel do colaborador e registro de ponto com câmera, detecção facial e geolocalização.
- Autenticação: POST /api/v1/auth/login, GET /api/v1/auth/check-session, POST /api/v1/auth/refresh-token, POST /api/v1/auth/logout
- Empresas (SUPER_ADMIN): POST /api/v1/admin-control/company/create, POST /api/v1/admin-control/company/change-status/{id}, GET /api/v1/admin-control/company/list
- Assinaturas (Stripe): POST /api/v1/subscription/register, GET /api/v1/subscription, POST /api/v1/subscription/cancel, POST /api/v1/subscription/reactivate, GET /api/v1/subscription/billing-portal, GET /api/v1/subscription/update-payment-method, POST /api/v1/webhook/subscription
- Colaboradores: GET /api/v1/user/list, POST /api/v1/user/create, PATCH /api/v1/user/update, DELETE /api/v1/user/change-status/{userId}
- Ponto: POST /api/v1/user/allowed-punch, POST /api/v1/user/register-point, POST /api/v1/user/punch-for-user, POST /api/v1/user/punch-by-email, POST /api/v1/user/allowed-punch-web
- RH: GET /api/v1/user/get-all-attendances, PATCH /api/v1/user/update-status-attendance/{attendanceId}
- Turnos: GET /api/v1/workshift/list, POST /api/v1/workshift/create, PATCH /api/v1/workshift/update, DELETE /api/v1/workshift/change-status/{workShiftId}
- Timesheet: GET /api/v1/timesheet/list, GET /api/v1/timesheet/pdf/{userId}, GET /api/v1/timesheet/pdf/me, GET /api/v1/timesheet/data/{userId}, GET /api/v1/timesheet/data/me, POST /api/v1/timesheet/{timeSheetId}/sign/employee, POST /api/v1/timesheet/{timeSheetId}/sign/hr, GET /api/v1/timesheet/status/{userId}, GET /api/v1/timesheet/status/me
- Reconhecimento facial (serviço externo): POST /embedding, POST /compare
- Swagger: /swagger
- App mobile (MAUI) consome: /api/v1/auth/login, /api/v1/auth/logout, /api/v1/auth/check-session, /api/v1/auth/refresh-token, /api/v1/user/allowed-punch, /api/v1/user/register-point, /api/v1/user/refresh-information
- BACKEND/: solução .NET (API, Application, Domain, Infrastructure, CrossCutting, Test)
- BACKEND-feature-MauiNet/: solução .NET com aplicativo mobile DeltaFour.Maui
- FRONTEND/: aplicação React (Vite) com Chakra UI
- face-recognition-api/: microserviço FastAPI de reconhecimento facial
Backend + MySQL (Docker)
- Copiar BACKEND/DeltaFour.API/.env.example para BACKEND/DeltaFour.API/.env e preencher as variáveis.
- Executar: docker compose up -d --build (dentro da pasta BACKEND).
Frontend (Docker)
- Criar FRONTEND/.env com VITE_BASE_URL e, opcionalmente, VITE_USE_MOCK=true.
- Executar: docker compose up -d --build (dentro da pasta FRONTEND).
Reconhecimento facial (Docker)
- Executar: docker compose up -d --build (dentro da pasta face-recognition-api).
Aplicativo mobile (MAUI)
- Abrir a solução em BACKEND-feature-MauiNet/DeltaFour.sln.
- Ajustar a URL da API no MauiProgram.cs (BaseAddress).
- Executar o projeto DeltaFour.Maui no emulador/dispositivo.
Esta seção reúne prints de execução de testes e verificações de qualidade aplicadas ao projeto.
- Teste 1: Integração de registro de ponto (mobile → API → banco).
- Teste 2: Fluxo de autenticação e renovação de sessão (login, refresh, logout).
- Teste 3: Geração e exportação de folha de ponto em PDF.
As imagens acima foram capturadas durante execuções de integração e testes manuais. Recomenda-se incluir os scripts de teste automatizados (unitários e de integração) no repositório e vincular pipelines CI para garantir qualidade contínua.
Observações importantes
- A API expõe a porta 8080 e o front-end usa Nginx na porta 5173.
- O serviço de reconhecimento facial expõe a porta 8000.
- O CORS do backend exige ALLOWED_HOST configurado para a URL do front-end.
- Os cookies de autenticação são marcados como Secure e SameSite=None.
Backend (DeltaFour.API/.env)
- CONNECTION_STRING
- IS_TESTING
- VALIDATE_LIFETIME, REQUIRE_EXPIRATION_TIME, VALIDATE_ISSUER_SIGNING_KEY, VALIDATE_ISSUER, VALIDATE_AUDIENCE
- PYTHONNET_PYDLL, FUNCTION_PYTHON_PATH
- SUPER_ADMIN_EMAIL, SUPER_ADMIN_NAME, SUPER_ADMIN_COMPANY_CNPJ, SUPER_ADMIN_COMPANY_NAME, SUPER_ADMIN_PASSWORD
- ALLOWED_HOST
- FACE_RECOGNITION_BASE_URL
- STRIPE_SECRET_KEY, STRIPE_PRICE_ID, STRIPE_SUCCESS_URL, STRIPE_CANCEL_URL, STRIPE_WEBHOOK_SECRET
- EMAIL_HOST, EMAIL_PORT, EMAIL_USERNAME, EMAIL_PASSWORD, EMAIL_FROM_EMAIL, EMAIL_FROM_NAME
Frontend (FRONTEND/.env)
- VITE_BASE_URL
- VITE_USE_MOCK
A imagem abaixo representa o fluxo geral de autenticação e reconhecimento facial.
Possibilidades de expansão registradas no documento original:
- Leitores biométricos integrados à API
- Totens inteligentes
- Registro automático via RFID ou NFC
- Comunicação com ESP32 para registros físicos
- 1-2 semanas: requisitos e arquitetura
- 3-4 semanas: protótipos
- 5-6 semanas: backend
- 7-8 semanas: frontend
- 9-10 semanas: integração
- 11-12 semanas: testes e documentação
O desenvolvimento do DeltaFour - Ponto! consolida uma solução web moderna para controle de ponto, com fluxo de assinatura, validação facial e geração de folha de ponto.
Segundo o texto-base, a arquitetura adotada buscou criar um ecossistema integrado, moderno e escalável, apto a atender demandas empresariais relacionadas à jornada de trabalho, rastreabilidade e segurança da informação. A implementação atual confirma o uso de camadas bem definidas, autenticação segura, estruturação do banco MySQL e validações de geolocalização e biometria facial.
Em síntese, o projeto é uma solução eficiente, moderna e confiável, com potencial de uso acadêmico e empresarial.
- GIT. Git Documentation. Disponível em: https://git-scm.com/doc.
- GITHUB. GitHub Docs. Disponível em: https://docs.github.com/.
- MICROSOFT. .NET MAUI Documentation. Disponível em: https://learn.microsoft.com/dotnet/maui/.
- MICROSOFT. .NET 8 Documentation. Disponível em: https://learn.microsoft.com/dotnet/.
- MICROSOFT. ASP.NET Core Documentation. Disponível em: https://learn.microsoft.com/aspnet/core/.
- MICROSOFT. Entity Framework Core Documentation. Disponível em: https://learn.microsoft.com/ef/.
- REACT. React Documentation. Disponível em: https://react.dev/.
- VITE. Vite Documentation. Disponível em: https://vitejs.dev/guide/.
- CHAKRA UI. Chakra UI Documentation. Disponível em: https://chakra-ui.com/.
- STRIPE. Stripe Documentation. Disponível em: https://stripe.com/docs.
- FASTAPI. FastAPI Documentation. Disponível em: https://fastapi.tiangolo.com/.
- SERILOG. Serilog Documentation. Disponível em: https://serilog.net/.
- QUESTPDF. QuestPDF Documentation. Disponível em: https://www.questpdf.com/.
- DOCKER. Docker Documentation. Disponível em: https://docs.docker.com/.
- MYSQL. MySQL Reference Manual. Disponível em: https://dev.mysql.com/doc/.
- SCRUM ALLIANCE. O que é Scrum?. Disponível em: https://www.scrumalliance.org/.




























