Como criar uma app de registo de tempo: cronómetros, folhas de horas e relatórios
Uma app de registo de tempo regista quem trabalhou em quê, durante quanto tempo, e se esse tempo pode ser faturado. Para criar uma, precisa de clientes e projetos aos quais associar o tempo, de um cronómetro que sobreviva a um separador fechado, de uma forma de acrescentar e corrigir registos à mão, de uma folha de horas semanal e de relatórios que transformem os registos em totais. Um criador de apps com IA consegue produzir uma primeira versão a funcionar a partir de um prompt claro. As decisões que realmente importam são as regras: arredondamento, quem pode editar o quê, quando uma semana fica bloqueada e o que conta como faturável.
Decida para que está a registar o tempo
A mesma app parece diferente consoante a razão por trás dela:
- Faturar clientes. Horas por cliente, uma taxa por pessoa ou projeto e uma exportação limpa para as faturas. A precisão e um registo de auditoria são o mais importante.
- Processamento de salários de trabalhadores à hora. Entrada e saída, pausas, regras de horas extra e aprovação por um responsável. Aplicam-se as leis laborais locais, por isso verifique que registos é obrigado a manter.
- Perceber para onde vai o tempo. Perceção pessoal ou de equipa, estimativas versus tempo real. A rapidez de registo pesa mais do que os fluxos de aprovação.
Escolha uma como trabalho principal para a primeira versão. Um registador de tempo para um freelancer e um relógio de turnos para um armazém partilham um cronómetro e muito pouco mais.
O que a app precisa
Dados
| Tabela | Campos principais |
|---|---|
| Clientes | Nome, taxa horária predefinida, ativo sim/não |
| Projetos | Cliente, nome, orçamento em horas (opcional), faturável por predefinição sim/não |
| Tarefas ou categorias | Projeto, nome (design, reuniões, apoio) — opcional no início |
| Registos de tempo | Pessoa, projeto, tarefa, hora de início, hora de fim, duração, nota, faturável sim/não, estado (rascunho, submetido, aprovado), faturado sim/não |
| Pessoas | Nome, email, função, taxa de custo ou taxa de faturação |
Guarde a hora de início e a hora de fim em cada registo e calcule a duração a partir delas. Registos introduzidos como “2h 15m” sem horas podem guardar só a duração, mas mantenha uma data.
Páginas
- Cronómetro e hoje: um botão grande de iniciar/parar, um seletor de projeto e os registos de hoje por baixo.
- Vista semanal: uma grelha com os projetos na vertical e os dias na horizontal, onde as pessoas escrevem as horas diretamente. Muitas preferem isto aos cronómetros.
- Relatórios: horas por cliente, projeto e pessoa num intervalo de datas, com a divisão entre faturável e não faturável, e exportação para CSV.
- Administração: gerir clientes, projetos, pessoas e taxas.
Permissões
Defina antes de construir quem pode fazer o quê:
- As pessoas veem e editam os seus próprios registos.
- Os responsáveis veem os registos da equipa e aprovam as semanas.
- Só os administradores alteram as taxas, e, idealmente, só os administradores as veem.
- Ninguém edita um registo depois de aprovado ou faturado, a menos que um administrador reabra o registo.
Esta última regra é o que torna os relatórios fiáveis. O nosso guia sobre como acrescentar login à sua app cobre o lado do início de sessão, e o controlo de acesso baseado em funções cobre as funções.
Decisões e compromissos
Cronómetro, registo manual ou os dois
Os cronómetros são precisos quando as pessoas se lembram de os iniciar, o que nem sempre acontece. O registo manual é rápido para quem preenche a semana na sexta-feira. A maioria das equipas precisa dos dois, e de uma forma de editar um registo de cronómetro depois de feito. Se só construir uma opção, construa a grelha semanal: é mais simples e cobre o caso de “esqueci-me de iniciar”.
Onde vive o cronómetro em curso
Um cronómetro que conta no navegador perde tudo quando o separador fecha. Guarde a hora de início na base de dados quando alguém carrega em iniciar, e mostre o tempo decorrido subtraindo essa hora da hora atual. O cronómetro continua a correr entre atualizações, portáteis e telemóveis. Decida se uma pessoa pode ter dois cronómetros em simultâneo. Normalmente a resposta é não: iniciar um novo para o anterior.
Arredondamento
As regras comuns são arredondar cada registo para cima, ao múltiplo de 6, 15 ou 30 minutos. Guarde as horas exatas na base de dados e aplique o arredondamento apenas nos relatórios e nas faturas. Mostre os dois números nos relatórios para que ninguém se surpreenda.
Bloqueio e aprovações
Sem bloqueio, as horas já faturadas do mês passado podem mudar depois de a fatura ter sido enviada. Um modelo simples: as pessoas submetem uma semana, um responsável aprova-a e os registos aprovados ficam só de leitura. Se faturar a partir da app, marque os registos como faturados para não serem cobrados duas vezes.
Fusos horários e meia-noite
Guarde as horas em UTC e mostre-as no fuso horário da pessoa. Decida a que dia pertence um registo que vai das 23:00 às 01:00. A resposta habitual é o dia em que começou.
Um primeiro prompt que funciona
Crie uma app de registo de tempo para um estúdio de design com seis pessoas. Dados: clientes (nome, taxa horária), projetos (cliente, nome, horas orçadas) e registos de tempo (pessoa, projeto, início, fim, nota, faturável sim/não, estado rascunho/submetido/aprovado). Páginas: uma página Hoje com um cronómetro de iniciar/parar e um seletor de projeto que guarda a hora de início na base de dados, para que o cronómetro sobreviva a uma atualização; uma página Semana com os projetos como linhas e de segunda a domingo como colunas, onde as pessoas podem escrever as horas diretamente; uma página de Relatórios com as horas por cliente, projeto e pessoa num intervalo de datas, divididas entre faturável e não faturável, com exportação para CSV; e uma página de Administração para clientes, projetos e pessoas. Só pode correr um cronómetro por pessoa. Os registos aprovados não podem ser editados. Guarde as horas em UTC e mostre-as no fuso horário do utilizador. Design limpo, rápido e fácil de usar com teclado.
Passos de construção
- Projetos e registos manuais primeiro. Clientes, projetos, um formulário para acrescentar um registo e uma lista. Confirme que os totais batem certo.
- Cronómetro. Iniciar, parar, um cronómetro ativo por pessoa, hora de início guardada. Teste iniciando um cronómetro, fechando o separador e voltando a abri-lo.
- Grelha semanal. Escrever horas numa célula cria ou atualiza um registo.
- Login e funções. Acrescente-os antes de pessoas reais usarem a app, para que ninguém veja taxas ou registos de outras pessoas por acidente.
- Submeter e aprovar. Submissão semanal, aprovação pelo responsável e apenas leitura após a aprovação.
- Relatórios e exportação. Intervalo de datas, agrupamento, divisão faturável e CSV.
- Taxas e ganchos de faturação, se faturar clientes. Mantenha a criação de faturas num passo ou numa app separada; veja como criar uma app de faturação.
- Teste os casos limite. Um registo que atravessa a meia-noite, uma semana com mudança de hora, dois cronómetros iniciados a partir de dois dispositivos, a edição de um registo aprovado.
Erros comuns
- Contar o tempo só no navegador. Funciona na demonstração e perde horas em uso real.
- Arredondar valores guardados. Nunca mais consegue recuperar a hora exata.
- Não bloquear semanas aprovadas. Os relatórios deixam de bater certo com as faturas.
- Todos verem as taxas de todos. Oculte as taxas por função desde o início.
- Campos obrigatórios em excesso. Se registar tempo demorar mais do que alguns segundos, as pessoas deixam de o fazer e os dados tornam-se ficção. Deixe a tarefa e a nota opcionais no início.
- Construir um gestor de projetos completo dentro do registador. Mantenha os projetos como simples etiquetas. Se precisar de tarefas, quadros e prazos, isso é uma ferramenta de gestão de projetos, um projeto à parte.
Quando um registador pronto é a melhor escolha
Se a sua equipa precisa de um cronómetro, de uma vista semanal e de relatórios, os produtos de registo de tempo dedicados já fazem isto bem. Trazem também coisas que dão muito trabalho a construir: apps para computador e telemóvel, deteção de inatividade, integrações com calendário e outras ferramentas, e lembretes para preencher as folhas de horas. Para processamento de salários à hora, uma ferramenta feita para isso trata das pausas, das horas extra e dos registos de forma mais segura do que uma app personalizada de primeira versão.
Construa a sua própria quando as suas regras não encaixarem, quando quiser as horas ligadas a dados que já mantém (trabalhos, ordens de serviço, avenças, faturas), quando o preço por lugar numa equipa grande começar a pesar ou quando o registo de tempo for uma parte de uma ferramenta interna maior. O nosso guia sobre criar contra comprar software percorre o compromisso, e se as suas horas estiverem numa folha partilhada, veja como transformar uma folha de cálculo numa app.
Como fazer isto com a Mythex
Na Mythex descreve o registador no chat e o agente constrói-o numa pré-visualização em direto. Acrescenta uma base de dados Postgres dedicada quando os registos precisam de ser guardados, e pode pedir isso diretamente ou escrever /database. O caso de utilização de ferramenta interna na documentação sugere escolher um passo doloroso para a primeira versão, o que encaixa aqui: comece pelos registos e pela grelha semanal, e depois acrescente cronómetros e aprovações.
O login para a sua equipa é algo que acrescenta com a sua própria abordagem de autenticação (receita de adicionar login). As contas da Mythex são para quem constrói, e não para quem usa a sua app. Quando o fluxo principal funcionar, /test faz com que o agente percorra a pré-visualização (iniciar um cronómetro, acrescentar um registo, gerar um relatório) e diga o que falha. Para um ponto de partida visual, veja os modelos de apps.
Perguntas
Que funcionalidades precisa uma app de registo de tempo?
Uma lista de clientes e projetos, um cronómetro de iniciar/parar, uma forma de acrescentar ou corrigir registos à mão, uma vista semanal de folha de horas e um relatório de horas por projeto e por pessoa. As aprovações, as taxas faturáveis e as exportações vêm a seguir.
Como evito que um cronómetro perca tempo quando o navegador fecha?
Guarde a hora de início na base de dados no momento em que o cronómetro arranca e calcule a duração em curso a partir dessa hora guardada. Assim, fechar o separador, atualizar a página ou mudar de dispositivo não faz perder nada.
O tempo deve ser arredondado?
Guarde as horas de início e de fim exatas e aplique o arredondamento apenas nos relatórios e nas faturas. Assim pode mudar a regra de arredondamento mais tarde sem reescrever o histórico.
Vale a pena criar o meu próprio registador de tempo?
Normalmente só se as suas regras forem invulgares ou se quiser ligar as horas a outros dados que já guarda, como trabalhos, clientes ou faturas. Para cronómetros e relatórios simples, um registador existente é mais barato e mais rápido.