O Ponto Pro é uma solução moderna e completa para gestão de jornada de trabalho. Desenvolvida para oferecer agilidade, precisão e uma experiência de usuário excepcional, a plataforma permite que colaboradores e gestores controlem as horas trabalhadas de forma intuitiva.
- ⏱️ Registro Rápido: Marque seu ponto com apenas um clique.
- 👤 Gestão de Usuários: Controle centralizado de colaboradores e administradores.
- 📊 Dashboards Intuitivos: Visualize suas métricas de trabalho de forma clara.
- 🔒 Segurança Supabase: Autenticação e banco de dados robustos e escaláveis.
- 📱 Interface Responsiva: Use em qualquer dispositivo, do desktop ao mobile.
- Frontend: React + TypeScript
- Estilização: Tailwind CSS
- Backend/DB: Supabase
- Build Tool: Vite
Siga os passos abaixo para rodar o projeto em sua máquina:
-
Instale as dependências:
npm install
-
Configuração do Ambiente: Edite o arquivo
.envna raiz do projeto e preencha as seguintes chaves:VITE_SUPABASE_PROJECT_ID=seu_project_id VITE_SUPABASE_PUBLISHABLE_KEY=sua_public_key VITE_SUPABASE_URL=sua_url_do_supabase
Também configure o
project_idno arquivosupabase/config.toml. -
Inicie o servidor de desenvolvimento:
npm run dev
- Primeiro Acesso: O primeiro usuário cadastrado no sistema receberá automaticamente permissões de Administrador. Os cadastros seguintes serão processados como usuários comuns.
- E-mails de Boas-vindas: Caso prefira não enviar o e-mail automático do Supabase, você pode desabitar essa opção no painel de controle da Auth no Supabase Dashboard.
O sistema utiliza o pg_cron do Supabase para automatizar tarefas diárias. Para configurar, acesse o SQL Editor do seu projeto Supabase e execute os comandos abaixo.
CREATE EXTENSION IF NOT EXISTS pg_cron;
CREATE EXTENSION IF NOT EXISTS pg_net;Substitua <SUA_URL_DO_SUPABASE> e <SUA_ANON_KEY> pelos valores do seu projeto:
-- Verificar ausências diariamente às 23:00 (BRT)
SELECT cron.schedule(
'verificar-ausencias-diario',
'0 2 * * *',
$$
SELECT net.http_post(
url := 'https://<SUA_URL_DO_SUPABASE>/functions/v1/verificar-ausencias',
headers := jsonb_build_object(
'Content-Type', 'application/json',
'Authorization', 'Bearer <SUA_ANON_KEY>'
),
body := jsonb_build_object('data', to_char(now() AT TIME ZONE 'America/Sao_Paulo', 'YYYY-MM-DD'))
);
$$
);
-- Calcular banco de horas diariamente às 23:30 (BRT)
SELECT cron.schedule(
'calcular-banco-horas-diario',
'30 2 * * *',
$$
SELECT net.http_post(
url := 'https://<SUA_URL_DO_SUPABASE>/functions/v1/calcular-banco-horas',
headers := jsonb_build_object(
'Content-Type', 'application/json',
'Authorization', 'Bearer <SUA_ANON_KEY>'
),
body := jsonb_build_object('data', to_char(now() AT TIME ZONE 'America/Sao_Paulo', 'YYYY-MM-DD'))
);
$$
);Preparamos alguns materiais para te ajudar na jornada:
- 📺 Guia de Setup do Projeto
- ☁️ Como criar seu Projeto no Supabase
- 🚀 Deploy Supabase via CLI (Vídeo)
- 📑 Guia de Deploy (Documentação)
Para deploy em produção, recomendamos o uso do Deploy Manager Pro ou a integração nativa do Supabase CLI para uma experiência simplificada e segura.
Desenvolvido por afcode com ❤️ para facilitar a gestão de tempo.
