Como Criar um App de Controle de Horas: Cronômetros, Folhas de Ponto e Relatórios
Um app de controle de horas registra quem trabalhou em quê, por quanto tempo e se esse tempo pode ser cobrado. Para criar um, você precisa de clientes e projetos para registrar o tempo, um cronômetro que sobreviva a uma aba fechada, uma forma de adicionar e corrigir lançamentos à mão, uma folha de ponto semanal e relatórios que transformem os lançamentos brutos em totais. Um construtor de apps com IA consegue produzir uma primeira versão funcional a partir de um prompt claro. As decisões que importam são sobre regras: arredondamento, quem pode editar o quê, quando uma semana é travada e o que é faturável.
Decida para que você vai usar o controle de horas
O mesmo app parece diferente conforme o motivo por trás dele:
- Cobrar clientes. Horas por cliente, um valor por hora para cada pessoa ou projeto e uma exportação limpa para as faturas. Precisão e trilha de auditoria importam mais.
- Folha de pagamento de funcionários por hora. Entrada e saída, pausas, regras de horas extras e aprovação de um gestor. Valem as leis trabalhistas locais, então confira quais registros você é obrigado a manter.
- Entender para onde vai o tempo. Visão pessoal ou de equipe, estimativas versus o realizado. Velocidade de lançamento importa mais do que fluxos de aprovação.
Escolha um como trabalho principal para a versão inicial. O controle de um freelancer para cobrança e o relógio de ponto de um armazém compartilham um cronômetro e pouco mais do que isso.
O que o app precisa
Dados
| Tabela | Campos principais |
|---|---|
| Clientes | Nome, valor por hora padrão, ativo sim/não |
| Projetos | Cliente, nome, orçamento em horas (opcional), faturável por padrão sim/não |
| Tarefas ou categorias | Projeto, nome (design, reuniões, suporte) — opcional no início |
| Lançamentos de tempo | Pessoa, projeto, tarefa, horário de início, horário de fim, duração, observação, faturável sim/não, status (rascunho, enviado, aprovado), faturado sim/não |
| Pessoas | Nome, e-mail, papel, valor de custo ou valor de cobrança |
Guarde o horário de início e o de fim em cada lançamento e derive a duração deles. Lançamentos digitados como “2h 15min” sem horários podem guardar só a duração, mas mantenha a data.
Páginas
- Cronômetro e hoje: um grande botão de iniciar/parar, um seletor de projeto e os lançamentos de hoje logo abaixo.
- Visão semanal: uma grade com projetos na vertical e dias na horizontal, onde as pessoas digitam as horas diretamente. Muitas preferem isso a cronômetros.
- Relatórios: horas por cliente, projeto e pessoa em um período, com a divisão entre faturável e não faturável, e exportação em CSV.
- Administração: gerenciar clientes, projetos, pessoas e valores.
Permissões
Defina antes de construir quem pode fazer o quê:
- As pessoas veem e editam os próprios lançamentos.
- Gestores veem os lançamentos da equipe e aprovam semanas.
- Só administradores alteram valores, e idealmente só administradores os veem.
- Ninguém edita um lançamento depois de aprovado ou faturado, a não ser que um administrador reabra.
Essa última regra é o que torna os relatórios confiáveis. Nosso guia sobre como adicionar login ao seu app cobre a parte de acesso, e controle de acesso baseado em papéis cobre os papéis.
Decisões e trade-offs
Cronômetro, lançamento manual ou os dois
Cronômetros são precisos quando as pessoas lembram de iniciá-los, o que nem sempre acontece. Lançamento manual é rápido para quem preenche a semana na sexta. A maioria das equipes precisa dos dois, e de uma forma de editar um lançamento de cronômetro depois. Se for construir só um, construa a grade semanal: é mais simples e cobre o caso de ter esquecido de iniciar.
Onde fica o cronômetro em andamento
Um cronômetro que conta no navegador perde tudo quando a aba fecha. Salve o horário de início no banco de dados quando a pessoa apertar iniciar, e mostre o tempo decorrido subtraindo esse horário de agora. Assim o cronômetro continua rodando entre atualizações, notebooks e celulares. Decida se uma pessoa pode ter dois cronômetros ao mesmo tempo. Normalmente a resposta é não: iniciar um novo para o antigo.
Arredondamento
Regras comuns são arredondar cada lançamento para cima, até 6, 15 ou 30 minutos. Mantenha os horários exatos no banco de dados e aplique o arredondamento só em relatórios e faturas. Mostre os dois números nos relatórios para que ninguém se surpreenda.
Travamento e aprovações
Sem travamento, as horas de um mês que já foi cobrado podem mudar depois que a fatura saiu. Um modelo simples: as pessoas enviam uma semana, um gestor aprova, e os lançamentos aprovados viram somente leitura. Se você fatura pelo app, marque os lançamentos como faturados para que não sejam cobrados duas vezes.
Fusos horários e meia-noite
Guarde os horários em UTC e mostre-os no fuso horário da pessoa. Decida a qual dia pertence um lançamento que vai das 23h às 01h. A resposta usual é o dia em que começou.
Um primeiro prompt que funciona
Crie um app de controle de horas para um estúdio de design com seis pessoas. Dados: clientes (nome, valor por hora), projetos (cliente, nome, horas de orçamento) e lançamentos de tempo (pessoa, projeto, início, fim, observação, faturável sim/não, status rascunho/enviado/aprovado). Páginas: uma página Hoje com um cronômetro de iniciar/parar e seletor de projeto que salva o horário de início no banco de dados, para que o cronômetro sobreviva a uma atualização; uma página Semana com os projetos nas linhas e de segunda a domingo nas colunas, onde as pessoas podem digitar as horas diretamente; uma página de Relatórios mostrando horas por cliente, projeto e pessoa em um período, divididas em faturável e não faturável, com exportação em CSV; e uma página de Administração para clientes, projetos e pessoas. Só um cronômetro pode rodar por pessoa. Lançamentos aprovados não podem ser editados. Guarde os horários em UTC e mostre-os no fuso horário do usuário. Design limpo, rápido e fácil de usar pelo teclado.
Etapas de criação
- Projetos e lançamentos manuais primeiro. Clientes, projetos, um formulário para adicionar um lançamento e uma lista. Garanta que os totais batem.
- Cronômetro. Iniciar, parar, um cronômetro por pessoa, horário de início salvo. Teste iniciando um cronômetro, fechando a aba e reabrindo.
- Grade semanal. Digitar horas em uma célula cria ou atualiza um lançamento.
- Login e papéis. Adicione antes de pessoas reais usarem, para que ninguém veja valores ou os lançamentos de outras pessoas por acidente.
- Enviar e aprovar. Envio semanal, aprovação do gestor, somente leitura depois de aprovado.
- Relatórios e exportação. Período, agrupamento, divisão faturável, CSV.
- Valores e ganchos de faturamento, se você cobra clientes. Mantenha a criação de faturas em uma etapa ou app separado; veja como criar um app de faturamento.
- Teste os casos extremos. Um lançamento que atravessa a meia-noite, uma semana com horário de verão, dois cronômetros iniciados em dois dispositivos, editar um lançamento aprovado.
Erros comuns
- Contar o tempo só no navegador. Funciona na demonstração e perde horas no uso real.
- Arredondar valores guardados. Você nunca mais recupera o horário exato.
- Nenhum travamento de semanas aprovadas. Os relatórios deixam de bater com as faturas.
- Todos verem os valores de todos. Oculte os valores por papel desde o primeiro dia.
- Campos obrigatórios demais. Se registrar tempo leva mais do que alguns segundos, as pessoas param de fazê-lo, e os dados viram ficção. Deixe tarefa e observação opcionais no início.
- Construir um gerenciador de projetos completo dentro do controle de horas. Mantenha os projetos como rótulos simples. Se precisar de tarefas, quadros e prazos, isso é uma ferramenta de gestão de projetos, uma construção separada.
Quando um controle de horas pronto é a melhor escolha
Se sua equipe precisa de cronômetro, visão semanal e relatórios, produtos dedicados a controle de horas já fazem isso bem. Eles também trazem coisas que dão trabalho de construir: apps de desktop e celular, detecção de inatividade, integrações com calendário e outras ferramentas e lembretes para preencher as folhas de ponto. Para folha de pagamento por hora, uma ferramenta feita para isso lida com pausas, horas extras e registros de forma mais segura do que um app personalizado de primeira versão.
Crie o seu quando suas regras não se encaixam, quando você quer horas ligadas a dados que já mantém (trabalhos, ordens de serviço, retainers, faturas), quando o preço por assento pesa para uma equipe grande ou quando o controle de horas é uma parte de uma ferramenta interna maior. Nosso guia sobre construir ou comprar software mostra o trade-off, e se suas horas hoje ficam em uma planilha compartilhada, veja como transformar uma planilha em app.
Criando com a Mythex
Na Mythex você descreve o controle de horas no chat e o agente o constrói em um preview ao vivo. Ele adiciona um banco de dados Postgres dedicado quando os lançamentos precisam ser salvos, e você pode pedir isso diretamente ou digitar /database. O caso de uso de ferramenta interna na documentação sugere escolher um passo doloroso para a versão inicial, o que se encaixa aqui: comece com os lançamentos e a grade semanal, depois adicione cronômetros e aprovações.
O login para sua equipe é algo que você adiciona com sua própria abordagem de autenticação (receita de adicionar login). As contas da Mythex são para quem constrói, não para quem usa o seu app. Quando o fluxo principal funcionar, /test faz o agente clicar pelo preview (iniciar um cronômetro, adicionar um lançamento, gerar um relatório) e relatar o que quebra. Para um ponto de partida visual, veja os templates de apps.
Perguntas
Quais recursos um app de controle de horas precisa?
Uma lista de clientes e projetos, um cronômetro de iniciar e parar, uma forma de adicionar ou corrigir lançamentos à mão, uma visão semanal da folha de ponto e um relatório de horas por projeto e por pessoa. Aprovações, valores por hora faturáveis e exportações vêm depois.
Como impedir que o cronômetro perca tempo quando o navegador fecha?
Salve o horário de início no banco de dados no momento em que o cronômetro começa, e calcule a duração em andamento a partir desse horário salvo. Assim, fechar a aba, atualizar a página ou trocar de dispositivo não faz perder nada.
O tempo deve ser arredondado?
Guarde os horários exatos de início e fim e aplique o arredondamento só em relatórios e faturas. Assim você pode mudar a regra de arredondamento depois sem reescrever o histórico.
Vale a pena criar meu próprio controle de horas?
Geralmente só se suas regras forem incomuns ou se você quiser vincular as horas a outros dados que já guarda, como serviços, clientes ou faturas. Para cronômetros e relatórios simples, um controle de horas pronto é mais barato e mais rápido.