O WorkHub é um produto de gestão de banco de horas e controlo de assiduidade. Cobre o registo de tempos de trabalho, o saldo de horas flexíveis, as ausências e a geração de relatórios e exportações, num único painel.
A aplicação assenta em Next.js 16 (App Router) com TypeScript, persistência em PostgreSQL através do Prisma e autenticação por credenciais com NextAuth. A camada de segundo fator usa TOTP: o segredo é apresentado como código QR (otplib mais qrcode) para emparelhar com uma aplicação autenticadora. A arquitetura separa rotas e UI, server actions, serviços de domínio e o acesso a dados, mantendo a lógica de negócio fora dos componentes.
O motor de cálculo trata horas suplementares, descanso compensatório e feriados, com simulador e importação assistida a partir de PDF. O mapa de ausências gere os períodos de férias e a respetiva exportação. Os relatórios saem em Excel (ExcelJS) e os indicadores são desenhados com ECharts. A suite de testes corre em Vitest.
registo de tempo (cronómetro)
|
v
+----------------------+
| motor banco-horas |
| (extra/descanso) |
+----------------------+
|
+-------+--------+
v v
relatorios mapa ferias
(Excel/charts) (ausencias)