Skip to content

About

Uma aplicacao para bater ponto

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

⏱️ Ponto Rápido

Plataforma web para registrar horários de trabalho (Entrada, Saída Almoço, Retorno do Almoço e Saída) direto em uma planilha de ponto do Google Sheets, com cálculo automático do Total do expediente.

O app é 100% estático (React + TypeScript + Vite, sem outras bibliotecas) e conversa com o Google Sheets pelo navegador usando fetch. Ele usa apenas o escopo OAuth drive.file: o acesso é concedido somente à planilha que você escolher no Google Picker.

Como funciona

  • Conectar Google autoriza o app (Google Identity Services, escopo drive.file).
  • Escolher planilha abre o Google Picker; selecionar o arquivo é o que concede acesso a ele.
  • O dia padrão é o atual, mas qualquer dia pode ser selecionado para correção.
  • Cada horário tem um campo próprio com os botões Agora (usa a hora atual) e Aplicar (grava na planilha). Aplicar todos grava os quatro de uma vez.
  • A cada aplicação, a fórmula do Total é gravada na coluna H: (Saída Almoço − Entrada) + (Saída − Retorno do Almoço).
  • Se a aba do mês (ex.: Julho 26) não existir, o app oferece criá-la duplicando a aba Amostra — preservando formatação, fórmulas de rodapé e a grade de feriados — e preenchendo as datas do mês.

Estrutura esperada da planilha

A planilha deve seguir o modelo da aba Amostra:

  • Abas mensais nomeadas {Mês} {AA} (ex.: Julho 26);
  • Dias do mês nas linhas 17–47 (coluna B = data, D–G = horários, H = Total);
  • Aba Folha rosto com os dados de empregador/empregado e o horário padrão;
  • Intervalo nomeado feriados com a grade de feriados.

Configuração no Google Cloud

  1. Crie (ou use) um projeto em console.cloud.google.com.
  2. Habilite as APIs Google Sheets API e Google Picker API.
  3. Em APIs e serviços → Credenciais:
    • Crie um ID do cliente OAuth do tipo Aplicativo da Web e adicione as origens autorizadas (ex.: http://localhost:5173 e a URL do site no Netlify);
    • Crie uma Chave de API (restrinja à Picker API e aos seus domínios).
  4. Configure a Tela de permissão OAuth e adicione seu e-mail como usuário de teste, caso o app não esteja publicado.

As credenciais podem ser informadas de duas formas:

  • Na interface do app (ficam no localStorage do navegador); ou
  • Em variáveis de ambiente no build (veja .env.example): VITE_GOOGLE_CLIENT_ID, VITE_GOOGLE_API_KEY e VITE_GOOGLE_APP_ID (número do projeto, opcional).

Desenvolvimento

npm install
npm run dev      # servidor local (http://localhost:5173)
npm run build    # checagem de tipos + build de produção em dist/
npm run preview  # serve o build localmente

Deploy no Netlify

O projeto é um site estático — não usa Netlify Functions. O netlify.toml já define build (npm run build) e publicação (dist/).

netlify deploy --build          # deploy de preview
netlify deploy --build --prod   # deploy de produção

Lembre-se de adicionar a URL gerada às origens autorizadas do OAuth Client ID no Google Cloud, senão o login do Google não abre.

About

Uma aplicacao para bater ponto

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages